Nios® V Processor Software Developer Handbook

ID 743810
Date 5/26/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

4.8.1. Memory Types

The default Tcl script uses the IsFlash and IsNonVolatileStorage properties to determine what kind of memory is in the system.

The IsFlash property of the memory module (defined in the .qsys file) indicates whether the .qsys file identifies the memory as a flash memory device.

The IsNonVolatileStorage property indicates whether the .qsys file identifies the memory as a non-volatile storage device. The contents of a non-volatile memory device are fixed and always present.

Note: You can initialize some FPGA memories when you configure the FPGA. They are not considered non-volatile because the default Tcl script has no way to determine whether they are actually initialized in a particular system.
Table 20.  Memory Types Recognized when Making Decisions about Your Boot Configuration
Memory Type Examples IsFlash IsNonVolatileStorage
Flash Quad Serial Peripheral Interface (QSPI) flash devices True True
ROM On-chip memory configured as ROM, HardCopy ROM False True
RAM On-chip memory configured as RAM, HardCopy RAM, SDRAM, synchronous static RAM (SSRAM) False False

The following sections describe each supported build configuration in detail. The alt_load() facility is HAL code that optionally copies sections from the boot memory to RAM. You can set an option to enable the boot copy. This option only adds the code to your BSP if it needs to copy boot segments. The hal.enable_alt_load setting enables alt_load() and there are settings for each of the three sections it can copy (such as hal.enable_alt_load_copy_rodata). Enabling alt_load() also modifies the memory layout specified in your linker script.