-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue programming the HSS in Secure Boot mode 3 on board with Custom Security Settings applied #56
Comments
Forgot to mention that this workflow is working if the HSS is programmed in "Unsecured Boot mode 1" using liberoSoC+FlashPro on a board secured by UEK1/UEK2 keys. So, the Custom Security Settings have already been validated, in a sense. |
If you have custom security settings in Libero, then you need to add a boot mode 3 envm client to include the HSS hex file.
In the "Content from file" option, browse the HSS project and select the hex file located in Default/bootmode3/hss-envm-wrapper-bm3-p0.hex Copy the ucskx and ucsky values from step 3 into the Public Key X and Y fields Click Ok and Apply the changes
Note: you could also try steps 1-4 without custom security settings. Hope this helps. |
Hello Valentina, Thanks a lot for your detailed answer. I apologize, as I think I didn't expose my problem clearly enough. We do know that the procedure you detailed works, as we are also able to reproduce it. What doesn't work for us is the "production" workflow that we're trying to set up:
The issue that we have is that this procedure only works if we're doing all 3 steps at once, and from within a same Libero project containing both UPK1/UEK1 and UPK2/UEK2 keys. But our need is to be able to perform each of these steps separately, using distinct libero projects using only a subset of UEK keys, as these steps will be performed by different people, at different locations and at different times. So, for instance, in the step 3, the libero project shall only contain the UPK2/UEK2 key. The blocking point seems to be that we cannot program the HSS in secure boot mode 3 from a libero project that only contains the eNVM client and the UPK2/UEK2 key (programming logs say "Warning: UPK1 data is missing", then "Invalid/Corrupted enryption key"). It seems that the only way we can achieve that is if we have both the UPK1/UEK1 and UPK2/UEK2 keys set in the libero project, and if we program the Custom Security settings at the same time as the eNVM, which is something we precisely want to avoid. I hope I could explain myself better this time. And let me know if there's something I should clarify... |
I tried to summarize our workflow in a more synthetic view, in the hope that it would clarify the intent and findings:
Steps 1 and 2 projects are always programmed first, and run fine. Then, when we come to step 3, variants #1 and #2 do work, but variant #3 doesn't (which is the one we want) |
Hi,
We are currently facing an issue transitioning from a DEV workflow to a PROD workflow.
We have previously validated that we could program the HSS in Secure Boot Mode 3 using either LiberoSoC or SoftConsole (via mpfsBootmodeProgrammer) on a IcicleKit board with NO security settings applied.
For PROD use, we now have our boards protected by UPK1/2 and UEK1/2 keys.
The idea here is that the fabric is programmed using UEK1 first, and the eNVM/sNVM is programmed using UEK2 later on (at a separate facility).
What we observe is that:
Could it be that this scenario is not supported ?
Thanks in advance for your help !
NB: SW Versions are LiberoSoC 2022.3 (also tried 2023.1), HSS 2022.2, SoftConsole 2022.2
The text was updated successfully, but these errors were encountered: