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.

TM4C1292NCPDT: How to (31 bit) set and reset the boot config register on this controller

Part Number: TM4C1292NCPDT

Tool/software:

Hi Ti,

We have disabled the JTAG access on the TM4C1292NCPDT controller by writing  Boot Configuration register with 0xFFFF50FC. After this, we want to have the capability to 
Enable without using the debugger. For this we have created a binary image by setting the Boot Configuration register with 0xFFFF FFFE and tried to update the firmware using USB interface.
But the TM4C1292NCPDT is reporting the upgrade failure.

 

The question to you is.
1. How can we Enable the JTAG access on the TM4C1292NCPDT controller, without using the Debugger. Can you please share us some insights for this use case.

Thanks 

Sachin 

 

  • Hi,

    The question to you is.
    1. How can we Enable the JTAG access on the TM4C1292NCPDT controller, without using the Debugger. Can you please share us some insights for this use case.

    No, that is not how the JTAG locking mechanism works. Once JTAG is disabled using BOOTCFG register, it cannot be re-enabled by any means except to go through "Unlock Operation". Once you commit the write to the BOOTCFG register, it cannot be reprogrammed with a different value. The BOOTCFG is a non-volatile register which only allows a change of value from 1 to 0, not 0 to 1. If you write "00" to the last two bits of BOOTCFG register, you cannot write "10" to the last two bits again as it is changing a from 0 to 1.  This is explained in the datasheet. Refer to section 5.3.2 in this app note on how to unlock the device. https://www.ti.com/lit/pdf/spma075

    8.2.3.7 Permanently Disabling Debug
    For extremely sensitive applications, the debug interface to the processor and peripherals can be
    permanently disabled, blocking all accesses to the device through the JTAG or SWD interfaces.
    With the debug interface disabled, it is still possible to perform standard IEEE instructions (such as
    boundary scan operations), but access to the processor and peripherals is blocked.
    The DBG0 and DBG1 bits of the Boot Configuration (BOOTCFG) register control whether the debug
    interface is turned on or off.
    The debug interface should not be permanently disabled without providing some mechanism, such
    as the boot loader, to provide customer-installable updates or bug fixes. Disabling the debug interface
    is permanent and cannot be reversed.

    Important: All Flash memory resident registers can only have bits changed from 1 to 0 by user
    programming. The FMPREn, FMPPEn and BOOTCFG registers can be committed
    multiple times, but the USER_REGn registers can only be committed once, after the
    entire register has been set to 1s. After being committed, the USER_REGn registers
    can only be returned to their factory default values of all 1s by performing the sequence
    described in “Recovering a "Locked" Microcontroller” on page 213. The mass erase of
    the main Flash memory array caused by the sequence is performed prior to restoring
    these registers.