sbsv1/abld/doc/zephyr_buildrom_changes.txt
author Zheng Shen <zheng.shen@nokia.com>
Mon, 30 Aug 2010 15:04:06 +0800
changeset 631 9435b9008a58
parent 599 fa7a3cc6effd
permissions -rw-r--r--
ROM Tools 13.1.0.1 Bug468 initialized static data built into a static library does not get initialized correctly
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
599
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     1
Zephyr/Cedar BUILDROM
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     2
2003/09/03
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     3
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     4
BUILDROM has been extended to support the building of 'mostly-thumb' ROMs and mixed ROMs.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     5
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     6
1. Mostly Thumb ROMs.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     7
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     8
In Cedar for Zephyr BUILDROM supports the following macros for
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     9
specifying which build to construct the ROM from:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    10
	   _ARM4 - The ARM4 build (eventually this will be removed)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    11
	   _ARM4T - The 'mostly-thumb' ARM4T.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    12
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    13
2. Mixed ROMs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    14
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    15
Mixed ROMs have a kernel built for a different ABI than that targeted
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    16
by user-side code. In practice this means an EABI kernel and GCC98r2
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    17
user-side code. By default BUILDROM use the same ABI for the kernel as
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    18
specified for user-side code (i.e. one of ARM4 or ARM4T). The default
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    19
kernel ABI can be overriden by supplying the appropriate value for
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    20
_KABI in BUILDROM's commandline e.g. -D_KABI=ARMV5.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    21
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    22
The following example builds a 'mostly thumb' techview ROM with an
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    23
EABI kernel compiled specifically for XScale:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    24
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    25
     buildrom lubbock -D_ARM4T -D_KABI=XSCALE -o\epoc32\techview.arm4t.xscale.img \epoc32\rom\include\techview
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    26
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    27
The above example shows that the EABI kernel does not have to be the
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    28
default ARMV5 build. BUILDROM supports customizations of the default
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    29
ARMV5 build. It is also worth noting that the XScale build does not
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    30
have to be complete. If BUILDROM cannot find an XScale file it will
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    31
look for the equivalent file from the build that has been
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    32
customized. Currently this will always be ARMV5, since this is the
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    33
only build that supports customization at this time.