The Libero SoC software allows you to program the external SPI flash memory with programming images. To program the SPI flash memory:
- 1.Go to Design Flow > Program and Debug Design > Configure Design Initialization Data and Memories, and select the SPI Flash tab, as shown in following figure.
Figure 1. SPI Flash Programming in Libero SoC
![](GUID-F1DFCD1E-9663-43A5-9DD3-6553051471A8-low.png)
Note: For RT PolarFire FPGA, to streamline the SPI-Flash Programming support with FlashPro6, effective from Libero SoC v12.4, the vendor information is replaced with the density of the target memory.
- 2.Under SPI Flash Clients, add the required programming images, and click Apply. For more information about values to be entered in the fields, click Help.
- 3.Go to Design Flow > Configure Hardware > Configure Programmer > right-click and select Programmer Settings in the FlashPro tabs. User can modify the TCK frequency by checking and selecting the Force TCK Frequency to enhance the SPI flash programming time.
Figure 2. Programmer Settings
![](GUID-97154E20-6275-4C1C-888C-1BD0CA5EAA6A-low.jpg)
- 4.Double-click Run PROGRAM_SPI_IMAGE Action to get the SPI flash programmed with the SPI directory and the programming images.
Figure 3. Run PROGRAM_SPI_IMAGE Action
![](GUID-BD32A8B9-72F3-46FA-8A54-661F7B122603-low.png)
For more information about design initialization data and memories, see PolarFire FPGA and PolarFire SoC FPGA Device Power-up and Reset User Guide.
Notes: The following are the recommendations for SPI Flash Programming Using Libero.
- This tool erases the SPI Flash prior to programming. It is recommended to program the SPI Flash with Libero SoC prior to programming other data on the SPI Flash using non-Libero programming solutions.
- Partial update of the SPI Flash is currently not supported.
- It is not recommended to have large gaps between clients in the SPI Flash, since gaps are currently programmed with 1’s and increases programming time.