The JTAG block can be permanently disabled by programming the appropriate eFUSE in the efuse_pgm_addr (0xFFCC_000C) register. When this eFUSE is blown, the JTAG is restricted to two commands, IDCODE and BYPASS. IDCODE is only available by resetting the JTAG controller (going to the test-logic-reset state). All commands shifted into the IR are converted to BYPASS. Also, when the JTAG disable eFUSE is blown, all security gates are permanently enabled, making it impossible to reach the Zynq UltraScale+ MPSoC TAP or the Arm DAP.
•IDCODE available by shifting JTAG to test-logic-reset state.
•BYPASS available by shifting in any other instruction to the IR.
•All security gates permanently enabled.