Hi @Rita_Wang,
Thank you for your prompt and helpful response.
As disabling JTAG via Secure JTAG (Blowing the SJC_DISABLE fuse) is an irreversible action, I’m exploring a less permanent, software-based approach. My intention is to weaken the electrical drive strength or alter the pad settings of the core JTAG signals to make external access more difficult.
To achieve this, I defined the relevant JTAG pin macros in the imx6q-pinfunc.h header like below:
#define MX6QDL_PAD_JTAG_TMS__JTAG_TMS 0x000 0x678 0x000 0x0 0x0
#define MX6QDL_PAD_JTAG_MOD__JTAG_MOD 0x000 0x67C 0x000 0x0 0x0
#define MX6QDL_PAD_JTAG_TRSTB__JTAG_TRSTB 0x000 0x680 0x000 0x0 0x0
#define MX6QDL_PAD_JTAG_TDI__JTAG_TDI 0x000 0x684 0x000 0x0 0x0
#define MX6QDL_PAD_JTAG_TCK__JTAG_TCK 0x000 0x688 0x000 0x0 0x0
#define MX6QDL_PAD_JTAG_TDO__JTAG_TDO 0x000 0x68C 0x000 0x0 0x0
and modified the Pad Control Register settings via the imx6q-horizon.dtsi device tree file like below:
fsl,pins = <
MX6QDL_PAD_JTAG_TMS__JTAG_TMS 0x00002060
MX6QDL_PAD_JTAG_MOD__JTAG_MOD 0x00002060
MX6QDL_PAD_JTAG_TRSTB__JTAG_TRSTB 0x00002060
MX6QDL_PAD_JTAG_TDI__JTAG_TDI 0x00002060
MX6QDL_PAD_JTAG_TCK__JTAG_TCK 0x00002060
MX6QDL_PAD_JTAG_TDO__JTAG_TDO 0x000080B1
>;
However, after applying these changes, the board fails to boot and hangs at the "Starting kernel ..." log message.
Could you provide any insight into what might be causing this hang? Is it possible that altering pad control settings of non-muxable JTAG pins is interfering with early kernel or SoC initialization?
Thanks again for your guidance.