This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP UBL

Other Parts Discussed in Thread: OMAP-L138, OMAP-L137

Hello!

I have a custom board based on OMAP-L138 with SPI0 flash for booting. I'm interesting how can I flash a DSP UBL. In future I want to use secure features of L138 and it is important to me to know how can I load DSP UBL into DSP memory in the booting time. As I understand it should be loaded during boot time from SPI flash like ARM UBL is loaded now (in this time I use only ARM UBL).

I have learned this topic http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/69671.aspx for OMAP-L137. Particularly this topic contain the citation:

After coming out of reset, the bootloader in the DSP ROM (which is not accessible to either application) checks the boot pin configuration in the BOOTCFG register in the SYSCFG module.  In our situation, it would begin to load the DSP UBL AIS file from the beginning of the SPI Flash in to the DSP L2 cache/RAM.  

The DSP UBL will copy the binary ARM UBL from the next block in the SPI Flash into RAM, sets the ARM reset vector and starts up the ARM core.

Is it the same for OMAP-L138? If it is the same how can I flash the DSP UBL, ARM UBL and u-boot simultaneously. Now to flash ARM UBL and u-boot I use TI utility sfh_OMAP-L138.exe with parameter -flash. To flash DSP UBL, ARM UBL and u-boot simultaneously this ulility have parameter -flash_dsp. But this parameter can be used only for OMAP-L137. I have tried to apply it to OMAP-L138 and it doesn't work for me. The utility printed this line and stalled:

Flashing DSPUBL ubl-spi.ais (5240 bytes) at 0x00000000

Thanks!

  • I have learned more documents and think that my supposition was incorrect. As I understand one of main difference between OMAP-L137 and OMAP-L138 is booting. L137 is DSP-boot device while L138 is ARM-boot device.

    For OMAP-L138 boot process consist of these steps:

    1. The DSP will come out of reset and begin execution of the DSP ROM bootloader
      1. The DSP ROM bootloader will indirectly write the ARM reset vectors. Since the DSP does not have write access to the ARM local RAM, the PRU is used to perform this task
      2. The DSP takes the ARM out of reset and powers down
    2. The ARM begins execution of the ARM ROM bootloader
      1. The ARM ROM bootloader will read from the boot medium and begin sequentially executing the AIS commands in the boot image.
      2. The last AIS command will jump to the entry point of the ARM executable.

    So for OMAP-L138 checking of boot mode pins and loading of AIS commands from external memory will be executed by ARM after DSP ROM bootloader working finish.

    But in the document  SPRUGQ9 about OMAP-L1x processors security in chapter 3.5 is writen that ROM bootloader can only process a single AIS image during the boot process. Once the ROM boot loader exits, the AIS parsing routines of the ROM are no longer available. And I can't understand how can DSP ROM bootloader get this AIS image from external memory?