[[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]].~

* Building X-loader [#y23cc303]
** 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.

** 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 source repository [#u82e5168]
>
The Source code of '''X-load-bc10''' is managed by Gitorious.
- Project page
-- [[http://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10]]
- Repository
-- git://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10.git

*** Branch [#j0fdbc6b]
> 
There are three branches in '''x-load-bc10''' repository.
- master
-- The clone of the original master branch
- bc10 
-- The release branch for bc10
- bc10-develop
-- The developing branch for bc10

>
To build a '''x-load.bin''' for bc10, please use the bc10 branch.

*** Origins [#va5d5983]
>
The source code of '''x-load-bc10''' is cloned from the repository of '''x-load-omap3''' project,~
and the original is modified for bc10, specifically.~
- x-load-omap3 project
-- [[http://gitorious.org/x-load-omap3]]
- Repository
-- git://gitorious.org/x-load-omap3/mainline.git
- Branch
-- master

** About signGP [#g0056673]
>
As BootROM code of OMAP35x  accesses and reads NAND Flash and SD card, BootROM code needs the header at~
the top of the image file of the bootloder. The header is organized as 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.~

>
signGP is a tool, which adds a new simple header to the image file of the  bootloader.~
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~
2011/01/11 Reorganize
2011/01/11 Reorganize the article~

Front page   Edit Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   RSS of recent changes