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.

AM2634: HSM app encryption for secure boot on HS_SE devices

Part Number: AM2634

I wanted to ask question: I have an AM263x CC evaluation board in HS_SE mode, and I'm trying to load a signed application, following the secure boot flow as described in the documentation. For now I can load (and debug) signed SBLs, load the HSMRt firmware from them and interact with the core. Neat! But I have some issues loading the signed/encrypted application. Most notably:

I can see that in the latest MCU+ SDK, in the file "source/drivers/bootloader/bootloader.c" at line 581 there is a call to "Bootloader_socAuthImage". Inside that function there is the call to the "HsmClient_procAuthBoot", which is the function named in the docs as the API to interact with the HSM core.

In the original file (bootloader.c), the "certLoadAddr" (line 504) is an address in flash memory, but in the inner functions the address is being treated as if it's an address to a buffer (or that the flash is memory mapped, which is not in the case of the am263x EVB CC card).

For example, at the line 747 of "hsmclient.c" there is a call to the function "crc16_ccit", but the address given to that function is an address to flash, and not a buffer in memory! Thus, the function is trying to calculate a crc from an invalid address (since it is a flash address and not a memory address) of length 4096, and might give serious problems in doing so (generate aborts).

Shouldn't the whole certificate be read in memory? Why is the procedure like this in the sdk?

Thanks for your time,

BR

Riccardo Belli