AM2434: TMDS243EVM: Confusion about security-information printed on Sitara and read out from register

Part Number: AM2434
Other Parts Discussed in Thread: TMDS243EVM

We have at least two TMDS243EVM PROC101C(005). Both have a Sitara with the printing:
XAM2434B
SFGHIALV

according to the data sheet this should a be a secure processor:
image.png

But if we read our the JTAG_UDER_ID-register which should give info ybout the SoC in firmware, we see it's not set as a secure Sitara:

image.png

image.png

if we check the bits:

JTAG_USER_ID_USERCODE    00110010000011001100010011101100    
we have:
PKG: 100: 4 ALV (correct)
TEMP: 101: -40-125°C
SPEED: 10011: 23
SECURITY: 0 (Non-Secure!)
SAFETY: 0 (no safety, ok!)

the JTAG-deviceid is also not the one of the listed possibilitites in the tram:
image.png
image.png
or the list is not complete... (TRM Rev H).

This is now an unfortunate situation, which needs to be clarified.
We have devices out there with GP-Variants of the Sitara and they also need to be updated in the future. We are using the Industrial Comms SDK 11 and the contained mcu-plus-sdk. In the past we just moved out the SysFw.bin of the GP-version and stored it at our side, since it was not available anymore. 

So the problem came up, when we tried to install our Bootloader on the evm. Our update process checks the registers and installs according to the security bit the GP- or hs-fs-signed bootloader, each with their matching SysFw. 

We then noticed the evm does not boot at all anymore. After some trying around we saw it installs the wrong GP-based bootloader, because the security bit is not set. We then installed the hs-fs-bootloader without the check for the security-flag and it worked properly after that. 

We also have other Sitara-devices (without an leading X) and those give the right values via the JTAG_USER_ID-register. 

So what is the situation here? Are there other variants of those devices which do give different information in the register than the one printed on the housing?

Or is it just, that the old SysFw.bin from... I dunno mcu-plus-sdk 8? does not work anymore with the latest mcu-plus-sdk-versions?

 

best regards

Felix

  • Hello,

    If your use case is identifying the device type, it is better to read the device type from the SECMGR MMR. The SECURITY bit in the JTAG ID register can differentiate between the GP and HS device but cannot differentiate between the HSFS and HSSE device.

    As for the inconsistency about the SECURITY bit in the JTAG ID register, I will have to loop in the concerned teams.

    I will do that once we have aligned on the method you want to go with for identifying the device type if that is your use case.

    Regards,

    Prashant

  • This is a super good hint, thank you!
    Currently we only use hs-fs, but this will change and we need to take this into account. 

    So the first post had some topics mixed with each other. But you get the point:
    We started pretty early with those Am64 and Am243-SoCs when there were only Prototype-versions available, so for us the "GP"-versions. As soon as TI released the non-gp-versions we had only hs-fs-devices. Also the support in the sdk for the gp-devices, and thus the SysFw, was discontinued. 
    Still we needed to update older devices, and need to do that in the future as well. 
    So we took out the SysFw.bin from the sdk.
    Also we have our own bootloader-application which is loosely based on the ospi-bootloader. We use our own platform and update-mechanisms with three slots for different firmwares (A/B and a backup-firmware-slot).
    The SBL-image usually also contains the SysFw and the boardcfg, which is activated by the RBL. 
    This means we need to build two different Bootloader-applications, one for gp and one for hs-fs, since the SysFw.bin of the GP won't work with hs-fs and the other way round. 

    Our update-mechanism also allows to add bootloader-images to the update-file, which then will be installed as well. We even added two Bootloader-images to our update-file, since we had one product with different SoC-revisions in field. This means the device needs to differentiate between those two bootloaders. 

    For that we needed a register to read out from the Sitara for identification. based on those values the gp- or hs-fs-bootloader will be installed.

    The register you mention is also something we accidentially found out via reverse engineering. But we didn't find any further information about that in the TRM (maybe we just didn't find it). That's why we chose the JTAG_UDER_ID-register. 

    Currently it did not produce any problems, or I would assume we did not receive any of the revisions soldered onto the evm. So our products were still updateable and for the batches we received the read out from the JTAG_USER_ID-register was good enough. 

    So if we can get more info on the SECMGR and its register-values and you say it's more reliable, we could change to that. 

    With this knowledge we can also prepare firmware-updates without any bootloaders, which will just change the application-image and thus the check for the SEC MGR registers.

    Now you gave a good hint, since we probably need to adapt this as well for the hs-se, which shouldn't be a big problem, but needs to be taken into account. 

  • Hello,

    But we didn't find any further information about that in the TRM (maybe we just didn't find it).

    The register information is not available in the TRM. It is part of the SECMGR MMRs which are available in the Security TRM. You would need to request access to the secure resources.

    For the time being, you may refer the following APIs and see how the device type is identified.

    Let me know if any further clarifications are needed.