...
This demonstration leverages AR68391 which details the sequence of register writes required to enable JTAG after a secure boot. For U-Boot to modify those registers it utilizes the PMU FW. In PMU FW (in pm_mmio_access.c
) there is a filtering process that determines which registers can be accessed. The status of the filtering for the registers of interest is listed below. Modifications are required to enable access to the full set.
Operation | Reg Name | Symbol | Note |
---|---|---|---|
| jtag_sec |
| Access enabled if |
| jtag_dap_cfg |
| Access enabled if |
| jtag_chain_cfg |
| Access enabled if |
| DBG_LPD_CTRL |
| Patch required to enable access |
| RST_LPD_DBG |
| Patch required to enable access |
| Pcap_prog |
| Access enabled if |
General Steps
It is assumed that you have a PetaLinux 2022.1 Project for the ZCU102 board
Configure the PMU FW to support modification of the registers of interest
Define the symbol
Apply the provided patch
Build the PetaLinux Project
Create the Boot Image
Deploy and Test on the ZCU102 boatdboard
Workflow
...
PetaLinux Project : It is assumed that this has been created.
Configure & Build : Incorporate changes to the PMU FW using build settings along with a patch.
Create Boot Image : Use of bootgen to create BOOT. BIN. Authentication uses boot header mode, encryption uses a BBRAM key. For other use cases, the example BIF will need to be modified accordingly.
Deploy & Test on the ZCU102 : Configure a terminal for the U-Boot shell, boot the board from an SD card with the created BOOT.BIN, verify that JTAG is disabled, issue the provided commands, verify that JTAG has been enabled.
...