Enabling JTAG Support on Secure Targets#

On secure targets, where the ODM production fuse has been blown, PSC_BL locks the JTAG connection interface. To enable the JTAG interface on such a target, a special BCT is required where certain parameters are set.

To enable the JTAG interface on a secure target#

  1. Set the desired debugging features by editing the .dts file in the drive-foundation or drive-foundation-safety folder:

./platform-config/hardware/nvidia/platform/t264/automotive/bct/common/bootrom/tegra264-br-bct-common-auto.dts

  1. Generate a new BCT image. This can be done by running the create_bsp_images.py orbootburn.py command.

To enable debugging features through the BCT configuration file#

  1. Set the ECID attribute to the UID of the target device if needing to update the debug features in u32_secure_debug_control_ecid_checked.

  2. Set either u32_secure_debug_control_not_ecid_checked or u32_secure_debug_control_ecid_checkedfields to specify the debugging features desired.

The u32_secure_debug_control_not_ecid_checked attribute collection of bit fields are as follows.

Bits

Feature enabled by a ‘1’ bit

31:26

Reserved

25

FSI non-secure NIDEN

24

Reserved

20:23

FSI_CLUSTER1_CORE_DEBUG[3:0]

19:18

Reserved

17

FSI non-secure NIDEN

16

Reserved

15

APE_SECURE_DEBUG

14

DCE_SECURE_DEBUG

13

Reserved

12

PVA0 secure debug

11

RCE secure debug

10

SCE secure debug

9

SPE secure debug

8:5

Reserved

4

NIDEN (disabled when DEBUG_AUTHENTICATION[1] fuse set)

3:0

Reserved

The u32_secure_debug_control_ecid_checked attribute collection of bit fields are as follows.

Bits

Feature enabled by a ‘1’ bit

31

Ramdump

30:26

Reserved

25

FSI secure NIDEN

24

FSI secure DBGEN

23:20

FSI Cluster core debug [3:0]

19

FSI non-secure HNIDEN

18

FSI non-secure HIDEN

17

FSI non-secure NIDEN

16

FSI non-secure DBGEN

5

DBGEN

4

NIDEN

3

SPIDEN

2

SPNIDEN

1

DEVICEEN

0

JTAG_ENABLE

On secure targets PSC_BL compares the UID of the chip to the UID in the BCT and enables debug features for u32_secure_debug_control_ecid_checked if the UIDs match. The PSC_BL enables debug features for u32_secure_debug_control_non_ecid_checked without verifying the UID.

An example of a flashing configuration file that specifies the UID value for a specific target device to enable the JTAG interface with all features in u32_secure_debug_control_ecid_checked except Ramdump is as follows:

     br_bct: brbct {
-        ECID = <0x00000000 0x00000000 0x00000000 0x00000000>;
-        SecureDebugControlEcid = <0>;
+        ECID = <0x15010200 0x1c000000 0x705dd1c1 0x00000004>;
+        SecureDebugControlEcid = <0x3FF003F>;
         SecureDebugControlNoneEcid = <0>;
         preprod_dev_sign = <0>;