sbsv1/abld/doc/zephyr_buildrom_changes.txt
author srilekhas <srilekhas@symbian.org>
Wed, 18 Aug 2010 11:18:38 +0100
changeset 627 cb3264f4c6e6
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Merge : re-applies missing part of fix for Bug 2901,Add export for s60ibymacros.pm
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.