Request for Clarification on OTP and Secure Boot Configuration for LS1046A

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

Request for Clarification on OTP and Secure Boot Configuration for LS1046A

Jump to solution
1,024 Views
gkrishna
Contributor III

Hi,

We are currently implementing secure boot with the new TFA bootflow and U-Boot 2025 on our custom LS1046A platform. While working on hashing the OTP and SRKH keys, we encountered an issue related to the OTP status registers.

After writing the OTP keys (not yet fused), we observed the following:

  • OTP Status Register (0x1E90014): Value reads as 0x88002B00 initially, and after writing the OTP values (not fused yet), it changes to 0x80002B00.

  • The PE error is not shown, but the SYNDROME bit remains set (1) instead of zero.

  • According to one of the reference documents, the expected value should be 0x80000900, where the middle bits should be zero. However, we never get this expected value after writing the OTP keys.

  • Secret Value Hashing Register (0x1E80024): Shows 0x00000000, which seems correct.

  • Scratch Register for OTPMK (0x1EE0204): Also shows 0x00000000, which appears proper.

Our main concern is whether the value 0x80002B00 in the SecMon HP Status Register (0x1E90014) is valid and safe to proceed with fusing. We already lost one board during this process, so we would like to confirm before proceeding further.

Could you please confirm if this value is acceptable for fusing, and share any official documentation or guidance that clearly explains the expected values and behavior of the SecMon status and SYNDROME bits during OTP programming?

Thank you very much for your support.

regards,

Gopi Krishna M

0 Kudos
Reply
1 Solution
964 Views
LFGP
NXP TechSupport
NXP TechSupport
dear @gkrishna,
If you will need documentation about Security, you need to open a new private case, not in the community area please.

View solution in original post

0 Kudos
Reply
7 Replies
711 Views
gkrishna
Contributor III

Thank You, Everything working fine now.

0 Kudos
Reply
956 Views
gkrishna
Contributor III

Thanks Kenil and LFGP, Its not about documents, Its all about Sec_mon register(0x1E90014)) status,  After writing OTP, without fuse that register shows 0x80002900, and then in another device it shows 0x80002B00,  but in one of the document everywhere it shows these three digit should be 0 like 0x80000900, But I didn't see that in any devices even after writing those keys, so what I am asking what those bits refers, I dont see that in any of the document. Please provide the link that will be helpful, All other registers showing proper values only this Sec Mon status registers showing irregular values.  Please clarify me.

 

Thanks,

Gopi krishna M

0 Kudos
Reply
965 Views
LFGP
NXP TechSupport
NXP TechSupport
dear @gkrishna,
If you will need documentation about Security, you need to open a new private case, not in the community area please.
0 Kudos
Reply
1,001 Views
kenli
NXP Employee
NXP Employee
I have experience with secure boot on LX2 and would like to share some insights. Although LS1046A uses the TA2.1 IP, the flow should be similar:
  1. The OTPMK must be fused into the fuse array and must satisfy the Hamming-code check. Details are in the LSDK UG or LLDP UG.“Blowing of OTPMK is essential to run secure boot for both Production and Development
    phases.”
  2. SRKH can be left in the mirror registers—no need to blow fuses for early secure-boot verification.
  3. When you finally program OTPMK/SRKH, pay attention to the endianness difference between U-Boot and JTAG/ccs; this is critical.
  4. Register offset 0x1E8_0024 shows whether OTPMK is valid.
  5. If OTPMK fails, the error is reported at 0x1E90018.
  6. The minimum Hamming weight for OTPMK is 0xF. Generate candidates with gen_otpmk_drbg so you know exactly what was written. OTPMK cannot be read back, but keeping a record of the value and fuse offset is vital—fuses can be incrementally repaired if a write goes wrong.
Best regards
0 Kudos
Reply
964 Views
LFGP
NXP TechSupport
NXP TechSupport
dear @kenli

thanks for your help
0 Kudos
Reply
953 Views
gkrishna
Contributor III
Hi To make it simple,

The fresh board should show

md 1e90014
88 000 900

but my fresh board always shows

md 1e90014
88 002 B00

please explain this, this should not show like this as per the document, what shall I do.. Please give some insight, whether this is a valid value?

