How to fully secure an IMX8M device

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to fully secure an IMX8M device

884 Views
TomHarvey
Contributor II

Hi all, 

I am currently trying to fully secure an IMX8M device. I have programmed the SRK_HASH and am currently able to perform a high assurance boot with a signed bootloader and image.

In the AN4581 it lists the following fuses that must be programmed to fully secure the device:

• SRK_LOCK: Lock for SRK_HASH[255:0] fuses.
• DIR_BT_DIS: Disable direct external memory boot.
• SJC_DISABLE: Disable the secure JTAG controller module.
• JTAG_SMODE: Set JTAG security mode to no debug mode 0x11.
• JTAG_HEO: Disallows HAB JTAG enabling.
• BOOT_CFG_LOCK: Lock on BOOT related fuses.

I have worked out the the word, bank and fuse values by reading IMX8MDQLQRM and IMX8MDQLQSRM for the SRK_LOCK, BOOT_CFG_LOCK and SEC_CONFIG: (Please let me know if these are correct).

SRK_LOCK

fuse prog 0 0 0x100

BOOT_CFG_LOCK

fuse prog 0 0 0xC

SEC_CONFIG

fuse prog 1 3 0x2000000


For DIR_BT_DIS the technical specification states that:

"The DIR_BT_DIS eFuse must be programmed prior to shipping
a device in a security enabled configuration. If the this eFuse is
not blown, the system is not secure."

So I assume that this does not need to be programmed.

For SJC_DISABLE and JTAG_SMODE I cannot find the mappings in the technical specification and have come across a forum post that details the following:

Fuse addrFuse nameNum bitsFuse functionSettingUsed by
0x470[21]SJC_DISABLE1Disable/Enable the Secure JTAG Controller module. This fuse is used to create highest JTAG security level, where JTAG is totally blocked.0 - Secure JTAG Controller is enabled
1 - Secure JTAG Controller is disabled
SJC
0x470[23:22]JTAG_SMODE[1:0]2JTAG Security Mode. Controls the security mode of the JTAG debug interface00 - JTAG enable mode
01 - Secure JTAG mode
11 - No debug mode
SJC


https://community.nxp.com/t5/i-MX-Processors/DIR-BT-DIS-and-others/m-p/1212354 

And i can't see a mention of JTAG_HEO.

I would like to understand the following to fully secure the device:

 

  • Does DIR_BT_DIS need to be programmed? If so what values?
  • For SJC_DISABLE and JTAG_SMODE are the values shown in the table above 0x470[21] and 0x470[23:22] correct?
  • Do i need to program JTAG_HEO if so what is its fuse mapping?
  • Is there anything additional i need to program to fully secure the device. For instance do i need to program fuses such as FIELD_RETURN? 

Please may someone send the the relevant information or documents detailing this.

Kind regards, 

Tom

4 Replies

852 Views
Harvey021
NXP TechSupport
NXP TechSupport

Hi,

Will reply back to you in system email as some fuse information can't be discussed publicly.

 

Regards

Harvey

0 Kudos
Reply

249 Views
kirankumar007
Contributor I

Hi,

 

I.MX8MP EVK JTAG Detection issue.

Default image eMMC booted stopped at Uboot using putty. 

After uboot Read following data received in Putty Terminal,

 

kirankumar007_1-1761205384356.png

0x470[21]  SJC_DISABLE  is =  0x1

0x470[23:22]  JTAG_SMODE[1:0][1:0] = 0x11

In data sheet 

JTAG_SMODE[1:0] = 0x11 means [11 - No debug mode]

From these how to get back in to Debug JTAG mode????

Please guide us 

 

 

0 Kudos
Reply

837 Views
emmanuel_madrigal
Contributor I

Hi Harvey,

 

Would it be possible for you to send me this information as well?

 

Regards,

Emmanuel

0 Kudos
Reply

803 Views
Harvey021
NXP TechSupport
NXP TechSupport

Hi @emmanuel_madrigal 

As some information is under NDA, suggest to raise a ticket with Confidential assistance 

 

Regards

