2.4 MSS Pre-Boot (For PolarFire SoC and RT PolarFire SoC FPGA Only)

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 ).

Table 2-4. MSS Core Complex Boot Modes
U_MSS_BOOTMODE[1:0]ModeDescription
0Idle bootMSS Core Complex boots from boot ROM if MSS is not configured
1Non-secure bootMSS Core Complex boots directly from address defined by the U_MSS_BOOTADDR
2User secure bootMSS Core Complex boots from sNVM
3Factory secure bootMSS 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.

Figure 2-22. MSS Pre-boot Flow