Updating Bootloader with Efinity BRAM Initial Content Updater

The Efinity BRAM Initial Content Updater provides a convenient way to modify the default firmware (either bootloader or other application) within the Sapphire SoC on-chip RAM. This process enables you to update the on-chip RAM initial content without recompiling the entire project.

To update the on-chip RAM initial content, follow these steps:
  1. Compile and locate the .hex file: Compile your new application in Efinity RISC-V Embedded Software IDE and locate the corresponding .hex file that contains the compiled code.
  2. Generate the Sapphire SoC with the new application: By using the Sapphire SoC IP Configurator, update the default on-chip RAM application with your new application compiled in the provious step. You may refer to the Modify the Bootloader Software to Extend the External Memory Size on how to use the Custom On-Chip RAM Application in the Sapphire SoC IP Configurator. and you are now ready for the updating process.
    Note: You may opt to generate the binaries with the binGen.py helper script provided manually. Refer to Appendix: Re-Generate the Memory Initialization Files Manually.
  3. Locate the new binaries for your application: After the Sapphire SoC is generated with your application, locate the new binaries, EfxSapphireSoc.v_toplevel_system_ramA_logic_ram_symbol<n>.bin where <n> is the range from 0 to 3 (up to 7 if FPU extension is enabled).
  4. Open the BRAM Initial Content Updater: Click on the BRAM Initial Content Updater tab to launch the BRAM Initial Content Updater.
    Figure 1. Open the BRAM Initial Content Updater
  5. Select Memory Initialization File: In the BRAM Initial Content Updater window, locate the Sapphire SoC BRAM that you would like to update and click on the *_symbol0. In the Select Memory Initialization File section, click the Select Memory Initialization tab. Browse to the updated

    EfxSapphireSoc.v_toplevel_system_ramA_logic_ram_symbol<n>.bin and click Open.

    Figure 2. Select Memory Initialization File
  6. Update the BRAM: Click on the Update Memory Content tab to update the symbol0 BRAM with the new application symbol0 binary.
    Figure 3. Update the BRAM with New Application
  7. Update the remaining BRAM: Repeat step 5 and 6 for all the available symbol files. Update the BRAM with the corresponding binary. For example, update *_ram_symbol2 BRAM with EfxSapphireSoc.v_toplevel_system_ramA_logic_ram_symbol2.bin binary file.
  8. Generate the new bitstream: Click on the Regenerate Bitstream icon to regenerate the bitstream. The generated new bitstreams are located in the outflow folder.

    Figure 4. Generate the New Bitstream
Note: For more information on the Efinity BRAM Initial Content Updater and its application, see the Efinity Software User Guide.