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.

MCU-PLUS-SDK-AM263X: load HSM - Client-firmware

Part Number: MCU-PLUS-SDK-AM263X

Hello,

at the the moment I try to understand SBL from MCU-PLUS-SDK-AM263X. We use SDK version 8.6.00.34 in combination with the AM263xLP.
In the SBL examples I found the function Bootloader_socLoadHsmRtFw.

I tried to debug the function. We did't change any eFUSE of the launchpad.

The following picture shows the function Bootloader_socLoadHsmRtFw, found in the file bootloader_hsmRt_load.c

At the moment we use the HSFS mode, I think.
We looked in the register description of the eFUSE_DEVICE_TYPE-register, but there I can't find a detailed value description. Is there any other document, which can give more detailed information?

In the register EFUSE_DEVICE_TYPE, we found the value 0x000000AA. Due to the source code, delievered with the SDK, we think, this values is the vlaue for HSFS.

More cryptic for us is the second part of the else if statement in line 81.  

(((ptrTopCtrlRegs->EFUSE1_ROW_15)&0xF) == AM263x_SR11))

In the register addendum of AM263x, I cannot find a information  to EFUSE1_ROW_15. The firmware expects a value of 0x3 in the low byte, on my board I found 012.

Can you give me some more information about the possible values of this register?

Thanks a lot.

  • Hi ,

    In the register EFUSE_DEVICE_TYPE, we found the value 0x000000AA. Due to the source code, delievered with the SDK, we think, this values is the vlaue for HSFS.

    Yes, this is correct.

    In the register addendum of AM263x, I cannot find a information  to EFUSE1_ROW_15. The firmware expects a value of 0x3 in the low byte, on my board I found 012.

    This is for the PG Version. You can check the PG Version by using this method as well - https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1170785/faq-mcu-plus-sdk-am243x-how-to-identify-if-the-device-is-gp-device-or-hs-device

    The loadHSMRtFirmware is only supported for SR1.1.

    Best Regards,
    Aakash

  • Hi Aakash,

    thanks for your fast answer.

    But I think I have not understood it completley now.
    What is a GP device? Is it not possible to run/load the HSM firmware with the GP device? 
    That I find the value 0xAA in EFUSE_DEVICE_TYPE in combination with a GP device is a legal state?

    Best regards

  • Hi ,

    GP device was a legacy concept for devices without any levels of Security. This concept is no longer valid from AM263x device. The device by default is shipped as HS-FS devices only.

    That I find the value 0xAA in EFUSE_DEVICE_TYPE in combination with a GP device is a legal state?

    0xAA is the value for HS-FS device. What needs to be checked is the PG Version print in the above mentioned FAQ.

    Best Regards,
    Aakash

  • Hi Aakash,
    I have tried to decode the string, delivered by UART from the RBL with the script uart_boot_socid.py. This didn't not work in the first step, than I tried the script delievered with the SDK. 

    I have following output from the RBL:

    000002020100000000000100414d323633580000000000000400cdab00000100010000000000000000000000000000000000000050d39632c39b4506e692c404625dcb0762b9770ae7166e7f1fb537404b7beceba254256c884d098cdb906573b92ee15169f9493be861bef6e4b1c8ffe67edb9c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c65587a0119e52f873be44a1a56559d3d48dd3c525f616802ac3d07109839a51af598c32f6057e781c1e232086b6f5567ef21682a0cc75df4371dc4d69d87680

    The script shows this:

    $./uart_boot_socid.py data.txt
    number:
    [33685504]
    -----------------------
    SoC ID Header Info:
    -----------------------
    NumBlocks : [33685504]
    -----------------------
    SoC ID Public ROM Info:
    -----------------------
    SubBlockId : 1
    SubBlockSize : 0
    DeviceName : AM263X
    DeviceType :
    DMSC ROM Version : [171, 205, 0, 4]
    R5 ROM Version : [0, 1, 0, 0]
    -----------------------
    SoC ID Secure ROM Info:
    -----------------------
    Traceback (most recent call last):
    File "uart_boot_socid.py", line 105, in <module>
    print ("Sec SubBlockId :", secROMInfo[0])
    ^^^^^^^^^^
    NameError: name 'secROMInfo' is not defined. Did you mean: 'pubROMInfo'?

    Is there any error in the string from the RBL string? The device type could not be encoded. 

    Best regards

    Jo

  • Hi Aakash,
    thanks for your answer. Now I have decoded the string from RBL, by using the right script now...this was my fault...

    My questions:

    - With this device I could not run the HSM firmware? (We use a launchpad AM263x at the moment).

    - With other devices (on our own PCBs), this problem should not be present? GP devices are no longer available/shipped?

    - is PG and GP the same?

    Best regards

    Jo

  • Hi ,

    With this device I could not run the HSM firmware? (We use a launchpad AM263x at the moment).

    Unfortunately, you cannot run HSM Firmware with this device variant.

    With other devices (on our own PCBs), this problem should not be present? GP devices are no longer available/shipped?

    It depends. Lately we have been shipping latest version of the device i.e. PGVer - 3 which supports HSM firmware loading. PGVer - 3 or SR1.1 is the RTM device from TI.

    - is PG and GP the same?

    GP is general purpose device or device lifecycle which does not support security however the GP device for these devices do not exist. The default lifecycle for AM263x is HS_FS.

    PG version is device's version released by TI. The latest PG supported for AM263x is PG version : 3 or SR1.1.

    You can contact your TI representative to request for latest version of AM263x LP with SR1.1 chip on it.

    Hope it helps.

    Best Regards,
    Aakash