What are the reserved memory adresses used for?

We are currently working with the HiFive Rev B board. While going through the SiFive FE310-G002 Manual, we came across some Reserved memory spaces in the FE310-G002 Memory Map. There are also reserved spaces in other registers as well (for e.g. the mstatus register).

Looking through the documentation I could not figure out what these were used for. It is probably because I’m not sure what I am looking for. Can someone kindly help me understand what these are used for? Or point me in the right direction where I can find the information? Thanks!

Hi Ishraq,

Reserved spaces in the address map are simply locations where no memory or peripheral has been implemented. The FE310 has a 32-bit address space which supports 4GB, but much of it goes unused as it only has a 512MB flash and 16KB of DTIM. Any access to a Reserved location should generate a load or store access fault.

You might find Reserved bits in a register if all 32 bits of the register are not required. For instance, the PLIC’s Interrupt Priority Registers are 32-bit, but there are only 3 bits of interrupt priority on the FE310. So the upper 29 bits of the priority registers are marked Reserved as they aren’t implemented.

The mstatus register is defined in the RISC-V Privileged Specification. Current functionality doesn’t require all 32 bits of the register, so unused bits are simply Reserved for future use.