X-load-omap3 is a project mainly written in C, it's free.
OMAP3 boot loader
#
#
#
#
#
#
#
This directory contains the source code for X-Loader, an initial program loader for Embedded boards based on OMAP processors. X-Loader can be signed by Texas Instruments IFT and installed to Nand flash to achieve Nand booting.
The support for Texas Instruments H3 board (OMAP1710) has been implemented and tested. (May 2004) The support for Texas Instruments H4 board (OMAP2420) has been implemented and tested. (Nov 2004) The support for Texas Instruments 2430SDP board (OMAP2430) has been implemented and tested. (Jul 2006) The support for Texas Instruments 3430SDP board (OMAP3430) has been implemented and tested. (Dec 2006)
Support for other OMAP boards can be added.
board Board dependent files
cpu CPU specific files
drivers Commonly used device drivers
lib Libraries
cpu/arm926ejs Files specific to ARM 926 CPUs
cpu/arm1136 Files specific to ARM 1136 CPUs
cpu/omap3 Files specific to ARM CortexA8 CPU
board/omap1710h3 Files specific to OMAP 1710 H3 boards
board/omap2420h4 Files specific to OMAP 2420 H4 boards
board/omap2430sdp Files specific to OMAP 2430 2430sdp boards
board/omap3430sdp Files specific to OMAP 3420sdp boards
Configuration is usually done using C preprocessor defines. Configuration
depends on the combination of board and CPU type; all such information is
kept in a configuration file "include/configs/
Example: For a H3 module, all configuration settings are in "include/configs/omap1710h3.h".
For all supported boards there are ready-to-use default
configurations available; just type "make
Example: For a H3 module type:
cd x-load
make omap1710h3_config
After a board has been configured, type "make" to build it supposing the needed cross tools are in your path.
X-Loader expects OS boot loader (e.g. U-Boot) in Nand flash using JFFS2 style ECC.
After you have built x-load.bin for your board, you need to do the followings to get it into Nand flash:
Next you need to get your OS boot loader to Nand at the address your X-Loader expects. For the H3 example, you can use U-Boot to flash U-Boot. You can't use FlashWriterNand because it uses ROM code ECC style.
OMAP1710 NAND Booting Design Document has more information.
H3, H4 support NAND flash booting 2430sdp & 3430sdp support OneNAND booting