Thanks
0 Kudos
Reply
923 Views
kenli
NXP Employee
NXP Employee
The document uses LX2160 as an example—refer to it as needed. The attachment provides a complete guide flow for LX2160.
For specific bit meanings, please submit a ticket or contact sales.
Do you have a completely unfused development board? Compare it with an OTPMK-fused board. If you can provide detailed log files, I can help analyze them.
Best regards
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2204555%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERequest%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2204555%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3EWe%20are%20currently%20implementing%20secure%20boot%20with%20the%20new%20TFA%20bootflow%20and%20U-Boot%202025%20on%20our%20custom%20LS1046A%20platform.%20While%20working%20on%20hashing%20the%20OTP%20and%20SRKH%20keys%2C%20we%20encountered%20an%20issue%20related%20to%20the%20OTP%20status%20registers.%3C%2FP%3E%3CP%3EAfter%20writing%20the%20OTP%20keys%20(not%20yet%20fused)%2C%20we%20observed%20the%20following%3A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%3CSTRONG%3EOTP%20Status%20Register%20(0x1E90014)%3A%3C%2FSTRONG%3E%20Value%20reads%20as%200x88002B00%20initially%2C%20and%20after%20writing%20the%20OTP%20values%20(not%20fused%20yet)%2C%20it%20changes%20to%200x80002B00.%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EThe%20%3CSTRONG%3EPE%20error%3C%2FSTRONG%3E%20is%20not%20shown%2C%20but%20the%20%3CSTRONG%3ESYNDROME%20bit%3C%2FSTRONG%3E%20remains%20set%20(1)%20instead%20of%20zero.%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EAccording%20to%20one%20of%20the%20reference%20documents%2C%20the%20expected%20value%20should%20be%200x80000900%2C%20where%20the%20middle%20bits%20should%20be%20zero.%20However%2C%20we%20never%20get%20this%20expected%20value%20after%20writing%20the%20OTP%20keys.%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%3CSTRONG%3ESecret%20Value%20Hashing%20Register%20(0x1E80024)%3A%3C%2FSTRONG%3E%20Shows%200x00000000%2C%20which%20seems%20correct.%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%3CSTRONG%3EScratch%20Register%20for%20OTPMK%20(0x1EE0204)%3A%3C%2FSTRONG%3E%20Also%20shows%200x00000000%2C%20which%20appears%20proper.%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3EOur%20main%20concern%20is%20whether%20the%20value%200x80002B00%20in%20the%20SecMon%20HP%20Status%20Register%20(0x1E90014)%20is%20valid%20and%20safe%20to%20proceed%20with%20fusing.%20We%20already%20lost%20one%20board%20during%20this%20process%2C%20so%20we%20would%20like%20to%20confirm%20before%20proceeding%20further.%3C%2FP%3E%3CP%3ECould%20you%20please%20confirm%20if%20this%20value%20is%20acceptable%20for%20fusing%2C%20and%20share%20any%20official%20documentation%20or%20guidance%20that%20clearly%20explains%20the%20expected%20values%20and%20behavior%20of%20the%20SecMon%20status%20and%20SYNDROME%20bits%20during%20OTP%20programming%3F%3C%2FP%3E%3CP%3EThank%20you%20very%20much%20for%20your%20support.%3C%2FP%3E%3CP%3Eregards%2C%3C%2FP%3E%3CP%3EGopi%20Krishna%20M%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205518%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Request%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205518%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%20class%3D%22paragraph%22%3EThe%20document%20uses%20LX2160%20as%20an%20example%E2%80%94refer%20to%20it%20as%20needed.%20The%20attachment%20provides%20a%20complete%20guide%20flow%20for%20LX2160.%3C%2FDIV%3E%0A%3CDIV%20class%3D%22paragraph%22%3EFor%20specific%20bit%20meanings%2C%20please%20submit%20a%20ticket%20or%20contact%20sales.%3C%2FDIV%3E%0A%3CDIV%20class%3D%22paragraph%22%3EDo%20you%20have%20a%20completely%20unfused%20development%20board%3F%20Compare%20it%20with%20an%20OTPMK-fused%20board.%20If%20you%20can%20provide%20detailed%20log%20files%2C%20I%20can%20help%20analyze%20them.%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205495%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Request%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205495%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EHi%20To%20make%20it%20simple%2C%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20fresh%20board%20should%20show%3CBR%20%2F%3E%3CBR%20%2F%3Emd%201e90014%3CBR%20%2F%3E88%20000%20900%3CBR%20%2F%3E%3CBR%20%2F%3Ebut%20my%20fresh%20board%20always%20shows%3CBR%20%2F%3E%3CBR%20%2F%3Emd%201e90014%3CBR%20%2F%3E88%20002%20B00%3CBR%20%2F%3E%3CBR%20%2F%3Eplease%20explain%20this%2C%20this%20should%20not%20show%20like%20this%20as%20per%20the%20document%2C%20what%20shall%20I%20do..%20Please%20give%20some%20insight%2C%20whether%20this%20is%20a%20valid%20value%3F%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205492%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Request%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205492%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThanks%20Kenil%20and%20LFGP%2C%20Its%20not%20about%20documents%2C%20Its%20all%20about%20Sec_mon%20register(%3CSTRONG%3E0x1E90014)%3C%2FSTRONG%3E)%20status%2C%26nbsp%3B%20After%20writing%20OTP%2C%20without%20fuse%20that%20register%20shows%20%3CSTRONG%3E0x80002900%2C%26nbsp%3B%3C%2FSTRONG%3Eand%20then%20in%20another%20device%20it%20shows%20%3CSTRONG%3E0x80002B00%2C%26nbsp%3B%3C%2FSTRONG%3E%20but%20in%20one%20of%20the%20document%20everywhere%20it%20shows%20these%20three%20digit%20should%20be%200%20like%200x80%3CSTRONG%3E000%3C%2FSTRONG%3E900%2C%20But%20I%20didn't%20see%20that%20in%20any%20devices%20even%20after%20writing%20those%20keys%2C%20so%20what%20I%20am%20asking%20what%20those%20bits%20refers%2C%20I%20dont%20see%20that%20in%20any%20of%20the%20document.%20Please%20provide%20the%20link%20that%20will%20be%20helpful%2C%20All%20other%20registers%20showing%20proper%20values%20only%20this%20Sec%20Mon%20status%20registers%20showing%20irregular%20values.%26nbsp%3B%20Please%20clarify%20me.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThanks%2C%3C%2FP%3E%3CP%3EGopi%20krishna%20M%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205474%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Request%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205474%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Edear%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F195876%22%20target%3D%22_blank%22%3E%40gkrishna%3C%2FA%3E%2C%3CBR%20%2F%3EIf%20you%20will%20need%20documentation%20about%20Security%2C%20you%20need%20to%20open%20a%20new%20private%20case%2C%20not%20in%20the%20community%20area%20please.%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2205473%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Request%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2205473%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Edear%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F181647%22%20target%3D%22_blank%22%3E%40kenli%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3Ethanks%20for%20your%20help%20%3CLI-EMOJI%20id%3D%22lia_slightly-smiling-face%22%20title%3D%22%3Aslightly_smiling_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2204644%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Request%20for%20Clarification%20on%20OTP%20and%20Secure%20Boot%20Configuration%20for%20LS1046A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2204644%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%20class%3D%22paragraph%22%3EI%20have%20experience%20with%20secure%20boot%20on%20LX2%20and%20would%20like%20to%20share%20some%20insights.%20Although%20LS1046A%20uses%20the%20TA2.1%20IP%2C%20the%20flow%20should%20be%20similar%3A%3C%2FDIV%3E%0A%3COL%20start%3D%221%22%3E%0A%3CLI%3E%0A%3CDIV%20class%3D%22paragraph%22%3EThe%20OTPMK%20must%20be%20fused%20into%20the%20fuse%20array%20and%20must%20satisfy%20the%20Hamming-code%20check.%20Details%20are%20in%20the%20LSDK%20UG%20or%20LLDP%20UG.%3CSTRONG%3E%E2%80%9CBlowing%20of%20OTPMK%20is%20essential%20to%20run%20secure%20boot%20for%20both%20Production%20and%20Development%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3Ephases.%E2%80%9D%3C%2FSTRONG%3E%3C%2FDIV%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CDIV%20class%3D%22paragraph%22%3ESRKH%20can%20be%20%3CSTRONG%3Eleft%20in%20the%20mirror%20registers%3C%2FSTRONG%3E%E2%80%94no%20need%20to%20blow%20fuses%20for%20early%20secure-boot%20verification.%3C%2FDIV%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CDIV%20class%3D%22paragraph%22%3EWhen%20you%20finally%20program%20OTPMK%2FSRKH%2C%20pay%20attention%20to%20the%20%3CSTRONG%3Eendianness%20difference%3C%2FSTRONG%3E%20between%20%3CSTRONG%3EU-Boot%20and%20JTAG%2Fccs%3C%2FSTRONG%3E%3B%20this%20is%20critical.%3C%2FDIV%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CDIV%20class%3D%22paragraph%22%3ERegister%20offset%20%3CSTRONG%3E0x1E8_0024%3C%2FSTRONG%3E%20shows%20whether%20OTPMK%20is%20valid.%3C%2FDIV%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CDIV%20class%3D%22paragraph%22%3EIf%20OTPMK%20fails%2C%20the%20error%20is%20reported%20at%200x1E90018.%3C%2FDIV%3E%0A%3C%2FLI%3E%0A%3CLI%3E%0A%3CDIV%20class%3D%22paragraph%22%3EThe%20minimum%20Hamming%20weight%20for%20OTPMK%20is%200xF.%20Generate%20candidates%20with%20gen_otpmk_drbg%20so%20you%20know%20exactly%20what%20was%20written.%20OTPMK%20cannot%20be%20read%20back%2C%20but%20keeping%20a%20record%20of%20the%20value%20and%20fuse%20offset%20is%20vital%E2%80%94fuses%20can%20be%20incrementally%20repaired%20if%20a%20write%20goes%20wrong.%3C%2FDIV%3E%0A%3C%2FLI%3E%0A%3C%2FOL%3E%3C%2FLINGO-BODY%3E