AR# 64275

Zynq-7000 SoC: booting in secure mode, how do I enable JTAG?

Description

When booting Zynq in secure mode, JTAG is disabled by default.  

(UG585) implies that JTAG can be turned back on, how do I do this?

Solution

Assuming that the eFuse to disable JTAG is not blown (XSK_EFUSEPL_DISABLE_JTAG_CHAIN), these are the register settings to re-enable JTAG:
 

  • devcfg.CTRL{DAP_EN}  = 1 
  • devcfg.CTRL{DBGEN}  = 1 
  • devcfg.CTRL{NIDEN}  = 1 
  • devcfg.CTRL{JTAG_CHAIN_DIS}  = 0 
 

The following code can be added in the FSBL to re-enable JTAG:

                u32 reg_addr, reg_data;
 

                //xil_printf("enable jtag dap \r\n");

                /* DEVCFG CTRL enable DAP*/

                reg_addr = 0xF8007000 + 0x00;

                reg_data = Xil_In32 (reg_addr);

                reg_data |= 0x7F; /* DAP enable */

                reg_data &= ~(0x00800000); /* JTAG CHAIN DIS */

                Xil_Out32 (reg_addr, reg_data);

AR# 64275
Date 06/13/2018
Status Active
Type General Article
Devices