
Some more info on the out of tree NXP code... I didn't write it, I am just trying to get it working on a current uboot since the NXP u-boot code is too old for ARM device tree support.
Most u-boot images are around 250KB.
lpc3130 has 96K of SRAM. The ARM ROM on the chip can IPL from six sources: NAND, SPI, DFU USB, SD, NOR FLASH, UART. A header at the front of the IPL image tells the ROM how much to load.
96KB is large enough to build a single SPL image that can then continue loading from all six different sources. I have ported enough of the code to the new SPL system to build a SPL image derived off from the NXP code. For my application I want NAND and USB DFU. I am testing with UART.
The secondary NXP loaders all want to know the length of what they are loading. NXP was able to get this length by building both the SPL and the main u-boot into a single image file. They then used dd to chop it up into the two files: u-boot-spl.bin and u-boot.bin