[[bc10/Software]] - Contents #contents * Summary [#tb139168] >This section shows the basic information of how to build X-Loader. X-Loader is the first bootloader that works in~ bc10 as power is on. X-Loader used here is originally developed for BeagleBoard. Since bc10 is a clone of Beagleboard,~ the building method for BeagleBoard's can be applicable to X-Loader for bc10. The information of the boot process of~ bc10 and the placement of X-Loader is available at [[bc10/booting]].~ * Development Environment [#w2f3e169] > - Prepare toolchain for bc10. - Examine whether the two toolchains described below are already built or not. -- arm GNU/Linux toolchain (arm-none-linux-gnueabi-) developed by CodeSourcery. -- OpenEmbed Linux's toolchain (arm-angstrom-linux-gnueabi-), which is commonly used for the~ development environment of BeagleBoard. - This section mainly explains the case that the toolchain of OpenEmbedded Linux is used. * Building X-loader [#y23cc303] ** Set up environment variable [#c82b2829] > - To use the toolchain of OpenEmbedded, set up the environment variable. export PATH=${WORK_DIR}/OE/angstrom-dev/cross/armv7a/bin:${PATH} export ARCH=arm export CROSS_COMPILE=arm-angstrom-linux-gnueabi- ** Obtain the source code [#x67993df] > -Obtain the source code of X-Loder for bc10 from git repository. This X-Loader is specifically~ modified for installing Android-2.2_1.1 (Froyo) on bc10. git clone git://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10.git x-load-bc10 cd x-load-bc10/ git checkout -t -b bc10 origin/bc10 - Get the source code of X-Loader for OMAP3 from the git repository. This is for OMAP3 equipped~ divices in general. git clone git://gitorious.org/x-load-omap3/mainline.git xloader cd xloader/ ~ ** Build [#k30d255e] > - Let the build process for bc10 begin. make distclean make omap3530bc10_config make ~ - Start the build process for OMAP3/beagleboard clones. make distclean make omap3530beagle_config make - If build is succeeded, x-load.bin is produced. ** Adjusting binary image [#a8bbdc5b] > - Since x-load.bin does not match the format and specifications of OMAP BootROM, it does not work in NAND Flash~ and SD Card as a bootloader. To solve this issue, x-load.bin is needed to be converted with signGP. signGP is a~ tool that adds a new header to the image file of X-Loder. For more information, please read the section below.~ - The executable file of signGP can be download URL below -- http://beagleboard.googlecode.com/files/signGP - This is how to use signGP. ./signGP x-load.bin - x-load.bin.ift is produced if signGP has successfully converted the original file. -Because of the specifications of BootROM, X-Loder is need to be placed at the specific place and in the certain~ order. The newly created X-Loader file is needed to be changed its name to ''MLO'' and be placed in the root~ directory. For farther questions about placing X-Loader, please visit and read [[bc10/booting]].~ ** About signGP [#g0056673] > - signGP adds a new simple header to the image file of the bootloader. As BootROM of OMAP35x accesses and reads~ NAND Flash and SD card, BootROM needs the header at the top of the image file of the bootloder. The structure of~ the header is described below.~ +------------------------------------------+ | Length (4byte) | +------------------------------------------+ | LoadAddr (4byte) | +------------------------------------------+ | BootLoader image | | ... | +------------------------------------------+ -- Length --- This determines the size of the image file. -- LoadAddr --- It points out the address of the image file. > -The source file is available at [[BeagleSourceCode:http://code.google.com/p/beagleboard/wiki/BeagleSourceCode]]. * Reference [#r156bc16] > - [[x-load-omap3 (gitorious.org):http://gitorious.org/x-load-omap3]] - [[elinux BeagleBoard X-Loader (elinux.org):http://elinux.org/BeagleBoard#X-Loader]] - [[BeagleSoftCompile (code.google.com):http://code.google.com/p/beagleboard/wiki/BeagleSoftCompile]] - [[BeagleSourceCode (code.google.com):http://code.google.com/p/beagleboard/wiki/BeagleSourceCode]] *Revision History [#d2092c1e] > 2010/07/23 Initial release~ 2010/09/16 Add git repository for the bc10 (froyo) specific source code and the explanation for build procedss~