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.

AM263P2: AM263Px - Secure debug - Permanent lock - SDK Reference

Part Number: AM263P2

Hello Team,

The secure debug for AM263Px SitaraMCU processor information is spread across multiple sections of the technical documentation. The SDK has been helpful in understanding the concept—thank you for that.

However, we have a few follow-up questions:

Permanent Debug Disable: Our requirement is to permanently disable debug access. In the SDK, we noticed the API: SecMgr_isJTAGDisabled()
1. Is checking this status sufficient to confirm that JTAG/debug access is fully and permanently locked? 

Alternate Debug Access Paths
2. Are there any other possible interfaces or mechanisms through which debug access could still be enabled, even if JTAG is reported as disabled.

OTP / eFuse-Based Disable
While looking for clarification, we came across a presentation stating (: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1531676/mcu-plus-sdk-am263px-method-to-enable-secure-debug-on-r5f-and-hsm-core/5893756?tisearch=e2e-quicksearch&keymatch=Secure%20debug ):“Permanent disable via JTAG using OTP KW is currently not supported.” Could you please clarify:

3. Does this mean that permanent debug disable using OTP/eFuse is not supported?

image.png

  • Hello,

    I've assigned this thread to the relevant expert, please expect a reply shortly.

    Best,

    Matt

  • Hi,
    Following up on this as it’s been 5 days. Could you please provide an update :-) ?
  • Hi Jayanthi, 

    Sorry for the delay, i was on business travel.

    Please find the response below

    Permanent Debug Disable: Our requirement is to permanently disable debug access. In the SDK, we noticed the API: SecMgr_isJTAGDisabled()
    1. Is checking this status sufficient to confirm that JTAG/debug access is fully and permanently locked?

    The default state of the device is JTAG locked in HS-SE. This API is used to read if JTAG is disabled from EFUSE. If you are opting for this option, then this API reflects the status of the same.

    Alternate Debug Access Paths
    2. Are there any other possible interfaces or mechanisms through which debug access could still be enabled, even if JTAG is reported as disabled.

    Yes, the efuse path of permanent jtag disable is not suggested (As mentioned in HSM Addendum). 

    Hence we can use the SBL certificate with debug disable extension to get a permanent disable as ROM disables the JTAG in this case, so from a customer POV, the JTAG is always disabled. To enable it back, we need to update the SBL certificate to unlock JTAG.

    OTP / eFuse-Based Disable
    While looking for clarification, we came across a presentation stating (: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1531676/mcu-plus-sdk-am263px-method-to-enable-secure-debug-on-r5f-and-hsm-core/5893756?tisearch=e2e-quicksearch&keymatch=Secure%20debug ):“Permanent disable via JTAG using OTP KW is currently not supported.” Could you please clarify:

    Yes, this is not available using OTP KW. The efuse driver is present in TIFS SDK, which you can use to  write to Efuse. But as mentioned earlier, not recommended method of JTAG disable

    Thanks and Regards,

    Nikhil Dasan

  • Thanks Nikhil for the response.

    To summarize, my understanding is that the:

    - EFUSE_JTAG_DISABLE_STATUS for permanent efuse lock
    - WRITE_ONCE_ONLY_STATUS plus the debug control/firewall registers for boot-time or runtime policy lock

    I understand that a permanent lock is irreversible and cannot be bypassed once applied. However, we would still like to proceed with validating the permanent e-fuse lock functionality.

    Given this limitation, could you kindly advise if there is a way to simulate the permanent lock? As we are working in an HS-SE development environment, we would prefer not to apply the actual lock, but still need to perform the necessary tests to ensure the functionality behaves as expected.

  • Given this limitation, could you kindly advise if there is a way to simulate the permanent lock? As we are working in an HS-SE development environment, we would prefer not to apply the actual lock, but still need to perform the necessary tests to ensure the functionality behaves as expected.

    Hi,

    Unfortunately, there is no way to recover back or simulate the JTAG lock via EFUSE write as this is a one time process and it does not revert back.

    Hence we can use the SBL certificate with debug disable extension to get a permanent disable as ROM disables the JTAG in this case, so from a customer POV, the JTAG is always disabled. To enable it back, we need to update the SBL certificate to unlock JTAG.

    The above way you can simulate JTAG log and revert it as well. May I know the concern behind going ahead with this approach in production?

    Thanks and Regards,

    Nikhil Dasan

  • Hi,

    Permanent lock is our project requirement. The objective is to ensure that no backdoor access path remains available in the final product.
  • Hi,

    Noted.

    May I know your plan on address a customer return on the device due a field failure (if any).
    i.e. if there is a need to debug from the field returned module, is there a method to achieve this at your end without enabling JTAG?

    Please note That the option 2 of disabling the JTAG using SBL certificate is not a backdoor access path for the intruders. This path can be accessed only by the authenticated users who has access to the Root of Trust keys present on the device.

    Thanks and Regards,

    Nikhil Dasan

  • Yes, Nikhil, the project team is fully aware of this scenario. The implications of enabling the permanent lock have been communicated and are well understood by all stakeholders.

    We acknowledge that, once the device is permanently locked, debug access will no longer be available. Consequently, we will not have a means to perform traditional debug activities during field-return investigations. Despite this limitation, the team has reviewed and accepted the associated risks, and the decision aligns with the project's security requirements.

  • I have one final question regarding debug. I found two diagrams that show eFuses being used for debug control.
    When the debug-control eFuse is blown, does the permanent lock disable only the JTAG debug port, or does it also disable all trace interfaces?
  • Hi,

    The ROM disables the trace during this debug disable using the below register.

    I'll confirm internally if this is a sticky register (i.e. can be written only once upon power ON and resets only on a power cycle).

    If this is the case, then trace is also permanently disabled.

    Thanks and Regards,

    Nikhil Dasan

  • Thank you. This information will be extremely helpful for our development activities.
  • Hi,

    Sorry for the delay in response.

    This register is also one-time writable; hence the trace path would also be disabled during permanent debug lock.

    Thanks and Regards,

    Nikhil Dasan