I've spent some time trying to figure out the boot process of the OMAP L138 and would like some confirmation on my assumptions.
1.) The OMAP L138 has a "bootload" peripheral which comes up and executes a Rom Boot loader which is stored on a factory-programmed ROM located somewhere on the chip.
2.) The OMAP L138 then samples the boot pins to determine which device to boot from. I'll be using the Zoom eXperimenter so it will have to be flash on the SPI interface.
3.)On the SPI-Flash there is some AIS code, followed by UBL, followed by U-Boot. I kind of assume that the AIS code and UBL are packaged together using AIS Gen but U-Boot is placed "as is" somewhere else in flash.
4.) The Rom Boot loader executes the AIS commands to configure the PLL, initialize RAM etc.. copies the UBL to DDR2 RAM and then executes it.
5.) UBL copies U-boot from the flash and then executes it.
6.) U-Boot can then be used to load linux over FTP or whatever else you want to do.
Okay so here are my questions
1.) I would think that UBL is obsolete with the introduction of AIS and the functionality of UBL can be completely replaced using an image generated using AISGen. The very fact that the EVM uses AISGen + UBL + UBoot really confuses me.
Could this be because booting from SPI flash is a bit complicated since the flash storage space isn't memory mapped and must be accessed through a serial interface? If the AIS script copies UBL from SPI Flash to RAM then I don't see why it would have a problem copying U-boot (or any other 3rd party bootloader) from SPI flash to RAM.
2.) Going with the assumption that UBL can be eliminated. Is it possible to run a 3rd party bootloader (such as U-Boot or a VxWorks bootloader) as a flash resident boot loader? Does it have to be copied to RAM? I am asking this because I would like to perform a memory test before loading anything to RAM. It looks like this could be fudged using AIS commands but I'd still like the option to run a bootloader as a rom resident.
3.)So going with the whole notion that I'm removing the UBL and U-Boot and replacing them with another bootloader that has to be tailored. Are the peripheral initializations done by AIS persistent? Does UBL do anything to initialize the peripherals or put any device in a quiescent state? If not, could you point me to documentation on what would need to be done to bring the OMAP up in a well behaving state?
Thanks
-Jason