I found two little nitpicks with the example bootloader in SitaraWare 1.0.0.9.
1.) the following code snippet from SPIBootCopy() in bl_copy.c correctly copies the application image out of flash and stores it in ram at the load address specified in the SPIBootHeader. However instead of setting the global entryPoint to be the entryPoint in the SPIBootHeader it sets the global entryPoint to be the ldAddress from the header. This worked fine for u-boot, but for an application that has a start address different from the load address this falls flat. I think the last line was intended to be entryPoint = spiHeader.entryPoint;
/* Copies application from SPI flash to DDR RAM */
SPIReadFlash (spiHeader.memAddress, spiHeader.appSize,
(unsigned char *) spiHeader.ldAddress);
entryPoint = spiHeader.ldAddress;
2) the second nit causes no problems, it's just a readability issue. In SPISetup() in bl_am1808.c the wrong enumeration is used for the peripheral ID.
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_SCR0_SS, 0, PSC_MDCTL_NEXT_ENABLE);
should probably be
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_SPI1, 0, PSC_MDCTL_NEXT_ENABLE);
It works ok because HW_PSC_SCR0_SS and HW_PSC_SPI1 have the same value (10), they're just intended to indicate different peripherals.