Replies: 1 comment 10 replies
-
|
You should be able to create two programs - one for eNVM and one for sNVM. The former is the "main" program that you want to run. The latter is the boot mode 2 user secure bootloader that runs from startup after the normal boot mode 2 secure checks, does whatever init it needs to do, then transfers control to the "main" program in eNVM. When using SoftConsole you should be able to use the boot mode 1 support to get the "main" program into eNVM. (It will also configure the target for boot mode 1, but this is just temporary and will be overridden in the next step). Once that is done and the "main" program stored in eNVM, you can use the boot mode 2 support to get the bootloader into sNVM and the target configured for boot mode 2. If using Libero/FlashPro etc. you configure the boot mode (2) there and the sNVM and eNVM program payloads in the relevant project and program them from there (most likely along with the hardware design - MSS configuration, FPGA bitfile etc.). My recollection is also that the HSS (https://github.com/polarfire-soc/hart-software-services) may have its own way of booting from sNVM in user secure boot mode 2 and then transferring control to code stored in eNVM. So it may be worth having a look at the HSS in case its approach is more appropriate for your needs. |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I am currently working with the "PolarFire SoC FPGA Icicle Kit". I have configured the device with the newest "Reference Design".
I want to implement the full boot flow of the "Boot Mode = 2 (User Secure Boot)". According to the documentation here, in this boot mode we flash our own code to the "sNVM". In the run time, the system controller authenticates the content of the "sNVM", copies it to "On-chip RAM" and executes from there.
In the documentation, it is also specified that after running the code in "sNVM", which typically authenticates the content of the "eNVM" before executing it.
So, I have 2 questions:
How can I program the "sNVM" and "eNVM" seperately? For instance, we can seperately program the "eNVM" with the option "Boot Mode = 1" and the "sNVM" with the option "Boot Mode = 2 (User Secure Boot)" using "PolarFire SoC/Libero." But each of them sets the boot mode to either 1 or 2. However, what I want to do is program both of them (eNVM and sNVM) using the Boot Mode = 2 (User Secure Boot).
Which configurations should I make that after the device executes the code in "sNVM", it moves on with the "eNVM"?
Best regards!
Beta Was this translation helpful? Give feedback.
All reactions