Harvey

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2075305%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EHow%20to%20fully%20secure%20an%20IMX8M%20device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2075305%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20all%2C%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EI%20am%20currently%20trying%20to%20fully%20secure%20an%20IMX8M%20device.%20I%20have%20programmed%20the%20SRK_HASH%20and%20am%20currently%20able%20to%20perform%20a%20high%20assurance%20boot%20with%20a%20signed%20bootloader%20and%20image.%3CBR%20%2F%3E%3CBR%20%2F%3EIn%20the%20AN4581%20it%20lists%20the%20following%20fuses%20that%20must%20be%20programmed%20to%20fully%20secure%20the%20device%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%E2%80%A2%20SRK_LOCK%3A%20Lock%20for%20SRK_HASH%5B255%3A0%5D%20fuses.%3CBR%20%2F%3E%E2%80%A2%20DIR_BT_DIS%3A%20Disable%20direct%20external%20memory%20boot.%3CBR%20%2F%3E%E2%80%A2%20SJC_DISABLE%3A%20Disable%20the%20secure%20JTAG%20controller%20module.%3CBR%20%2F%3E%E2%80%A2%20JTAG_SMODE%3A%20Set%20JTAG%20security%20mode%20to%20no%20debug%20mode%200x11.%3CBR%20%2F%3E%E2%80%A2%20JTAG_HEO%3A%20Disallows%20HAB%20JTAG%20enabling.%3CBR%20%2F%3E%E2%80%A2%20BOOT_CFG_LOCK%3A%20Lock%20on%20BOOT%20related%20fuses.%3C%2FP%3E%3CP%3EI%20have%20worked%20out%20the%20the%20word%2C%20bank%20and%20fuse%20values%20by%20reading%20IMX8MDQLQRM%20and%20IMX8MDQLQSRM%20for%20the%20%3CSTRONG%3ESRK_LOCK%2C%26nbsp%3BBOOT_CFG_LOCK%26nbsp%3B%3C%2FSTRONG%3Eand%26nbsp%3B%3CSTRONG%3ESEC_CONFIG%3C%2FSTRONG%3E%3A%20(Please%20let%20me%20know%20if%20these%20are%20correct).%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSTRONG%3ESRK_LOCK%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Efuse%20prog%200%200%200x100%3CSTRONG%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSTRONG%3E%3CSTRONG%3EBOOT_CFG_LOCK%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Efuse%20prog%200%200%200xC%3C%2FP%3E%3CP%3E%3CSTRONG%3ESEC_CONFIG%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Efuse%20prog%201%203%200x2000000%3C%2FP%3E%3CP%3E%3CBR%20%2F%3EFor%26nbsp%3B%3CSTRONG%3EDIR_BT_DIS%26nbsp%3B%3C%2FSTRONG%3Ethe%20technical%20specification%20states%20that%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%22The%20DIR_BT_DIS%20eFuse%20must%20be%20programmed%20prior%20to%20shipping%3CBR%20%2F%3Ea%20device%20in%20a%20security%20enabled%20configuration.%20If%20the%20this%20eFuse%20is%3CBR%20%2F%3Enot%20blown%2C%20the%20system%20is%20not%20secure.%22%3CBR%20%2F%3E%3CBR%20%2F%3ESo%20I%20assume%20that%20this%20does%20not%20need%20to%20be%20programmed.%3C%2FP%3E%3CP%3EFor%26nbsp%3B%3CSTRONG%3ESJC_DISABLE%26nbsp%3B%3C%2FSTRONG%3Eand%26nbsp%3B%3CSTRONG%3EJTAG_SMODE%26nbsp%3B%3C%2FSTRONG%3EI%20cannot%20find%20the%20mappings%20in%20the%20technical%20specification%20and%20have%20come%20across%20a%20forum%20post%20that%20details%20the%20following%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CTABLE%20border%3D%221%22%20width%3D%22101.45888594164455%25%22%3E%3CTBODY%3E%3CTR%3E%3CTD%20width%3D%2212.234460849412807%25%22%20height%3D%2245px%22%3EFuse%20addr%3C%2FTD%3E%3CTD%20width%3D%2219.704710569486757%25%22%20height%3D%2245px%22%3EFuse%20name%3C%2FTD%3E%3CTD%20width%3D%227.737937140327583%25%22%20height%3D%2245px%22%20class%3D%22lia-align-center%22%20style%3D%22text-align%3A%20center%3B%22%20style%3D%22text-align%3A%20center%3B%22%3ENum%20bits%3C%2FTD%3E%3CTD%20width%3D%2234.755415399141256%25%22%20height%3D%2245px%22%3EFuse%20function%3C%2FTD%3E%3CTD%20width%3D%2230.405585250542117%25%22%20height%3D%2245px%22%3ESetting%3C%2FTD%3E%3CTD%20width%3D%227.810320781032079%25%22%20height%3D%2245px%22%3EUsed%20by%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20width%3D%2212.234460849412807%25%22%20height%3D%22110px%22%3E0x470%5B21%5D%3C%2FTD%3E%3CTD%20width%3D%2219.704710569486757%25%22%20height%3D%22110px%22%3ESJC_DISABLE%3C%2FTD%3E%3CTD%20width%3D%227.737937140327583%25%22%20height%3D%22110px%22%20class%3D%22lia-align-center%22%20style%3D%22text-align%3A%20center%3B%22%20style%3D%22text-align%3A%20center%3B%22%3E1%3C%2FTD%3E%3CTD%20width%3D%2234.755415399141256%25%22%20height%3D%22110px%22%3EDisable%2FEnable%20the%20Secure%20JTAG%20Controller%20module.%20This%20fuse%20is%20used%20to%20create%20highest%20JTAG%20security%20level%2C%20where%20JTAG%20is%20totally%20blocked.%3C%2FTD%3E%3CTD%20width%3D%2230.405585250542117%25%22%20height%3D%22110px%22%3E0%20-%20Secure%20JTAG%20Controller%20is%20enabled%3CBR%20%2F%3E1%20-%20Secure%20JTAG%20Controller%20is%20disabled%3C%2FTD%3E%3CTD%20width%3D%227.810320781032079%25%22%20height%3D%22110px%22%3ESJC%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20width%3D%2212.234460849412807%25%22%20height%3D%22110px%22%3E0x470%5B23%3A22%5D%3C%2FTD%3E%3CTD%20width%3D%2219.704710569486757%25%22%20height%3D%22110px%22%3EJTAG_SMODE%5B1%3A0%5D%3C%2FTD%3E%3CTD%20width%3D%227.737937140327583%25%22%20height%3D%22110px%22%20class%3D%22lia-align-center%22%20style%3D%22text-align%3A%20center%3B%22%20style%3D%22text-align%3A%20center%3B%22%3E2%3C%2FTD%3E%3CTD%20width%3D%2234.755415399141256%25%22%20height%3D%22110px%22%3EJTAG%20Security%20Mode.%20Controls%20the%20security%20mode%20of%20the%20JTAG%20debug%20interface%3C%2FTD%3E%3CTD%20width%3D%2230.405585250542117%25%22%20height%3D%22110px%22%3E00%20-%20JTAG%20enable%20mode%3CBR%20%2F%3E01%20-%20Secure%20JTAG%20mode%3CBR%20%2F%3E11%20-%20No%20debug%20mode%3C%2FTD%3E%3CTD%20width%3D%227.810320781032079%25%22%20height%3D%22110px%22%3ESJC%3C%2FTD%3E%3C%2FTR%3E%3C%2FTBODY%3E%3C%2FTABLE%3E%3CP%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors%2FDIR-BT-DIS-and-others%2Fm-p%2F1212354%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors%2FDIR-BT-DIS-and-others%2Fm-p%2F1212354%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EAnd%20i%20can't%20see%20a%20mention%20of%26nbsp%3B%3CSTRONG%3EJTAG_HEO.%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3EI%20would%20like%20to%20understand%20the%20following%20to%20fully%20secure%20the%20device%3A%3C%2FP%3E%3CBR%20%2F%3E%3CUL%3E%3CLI%3EDoes%26nbsp%3B%3CSTRONG%3EDIR_BT_DIS%26nbsp%3B%3C%2FSTRONG%3Eneed%20to%20be%20programmed%3F%20If%20so%20what%20values%3F%3C%2FLI%3E%3CLI%3EFor%26nbsp%3B%3CSTRONG%3ESJC_DISABLE%20%3C%2FSTRONG%3Eand%26nbsp%3B%3CSTRONG%3EJTAG_SMODE%26nbsp%3B%3C%2FSTRONG%3Eare%20the%20values%20shown%20in%20the%20table%20above%26nbsp%3B%3CSTRONG%3E0x470%5B21%5D%26nbsp%3B%3C%2FSTRONG%3Eand%26nbsp%3B%3CSTRONG%3E0x470%5B23%3A22%5D%26nbsp%3B%3C%2FSTRONG%3Ecorrect%3F%3C%2FLI%3E%3CLI%3EDo%20i%20need%20to%20program%26nbsp%3B%3CSTRONG%3EJTAG_HEO%26nbsp%3B%3C%2FSTRONG%3Eif%20so%20what%20is%20its%20fuse%20mapping%3F%3C%2FLI%3E%3CLI%3EIs%20there%20anything%20additional%20i%20need%20to%20program%20to%20fully%20secure%20the%20device.%20For%20instance%20do%20i%20need%20to%20program%20fuses%20such%20as%26nbsp%3B%3CSTRONG%3EFIELD_RETURN%3F%3C%2FSTRONG%3E%26nbsp%3B%3C%2FLI%3E%3C%2FUL%3E%3CP%3EPlease%20may%20someone%20send%20the%20the%20relevant%20information%20or%20documents%20detailing%20this.%3CBR%20%2F%3E%3CBR%20%2F%3EKind%20regards%2C%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3ETom%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2191298%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20fully%20secure%20an%20IMX8M%20device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2191298%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EI.MX8MP%20EVK%20JTAG%20Detection%20issue.%3C%2FP%3E%3CP%3EDefault%20image%20eMMC%20booted%20stopped%20at%20Uboot%20using%20putty.%26nbsp%3B%3C%2FP%3E%3CP%3EAfter%20uboot%20Read%20following%20data%20received%20in%20Putty%20Terminal%2C%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22kirankumar007_1-1761205384356.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22kirankumar007_1-1761205384356.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F362265i4A918DA2B71E16EF%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22kirankumar007_1-1761205384356.png%22%20alt%3D%22kirankumar007_1-1761205384356.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E0x470%5B21%5D%26nbsp%3B%20SJC_DISABLE%26nbsp%3B%20is%20%3D%26nbsp%3B%200x1%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E0x470%5B23%3A22%5D%26nbsp%3B%20JTAG_SMODE%5B1%3A0%5D%5B1%3A0%5D%20%3D%200x11%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EIn%20data%20sheet%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSTRONG%3EJTAG_SMODE%5B1%3A0%5D%20%3D%200x11%20means%20%5B11%20-%20No%20debug%20mode%5D%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EFrom%20these%20how%20to%20get%20back%20in%20to%20Debug%20JTAG%20mode%3F%3F%3F%3F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPlease%20guide%20us%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2078715%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20fully%20secure%20an%20IMX8M%20device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2078715%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248557%22%20target%3D%22_blank%22%3E%40emmanuel_madrigal%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAs%20some%20information%20is%20under%20NDA%2C%20suggest%20to%20raise%20a%20ticket%20with%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fsupport%2Fsupport%3ASUPPORTHOME%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EConfidential%20assistance%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3ERegards%3C%2FP%3E%0A%3CP%3EHarvey%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2077579%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20fully%20secure%20an%20IMX8M%20device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2077579%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20Harvey%2C%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EWould%20it%20be%20possible%20for%20you%20to%20send%20me%20this%20information%20as%20well%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ERegards%2C%3C%2FP%3E%3CP%3EEmmanuel%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2076693%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20fully%20secure%20an%20IMX8M%20device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2076693%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%0A%3CP%3EWill%20reply%20back%20to%20you%20in%20system%20email%20as%20some%20fuse%20information%20can't%20be%20discussed%20publicly.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3ERegards%3C%2FP%3E%0A%3CP%3EHarvey%3C%2FP%3E%3C%2FLINGO-BODY%3E