2.4 MSS Pre-Boot (For PolarFire SoC and RT PolarFire SoC FPGA Only)
(Ask a Question)Upon successful completion of Design Initialization (assertion of DEVICE_INIT_DONE), MSS Pre-boot starts its execution. The MSS is released from a reset after completion of all normal startup procedures. The System Controller manages the programming, initialization, and configuration of the devices. For ES devices, MSS Pre-boot does not occur if the programmed device is configured for System Controller suspend mode.
The MSS pre-boot phase of initialization is coordinated by System Controller firmware, although it may make use of the E51 in the MSS Core Complex to perform certain parts of the pre-boot sequence.
The following events occur during the MSS pre-boot stage:
- Power-up of the MSS embedded Non-Volatile Memory (eNVM)
- Initialization of the redundancy repair associated with the MSS Core Complex L2 cache
- Authentication of User boot code (if User Secure boot option is enabled)
- Handover operational MSS to User Boot code
The MSS Core Complex can be booted in one of four modes. The following table lists the MSS pre-boot options, which can be configured and programmed into the sNVM. The boot mode is defined by the user parameter U_MSS_BOOTMODE[1:0]. Additional boot configuration data is mode-dependent and is defined by the user parameter U_MSS_BOOTCFG (see Table 1 and Table 2 ).
U_MSS_BOOTMODE[1:0] | Mode | Description |
---|---|---|
0 | Idle boot | MSS Core Complex boots from boot ROM if MSS is not configured |
1 | Non-secure boot | MSS Core Complex boots directly from address defined by the U_MSS_BOOTADDR |
2 | User secure boot | MSS Core Complex boots from sNVM |
3 | Factory secure boot | MSS Core Complex boots using the factory secure boot protocol |
The boot option is selected as part of the Libero design flow. Changing the mode can only be achieved through the generation of a new FPGA programming file.