Hi,
We are doing a project based on i.MX8m Nano processor.
We enabled secure boot and locked few of the devices and want to lock Jtag too. Can you help answering below quires,
1. In few devices we already programmed the keys and ran the below command to lock the efuse
fuse prog 1 3 0x02000000
In this case can we disable the Jtag in these boards? If so can you share the steps or the fuse command to do so?
fuse prog 1 3 0xE00000 Will this work here?
2. In the new manufacture board, we need to lock the efuse and also disable the Jtag, for that can we use the below command?
fuse prog 1 3 0x02E00000
3. We tried to figure out the documentation explaining about the fuse registers, bank but we couldn't get proper details, we refer the below documents and links, but couldn't find how exactly the bank, word are mapped. Eg: in the security manual it is mentioned "0x470[21] SJC_DISABLE " But we are doing "fuse prog 1 3" and 32bit value. How these are mapped "470" address is mapped to bank 1 and word 3?
"Security Reference Manual for i.MX8M Nano Applications Processor"
Steps to enable secure boot in i.MX8M Nano - NXP Community
"AN4581"
uboot-imx/doc/imx/habv4/guides/mx8m_secure_boot.txt at lf_v2022.04 · nxp-imx/uboot-imx · GitHub
Thanks for the detailed reply. Now I got the answer point #2 and #3.
Can you help in point #1,
1. In few devices we already programmed the keys and ran the below command to lock the efuse
fuse prog 1 3 0x02000000
In this case can we disable the Jtag in these boards? If so, can you share the steps or the fuse command to do so?
fuse prog 1 3 0xE00000 Will this work here? or since we already lock, it wont be modify? need your inputs.
Thanks and Regards,
Jeslin Paul
Hello,
Following the bit position:
111000000000000000000000 -> 0xE00000
so, the correct command is fuse prog 1 3 0xE00000
Remember this operation is not reversible, so, be careful.
Best regards,
Salas.
Can anyone help here?
Hello @jeslinpauljoseph
I hope you are doing well.
To identify a fuse on I.MX8MN, you can look at the Fuse address on the table for example Table 5-4 of the security reference Manual(I can not attach it), there is a column called Fuse address, and you are looking for the JTAG_SMODE, that is 0x470.
You can see on Reference manual the OCOTP memory map and all tje addresses are 3035_xxxx, where xxxx is the offset of the Fuse address.
In this case, the fuse you need is 0x470, so:
You can see the Bank 1 and word 3 are correct.
Now you need to modify the 0x470[23:22] (JTAG_MODE) and disable the 0x470[21] (SJC_DISABLE).
Please refer to reference manual to get details of that fuses.
Best regards,
Salas.