I've been looking into the boot sequence strategy of the OMAP L137 EVM and find it rather strange. Basically, here's my understanding of how it works (assuming SPI0 Flash boot mode).
The D800K001 bootloader (executing on the DSP I assume) will first look for an Application Image Script (AIS) at address 0 within the SPI0 Flash.
Through the execution of the script, the DSP will basically place dspubl (DSP executable placed immediately after the AIS) into an abitrary RAM specified by the linker script first used when generating the DSP executable (dspubl) before running AISGen.
The DSP execution will then jump into that arbitrary RAM and run dspubl.
dspubl will simply look into the SPI Memory at address 0x2000 (where the ARM executable armubl has been placed) and transfert the next 16Kb within the SPI Flash to a shared RAM at address 0x80000000. It will then wake up the arm and instruct it to start its execution there.
armubl will start its execution by shutting down the DSP then proceed with some hardware initialisation before transferring the arm executable (u-boot) to the external SDRAM at the adress specified within its own header (Load Address : 0xC1080000) before jumping to an entry point which is the same as the load address.
Now as far as I can see, u-boot is compiled specifically for the OMAP L137 EVM.
Basically my question is why bother with armubl? Why not simply proceed to the required hardware initialization within dspubl and jump directly to u-boot (which appear to proceed to the some hardware initilisation anyway and could easely shut down the DSP as far as I can see)?
Now I have my own board running the latest bootloader (D800K003) which can directly boot on the ARM, initialize PINMUX, PLL, Power and SDRAM. Would it make more sense to simply boot on u-boot (through AIS of course)?
Thanks.