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.

OMAP-L138 E Secure Boot Problem

Other Parts Discussed in Thread: OMAP-L138, OMAPL138

Dear All,


we are currently developing software for a new product which uses the OMAP-L138 SoC.

We are using mostly StarterWare drivers, as this will be a hard-realtime constraint system.

Most components work flawlessly on the non-secure boot devices and we are now trying out the secure boot feature

on a secure boot enabled device.

I have successfully used the SecureHexAIS_OMAP-L138.exe tool to convert a DSP ELF out-file. I can boot this via the Secure UART Boot Host.

It seems to execute the AIS commands, as i can connect to the DSP core via CCS after booting. The program itself, however does not seem to work.

It should only toggle an output pin. The same code worked perfectly on the non-secure device (were i bootet the DSP through a simple ARM bootloader).

Via CCS i checked the PSC setting, pinmux and GPIO out registers and they change as expected, but i cannot see any voltage change on the pin.


Is there anything else i need to change when switching to secure boot devices? With the normal OMAP-L138 the ARM is the boot-master and

therefore sets up stacks and interrupt vectors and so on, do i need to do this from the DSP now before i run anything on the DSP?

Any help is greatly appreciated!

Best Regards,

M. Freudenberg

  • Hi,

    We will look into this and will update you as soon as possible.

    Thanks for your patience.

    Regards,
    Sivaraj K
  • Dear Freudenberg,

    In normal OMAPL138, ARM is boot master and it will come out sleep first then you can wakeup the DSP through bootloader (UBL).

    In normal OMAPL137, DSP is boot master and it will come out sleep first then you can wakeup the ARM through bootloader (UBL).

    In secure OMAPL138, DSP is the boot master and it will come out from sleep first then we can wakeup the ARM by bootloader.

    What you are trying to do ?

    Do you want to run the DSP code in secure DSP core via CCS ?

    Or do you want to boot the DSP code from secure OMAPL138 ?

    You can create a dummy "hello world" or any project to unlock the JTAG then connect the DSP core and then run the code on the DSP core.

    1) Create a dummy project.

    2) Build and generate *.out

    3) Convert into AIS signed binary using "SecureHexAIS_OMAP-L138.exe" tool

    Ex:

    SecureHexAIS_OMAP-L138.exe -ini test.ini -otype binary -o hello.bin  hello.out

    4) Now load the "hello.bin" via 'GenericSecureUartHost.exe" tool, it will unlock the JTAG and run the code on processor.

    5) Now you able to connect the DSP core and its ready to run any code.

    PS:

    You can also run any code, but you should modify the "test.ini" file to enable the PINMUX, and other registers settings etc.,

    I have attached the sample "test.ini" file which I used, you can try and let me know.

    Let me know if any help.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/test.ini

  • Dear Titusrathinaraj Stalin,

    thank you for your fast reply! I believe I tracked down the problem to my ini file.

    I copied the MPU part from your file into mine and now it seems to work.

    I was unaware that configuring the MPU is mandatory, as we dont use it at this point.

    It now loads code and the GPIO toggles. Now i can start developing the bootloader, that will load code into ARM

    and start that up. Is the following the right sequence of starting the ARM in secure boot enabled OMAP-L138 devices:

    1. DSP boots secure boot image which enabled PSC for ARM, ARM RAM/ROM and loads ARM code into memory.

    2. DSP uses a PRU to write ARM reset vector to 0xFFFF0000 ? Do i need to set ARM PC as well and/or load something into ARM core registers?

    3. Release ARM from reset via HOST0CFG register ->BOOTRDY = 1

    Thanks again for you quick help!

    Kind regards,

    Marc

  • Steps you mentioned seems to be right.
    Please refer to the following e2e post.
    e2e.ti.com/.../335025
  • Thank you again for your help!
    I was able to boot both DSP and ARM and execute code.

    Best regards,
    Marc!
  • Sounds great!
    Thanks for your update.