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

Development Environment

  • 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

  • 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

  • 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/


  • Let the build process for bc10 begin.
    make distclean
    make omap3530bc10_config

  • Start the build process for OMAP3/beagleboard clones.
    make distclean
    make omap3530beagle_config
  • If build is succeeded, x-load.bin is produced.

Adjusting binary image

  • 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
  • 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

The Source code of X-load-bc10 is managed by Gitorious.


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.


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.

About signGP

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.


Revision History

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 the article

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   RSS of recent changes
Last-modified: 2011-01-11 (Tue) 10:37:15 (3609d)