5.1.3
One-Time Programmable (OTP) Memory
The OTP is located on the peripheral bus, with both a control register interface to program the
OTP, and a memory read port interface to fetch words from the OTP. Instruction fetches from the
OTP memory read port are cached in the E31 core’s instruction cache.
The OTP needs to be programmed before use and can only be programmed by code running
on the core. The OTP bits contain all 0s prior to programming.
5.1.4
Quad SPI Flash Controller (QSPI)
The dedicated QSPI flash controller connects to external SPI flash devices that are used for
execute-in-place code. SPI flash is not available in certain scenarios such as package testing or
board designs not using SPI flash (e.g., just using on-chip OTP).
Off-chip SPI devices can vary in number of supported I/O bits (1, 2, or 4). SPI flash bits contain
all 1s prior to programming.
5.2
Reset and Trap Vectors
FE310-G000 fetches the first instruction out of reset from
0x1000
. The instruction stored there
jumps straight to OTP at
0x2_0000
, and will either enter a trap loop if the OTP is not pro-
grammed, or start running the OTP code.
Chapter 5 Boot Process
SiFive FE310-G000 Manual: v3p2
© SiFive, Inc.
Page 21