Hardware Interfaces

Referring to the Comportable guideline for peripheral device functionality, the module flash_ctrl has the following hardware interfaces defined

  • Primary Clock: clk_i
  • Other Clocks: clk_otp_i
  • Bus Device Interfaces (TL-UL): core_tl, prim_tl, mem_tl
  • Bus Host Interfaces (TL-UL): none

Peripheral Pins for Chip IO

Pin nameDirectionDescription
tckinputjtag clock
tmsinputjtag tms
tdiinputjtag input
tdooutputjtag output

Inter-Module Signals

Port NamePackage::StructTypeActWidthDescription
otpotp_ctrl_pkg::flash_otp_keyreq_rspreq1
lc_nvm_debug_enlc_ctrl_pkg::lc_txunircv1
flash_bist_enableprim_mubi_pkg::mubi4unircv1
flash_power_down_hlogicunircv1
flash_power_ready_hlogicunircv1
flash_test_mode_aionone2
flash_test_voltage_hionone1
lc_creator_seed_sw_rw_enlc_ctrl_pkg::lc_txunircv1
lc_owner_seed_sw_rw_enlc_ctrl_pkg::lc_txunircv1
lc_iso_part_sw_rd_enlc_ctrl_pkg::lc_txunircv1
lc_iso_part_sw_wr_enlc_ctrl_pkg::lc_txunircv1
lc_seed_hw_rd_enlc_ctrl_pkg::lc_txunircv1
lc_escalate_enlc_ctrl_pkg::lc_txunircv1
rma_reqlc_ctrl_pkg::lc_txunircv1
rma_acklc_ctrl_pkg::lc_txunireq1
rma_seedlc_ctrl_pkg::lc_flash_rma_seedunircv1
pwrmgrpwrmgr_pkg::pwr_flashunireq1
keymgrflash_ctrl_pkg::keymgr_flashunireq1
obs_ctrlast_pkg::ast_obs_ctrlunircv1
fla_obslogicunireq8
core_tltlul_pkg::tlreq_rsprsp1
prim_tltlul_pkg::tlreq_rsprsp1
mem_tltlul_pkg::tlreq_rsprsp1

Interrupts

Interrupt NameTypeDescription
prog_emptyEventProgram FIFO empty
prog_lvlEventProgram FIFO drained to level
rd_fullEventRead FIFO full
rd_lvlEventRead FIFO filled to level
op_doneEventOperation complete
corr_errEventCorrectable error encountered

Security Alerts

Alert NameDescription
recov_errflash recoverable errors
fatal_std_errflash standard fatal errors
fatal_errflash fatal errors
fatal_prim_flash_alertFatal alert triggered inside the flash primitive, including fatal TL-UL bus integrity faults of the test interface.
recov_prim_flash_alertRecoverable alert triggered inside the flash primitive.

Security Countermeasures

Countermeasure IDDescription
FLASH_CTRL.REG.BUS.INTEGRITYEnd-to-end bus integrity scheme. Since there are multiple access points for flash, please see Transmission Integrity Faults in the documentation for more details. The bus integrity scheme for flash is different from other comportable modules.
FLASH_CTRL.HOST.BUS.INTEGRITYEnd-to-end bus integrity scheme. Since there are multiple access points for flash, please see Transmission Integrity Faults in the documentation for more details. The bus integrity scheme for flash is different from other comportable modules.
FLASH_CTRL.MEM.BUS.INTEGRITYEnd-to-end bus integrity scheme. Since there are multiple access points for flash, please see Transmission Integrity Faults in the documentation for more details. The bus integrity scheme for flash is different from other comportable modules.
FLASH_CTRL.SCRAMBLE.KEY.SIDELOADThe scrambling key is sideloaded from OTP and thus unreadable by SW.
FLASH_CTRL.LC_CTRL.INTERSIG.MUBILife cycle control signals are used control information partition access and flash debug access. See secret information partition, isolated information partitions and jtag connection in documentation for more details.
FLASH_CTRL.CTRL.CONFIG.REGWENConfigurations cannot be changed when an operation is ongoing.
FLASH_CTRL.DATA_REGIONS.CONFIG.REGWENEach data region has a configurable regwen.
FLASH_CTRL.DATA_REGIONS.CONFIG.SHADOWData region configuration is shadowed.
FLASH_CTRL.INFO_REGIONS.CONFIG.REGWENEach info page of each type in each bank has separate regwen.
FLASH_CTRL.INFO_REGIONS.CONFIG.SHADOWEach info page is shadowed.
FLASH_CTRL.BANK.CONFIG.REGWENEach bank has separate regwen for bank erase.
FLASH_CTRL.BANK.CONFIG.SHADOWEach bank has separate regwen for bank erase.
FLASH_CTRL.MEM.CTRL.GLOBAL_ESCGlobal escalation causes memory to no longer be accessible.
FLASH_CTRL.MEM.CTRL.LOCAL_ESCA subset of fatal errors cause memory to no longer be accessible. This subset is defined in STD_FAULT_STATUS.
FLASH_CTRL.MEM_DISABLE.CONFIG.MUBISoftware control for flash disable is multibit. The register is DIS.
FLASH_CTRL.EXEC.CONFIG.REDUNSoftware control for flash enable is 32-bit constant. The register is EXEC.
FLASH_CTRL.MEM.SCRAMBLEThe flash supports XEX scrambling. The cipher used is PRINCE. The scrambling scheme is enabled by software, please see flash scrambling in documentation for more details.
FLASH_CTRL.MEM.INTEGRITYThe flash supports two layers of ECC integrity: one layer is for integrity, and the other layer is for reliability. These ECCs are enabled and disabled together by software. Please see Flash ECC in the documentation for more details.
FLASH_CTRL.RMA_ENTRY.MEM.SEC_WIPERMA entry entry wipes flash memory with random data.
FLASH_CTRL.CTRL.FSM.SPARSERMA handling FSMs in flash_ctrl_lcmgr are sparsely encoded. FSM in flash_ctrl_arb is sparsely encoded.
FLASH_CTRL.PHY.FSM.SPARSEPHY FSMs are sparsely encoded.
FLASH_CTRL.PHY_PROG.FSM.SPARSEPHY program FSMs are sparsely encoded.
FLASH_CTRL.CTR.REDUNflash_ctrl_lcmgr handling counters are redundantly encoded. This includes seed count and address count used during seed reading phase, as well as word count, page count and wipe index in RMA entry phase.
FLASH_CTRL.PHY_ARBITER.CTRL.REDUNThe phy arbiter for controller and host is redundant. The arbiter has two instance underneath that are constantly compared to each other.
FLASH_CTRL.PHY_HOST_GRANT.CTRL.CONSISTENCYThe host grant is consistency checked. If the host is ever granted with info partition access, it is an error. If the host is ever granted at the same time as a program/erase operation, it is an error.
FLASH_CTRL.PHY_ACK.CTRL.CONSISTENCYIf the host or controller ever receive an unexpeced transaction acknowledge, it is an error.
FLASH_CTRL.FIFO.CTR.REDUNThe FIFO pointers of several FIFOs are implemented with duplicate counters.
FLASH_CTRL.MEM_TL_LC_GATE.FSM.SPARSEThe control FSM inside the TL-UL gating primitive is sparsely encoded.
FLASH_CTRL.PROG_TL_LC_GATE.FSM.SPARSEThe control FSM inside the TL-UL gating primitive is sparsely encoded.

Registers

Summary of the core interface’s registers

NameOffsetLengthDescription
flash_ctrl.CIP_ID0x04Comportable IP ID.
flash_ctrl.REVISION0x44Comportable IP semantic version.
flash_ctrl.PARAMETER_BLOCK_TYPE0x84Parameter block type.
flash_ctrl.PARAMETER_BLOCK_LENGTH0xc4Parameter block length.
flash_ctrl.NEXT_PARAMETER_BLOCK0x104Next parameter block offset.
flash_ctrl.INTR_STATE0x404Interrupt State Register
flash_ctrl.INTR_ENABLE0x444Interrupt Enable Register
flash_ctrl.INTR_TEST0x484Interrupt Test Register
flash_ctrl.ALERT_TEST0x4c4Alert Test Register
flash_ctrl.DIS0x504Disable flash functionality
flash_ctrl.EXEC0x544Controls whether flash can be used for code execution fetches
flash_ctrl.INIT0x584Controller init register
flash_ctrl.CTRL_REGWEN0x5c4Controls the configurability of the !!CONTROL register.
flash_ctrl.CONTROL0x604Control register
flash_ctrl.ADDR0x644Address for flash operation
flash_ctrl.PROG_TYPE_EN0x684Enable different program types
flash_ctrl.ERASE_SUSPEND0x6c4Suspend erase
flash_ctrl.REGION_CFG_REGWEN_00x704Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_10x744Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_20x784Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_30x7c4Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_40x804Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_50x844Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_60x884Memory region registers configuration enable.
flash_ctrl.REGION_CFG_REGWEN_70x8c4Memory region registers configuration enable.
flash_ctrl.MP_REGION_CFG_00x904Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_10x944Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_20x984Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_30x9c4Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_40xa04Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_50xa44Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_60xa84Memory property configuration for data partition
flash_ctrl.MP_REGION_CFG_70xac4Memory property configuration for data partition
flash_ctrl.MP_REGION_00xb04Memory base and size configuration for data partition
flash_ctrl.MP_REGION_10xb44Memory base and size configuration for data partition
flash_ctrl.MP_REGION_20xb84Memory base and size configuration for data partition
flash_ctrl.MP_REGION_30xbc4Memory base and size configuration for data partition
flash_ctrl.MP_REGION_40xc04Memory base and size configuration for data partition
flash_ctrl.MP_REGION_50xc44Memory base and size configuration for data partition
flash_ctrl.MP_REGION_60xc84Memory base and size configuration for data partition
flash_ctrl.MP_REGION_70xcc4Memory base and size configuration for data partition
flash_ctrl.DEFAULT_REGION0xd04Default region properties
flash_ctrl.BANK0_INFO0_REGWEN_00xd44Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_10xd84Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_20xdc4Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_30xe04Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_40xe44Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_50xe84Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_60xec4Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_70xf04Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_80xf44Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_REGWEN_90xf84Memory region registers configuration enable.
flash_ctrl.BANK0_INFO0_PAGE_CFG_00xfc4Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_10x1004Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_20x1044Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_30x1084Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_40x10c4Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_50x1104Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_60x1144Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_70x1184Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_80x11c4Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO0_PAGE_CFG_90x1204Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO1_REGWEN0x1244Memory region registers configuration enable.
flash_ctrl.BANK0_INFO1_PAGE_CFG0x1284Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO2_REGWEN_00x12c4Memory region registers configuration enable.
flash_ctrl.BANK0_INFO2_REGWEN_10x1304Memory region registers configuration enable.
flash_ctrl.BANK0_INFO2_PAGE_CFG_00x1344Memory property configuration for info partition in bank0,
flash_ctrl.BANK0_INFO2_PAGE_CFG_10x1384Memory property configuration for info partition in bank0,
flash_ctrl.BANK1_INFO0_REGWEN_00x13c4Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_10x1404Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_20x1444Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_30x1484Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_40x14c4Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_50x1504Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_60x1544Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_70x1584Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_80x15c4Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_REGWEN_90x1604Memory region registers configuration enable.
flash_ctrl.BANK1_INFO0_PAGE_CFG_00x1644Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_10x1684Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_20x16c4Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_30x1704Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_40x1744Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_50x1784Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_60x17c4Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_70x1804Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_80x1844Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO0_PAGE_CFG_90x1884Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO1_REGWEN0x18c4Memory region registers configuration enable.
flash_ctrl.BANK1_INFO1_PAGE_CFG0x1904Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO2_REGWEN_00x1944Memory region registers configuration enable.
flash_ctrl.BANK1_INFO2_REGWEN_10x1984Memory region registers configuration enable.
flash_ctrl.BANK1_INFO2_PAGE_CFG_00x19c4Memory property configuration for info partition in bank1,
flash_ctrl.BANK1_INFO2_PAGE_CFG_10x1a04Memory property configuration for info partition in bank1,
flash_ctrl.HW_INFO_CFG_OVERRIDE0x1a44HW interface info configuration rule overrides
flash_ctrl.BANK_CFG_REGWEN0x1a84Bank configuration registers configuration enable.
flash_ctrl.MP_BANK_CFG_SHADOWED0x1ac4Memory properties bank configuration
flash_ctrl.OP_STATUS0x1b04Flash Operation Status
flash_ctrl.STATUS0x1b44Flash Controller Status
flash_ctrl.DEBUG_STATE0x1b84Current flash fsm state
flash_ctrl.ERR_CODE0x1bc4Flash error code register.
flash_ctrl.STD_FAULT_STATUS0x1c04This register tabulates standard fault status of the flash.
flash_ctrl.FAULT_STATUS0x1c44This register tabulates customized fault status of the flash.
flash_ctrl.ERR_ADDR0x1c84Synchronous error address
flash_ctrl.ECC_SINGLE_ERR_CNT0x1cc4Total number of single bit ECC error count
flash_ctrl.ECC_SINGLE_ERR_ADDR_00x1d04Latest address of ECC single err
flash_ctrl.ECC_SINGLE_ERR_ADDR_10x1d44Latest address of ECC single err
flash_ctrl.PHY_ALERT_CFG0x1d84Phy alert configuration
flash_ctrl.PHY_STATUS0x1dc4Flash Phy Status
flash_ctrl.Scratch0x1e04Flash Controller Scratch
flash_ctrl.FIFO_LVL0x1e44Programmable depth where FIFOs should generate interrupts
flash_ctrl.FIFO_RST0x1e84Reset for flash controller FIFOs
flash_ctrl.CURR_FIFO_LVL0x1ec4Current program and read fifo depth
flash_ctrl.prog_fifo0x1f04Flash program FIFO.
flash_ctrl.rd_fifo0x1f44Flash read FIFO.

CIP_ID

Comportable IP ID.

  • Offset: 0x0
  • Reset default: 0x8
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:0ro0x8CIP_IDThis value is a unique comportable IP identifier.

REVISION

Comportable IP semantic version.

  • Offset: 0x4
  • Reset default: 0x2000000
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:24ro0x2MAJORMajor version number.
23:16ro0x0MINORMinor version number.
15:8ro0x0SUBMINORSubminor (patch) version number.
7:0ro0x0RESERVEDReserved version number.

PARAMETER_BLOCK_TYPE

Parameter block type.

  • Offset: 0x8
  • Reset default: 0x0
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:0ro0x0BLOCK_TYPEParameter block type.

PARAMETER_BLOCK_LENGTH

Parameter block length.

  • Offset: 0xc
  • Reset default: 0xc
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:0ro0xcBLOCK_LENGTHParameter block length in bytes.

NEXT_PARAMETER_BLOCK

Next parameter block offset.

  • Offset: 0x10
  • Reset default: 0x0
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:0ro0x0BLOCK_OFFSETThis offset value is zero if there is no other parameter block.

INTR_STATE

Interrupt State Register

  • Offset: 0x40
  • Reset default: 0x0
  • Reset mask: 0x3f

Fields

BitsTypeResetNameDescription
31:6Reserved
5rw1c0x0corr_errCorrectable error encountered
4rw1c0x0op_doneOperation complete
3rw1c0x0rd_lvlRead FIFO filled to level
2rw1c0x0rd_fullRead FIFO full
1rw1c0x0prog_lvlProgram FIFO drained to level
0rw1c0x0prog_emptyProgram FIFO empty

INTR_ENABLE

Interrupt Enable Register

  • Offset: 0x44
  • Reset default: 0x0
  • Reset mask: 0x3f

Fields

BitsTypeResetNameDescription
31:6Reserved
5rw0x0corr_errEnable interrupt when INTR_STATE.corr_err is set.
4rw0x0op_doneEnable interrupt when INTR_STATE.op_done is set.
3rw0x0rd_lvlEnable interrupt when INTR_STATE.rd_lvl is set.
2rw0x0rd_fullEnable interrupt when INTR_STATE.rd_full is set.
1rw0x0prog_lvlEnable interrupt when INTR_STATE.prog_lvl is set.
0rw0x0prog_emptyEnable interrupt when INTR_STATE.prog_empty is set.

INTR_TEST

Interrupt Test Register

  • Offset: 0x48
  • Reset default: 0x0
  • Reset mask: 0x3f

Fields

BitsTypeResetNameDescription
31:6Reserved
5wo0x0corr_errWrite 1 to force INTR_STATE.corr_err to 1.
4wo0x0op_doneWrite 1 to force INTR_STATE.op_done to 1.
3wo0x0rd_lvlWrite 1 to force INTR_STATE.rd_lvl to 1.
2wo0x0rd_fullWrite 1 to force INTR_STATE.rd_full to 1.
1wo0x0prog_lvlWrite 1 to force INTR_STATE.prog_lvl to 1.
0wo0x0prog_emptyWrite 1 to force INTR_STATE.prog_empty to 1.

ALERT_TEST

Alert Test Register

  • Offset: 0x4c
  • Reset default: 0x0
  • Reset mask: 0x1f

Fields

BitsTypeResetNameDescription
31:5Reserved
4wo0x0recov_prim_flash_alertWrite 1 to trigger one alert event of this kind.
3wo0x0fatal_prim_flash_alertWrite 1 to trigger one alert event of this kind.
2wo0x0fatal_errWrite 1 to trigger one alert event of this kind.
1wo0x0fatal_std_errWrite 1 to trigger one alert event of this kind.
0wo0x0recov_errWrite 1 to trigger one alert event of this kind.

DIS

Disable flash functionality

  • Offset: 0x50
  • Reset default: 0x9
  • Reset mask: 0xf

Fields

BitsTypeResetName
31:4Reserved
3:0rw0c0x9VAL

DIS . VAL

Disables flash functionality completely. This is a shortcut mechanism used by the software to completely kill flash in case of emergency.

Since this register is rw0c instead of rw, to disable, write any value in the form of 0xxx or xxx0, where x could be either 0 or 1.

EXEC

Controls whether flash can be used for code execution fetches

  • Offset: 0x54
  • Reset default: 0x0
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:0rw0x0ENA value of 0xa26a38f7 allows flash to be used for code execution. Any other value prevents code execution.

INIT

Controller init register

  • Offset: 0x58
  • Reset default: 0x0
  • Reset mask: 0x1

Fields

BitsTypeResetName
31:1Reserved
0rw1s0x0VAL

INIT . VAL

Initializes the flash controller.

During the initialization process, the flash controller requests the address and data scramble keys and reads out the root seeds stored in flash before allowing other usage of the flash controller.

When the initialization sequence is complete, the flash read buffers are enabled and turned on.

CTRL_REGWEN

Controls the configurability of the CONTROL register.

This register ensures the contents of CONTROL cannot be changed by software once a flash operation has begun.

It unlocks whenever the existing flash operation completes, regardless of success or error.

  • Offset: 0x5c
  • Reset default: 0x1
  • Reset mask: 0x1

Fields

BitsTypeResetNameDescription
31:1Reserved
0ro0x1ENConfiguration enable. This bit defaults to 1 and is set to 0 by hardware when flash operation is initiated. When the controller completes the flash operation, this bit is set back to 1 to allow software configuration of CONTROL

CONTROL

Control register

  • Offset: 0x60
  • Reset default: 0x0
  • Reset mask: 0xfff07f1
  • Register enable: CTRL_REGWEN

Fields

BitsTypeResetName
31:28Reserved
27:16rw0x0NUM
15:11Reserved
10:9rw0x0INFO_SEL
8rw0x0PARTITION_SEL
7rw0x0ERASE_SEL
6rw0x0PROG_SEL
5:4rw0x0OP
3:1Reserved
0rw0x0START

CONTROL . NUM

One fewer than the number of bus words the flash operation should read or program. For example, to read 10 words, software should program this field with the value 9.

CONTROL . INFO_SEL

Informational partions can have multiple types.

This field selects the info type to be accessed.

CONTROL . PARTITION_SEL

When doing a read, program or page erase operation, selects either info or data partition for operation. When 0, select data partition - this is the portion of flash that is accessible both by the host and by the controller. When 1, select info partition - this is the portion of flash that is only accessible by the controller.

When doing a bank erase operation, selects info partition also for erase. When 0, bank erase only erases data partition. When 1, bank erase erases data partition and info partition.

CONTROL . ERASE_SEL

Flash erase operation type selection

ValueNameDescription
0x0Page EraseErase 1 page of flash
0x1Bank EraseErase 1 bank of flash

CONTROL . PROG_SEL

Flash program operation type selection

ValueNameDescription
0x0Normal programNormal program operation to the flash
0x1Program repairRepair program operation to the flash. Whether this is actually supported depends on the underlying flash memory.

CONTROL . OP

Flash operation selection

ValueNameDescription
0x0ReadFlash Read. Read desired number of flash words
0x1ProgFlash Program. Program desired number of flash words
0x2EraseFlash Erase Operation. See ERASE_SEL for details on erase operation

Other values are reserved.

CONTROL . START

Start flash transaction. This bit shall only be set at the same time or after the other fields of the CONTROL register and ADDR have been programmed.

ADDR

Address for flash operation

  • Offset: 0x64
  • Reset default: 0x0
  • Reset mask: 0xfffff
  • Register enable: CTRL_REGWEN

Fields

BitsTypeResetName
31:20Reserved
19:0rw0x0START

ADDR . START

Start address of a flash transaction. This is a byte address relative to the flash only. Ie, an address of 0 will access address 0 of the requested partition.

For read operations, the flash controller will truncate to the closest, lower word aligned address. For example, if 0x13 is supplied, the controller will perform a read at address 0x10.

Program operations behave similarly, the controller does not have read modified write support.

For page erases, the controller will truncate to the closest lower page aligned address. Similarly for bank erases, the controller will truncate to the closest lower bank aligned address.

PROG_TYPE_EN

Enable different program types

  • Offset: 0x68
  • Reset default: 0x3
  • Reset mask: 0x3
  • Register enable: CTRL_REGWEN

Fields

BitsTypeResetNameDescription
31:2Reserved
1rw0c0x1REPAIRRepair prog type available
0rw0c0x1NORMALNormal prog type available

ERASE_SUSPEND

Suspend erase

  • Offset: 0x6c
  • Reset default: 0x0
  • Reset mask: 0x1

Fields

BitsTypeResetNameDescription
31:1Reserved
0rw0x0REQWhen 1, request erase suspend. If no erase ongoing, the request is immediately cleared by hardware If erase ongoing, the request is fed to the flash_phy and cleared when the suspend is handled.

REGION_CFG_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
REGION_CFG_REGWEN_00x70
REGION_CFG_REGWEN_10x74
REGION_CFG_REGWEN_20x78
REGION_CFG_REGWEN_30x7c
REGION_CFG_REGWEN_40x80
REGION_CFG_REGWEN_50x84
REGION_CFG_REGWEN_60x88
REGION_CFG_REGWEN_70x8c

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

REGION_CFG_REGWEN . REGION

Region register write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Region lockedRegion can no longer be configured until next reset
0x1Region enabledRegion can be configured

MP_REGION_CFG

Memory property configuration for data partition

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
MP_REGION_CFG_00x90
MP_REGION_CFG_10x94
MP_REGION_CFG_20x98
MP_REGION_CFG_30x9c
MP_REGION_CFG_40xa0
MP_REGION_CFG_50xa4
MP_REGION_CFG_60xa8
MP_REGION_CFG_70xac

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is integrity checked and reliability ECC enabled.
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply. If region is disabled, it is not matched against any incoming transaction.

MP_REGION

Memory base and size configuration for data partition

  • Reset default: 0x0
  • Reset mask: 0x7ffff

Instances

NameOffset
MP_REGION_00xb0
MP_REGION_10xb4
MP_REGION_20xb8
MP_REGION_30xbc
MP_REGION_40xc0
MP_REGION_50xc4
MP_REGION_60xc8
MP_REGION_70xcc

Fields

BitsTypeResetNameDescription
31:19Reserved
18:9rw0x0SIZERegion size in number of pages. For example, if base is 0 and size is 1, then the region is defined by page 0. If base is 0 and size is 2, then the region is defined by pages 0 and 1.
8:0rw0x0BASERegion base page. Note the granularity is page, not byte or word

DEFAULT_REGION

Default region properties

  • Offset: 0xd0
  • Reset default: 0x999999
  • Reset mask: 0xffffff

Fields

BitsTypeResetNameDescription
31:24Reserved
23:20rw0x9HE_ENRegion is high endurance enabled.
19:16rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
15:12rw0x9SCRAMBLE_ENRegion is scramble enabled.
11:8rw0x9ERASE_ENRegion can be erased
7:4rw0x9PROG_ENRegion can be programmed
3:0rw0x9RD_ENRegion can be read

BANK0_INFO0_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
BANK0_INFO0_REGWEN_00xd4
BANK0_INFO0_REGWEN_10xd8
BANK0_INFO0_REGWEN_20xdc
BANK0_INFO0_REGWEN_30xe0
BANK0_INFO0_REGWEN_40xe4
BANK0_INFO0_REGWEN_50xe8
BANK0_INFO0_REGWEN_60xec
BANK0_INFO0_REGWEN_70xf0
BANK0_INFO0_REGWEN_80xf4
BANK0_INFO0_REGWEN_90xf8

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

BANK0_INFO0_REGWEN . REGION

Info0 page write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Page lockedRegion can no longer be configured until next reset
0x1Page enabledRegion can be configured

BANK0_INFO0_PAGE_CFG

Memory property configuration for info partition in bank0, Unlike data partition, each page is individually configured.

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
BANK0_INFO0_PAGE_CFG_00xfc
BANK0_INFO0_PAGE_CFG_10x100
BANK0_INFO0_PAGE_CFG_20x104
BANK0_INFO0_PAGE_CFG_30x108
BANK0_INFO0_PAGE_CFG_40x10c
BANK0_INFO0_PAGE_CFG_50x110
BANK0_INFO0_PAGE_CFG_60x114
BANK0_INFO0_PAGE_CFG_70x118
BANK0_INFO0_PAGE_CFG_80x11c
BANK0_INFO0_PAGE_CFG_90x120

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply

BANK0_INFO1_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
BANK0_INFO1_REGWEN0x124

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

BANK0_INFO1_REGWEN . REGION

Info1 page write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Page lockedRegion can no longer be configured until next reset
0x1Page enabledRegion can be configured

BANK0_INFO1_PAGE_CFG

Memory property configuration for info partition in bank0, Unlike data partition, each page is individually configured.

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
BANK0_INFO1_PAGE_CFG0x128

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply

BANK0_INFO2_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
BANK0_INFO2_REGWEN_00x12c
BANK0_INFO2_REGWEN_10x130

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

BANK0_INFO2_REGWEN . REGION

Info2 page write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Page lockedRegion can no longer be configured until next reset
0x1Page enabledRegion can be configured

BANK0_INFO2_PAGE_CFG

Memory property configuration for info partition in bank0, Unlike data partition, each page is individually configured.

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
BANK0_INFO2_PAGE_CFG_00x134
BANK0_INFO2_PAGE_CFG_10x138

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply

BANK1_INFO0_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
BANK1_INFO0_REGWEN_00x13c
BANK1_INFO0_REGWEN_10x140
BANK1_INFO0_REGWEN_20x144
BANK1_INFO0_REGWEN_30x148
BANK1_INFO0_REGWEN_40x14c
BANK1_INFO0_REGWEN_50x150
BANK1_INFO0_REGWEN_60x154
BANK1_INFO0_REGWEN_70x158
BANK1_INFO0_REGWEN_80x15c
BANK1_INFO0_REGWEN_90x160

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

BANK1_INFO0_REGWEN . REGION

Info0 page write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Page lockedRegion can no longer be configured until next reset
0x1Page enabledRegion can be configured

BANK1_INFO0_PAGE_CFG

Memory property configuration for info partition in bank1, Unlike data partition, each page is individually configured.

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
BANK1_INFO0_PAGE_CFG_00x164
BANK1_INFO0_PAGE_CFG_10x168
BANK1_INFO0_PAGE_CFG_20x16c
BANK1_INFO0_PAGE_CFG_30x170
BANK1_INFO0_PAGE_CFG_40x174
BANK1_INFO0_PAGE_CFG_50x178
BANK1_INFO0_PAGE_CFG_60x17c
BANK1_INFO0_PAGE_CFG_70x180
BANK1_INFO0_PAGE_CFG_80x184
BANK1_INFO0_PAGE_CFG_90x188

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply

BANK1_INFO1_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
BANK1_INFO1_REGWEN0x18c

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

BANK1_INFO1_REGWEN . REGION

Info1 page write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Page lockedRegion can no longer be configured until next reset
0x1Page enabledRegion can be configured

BANK1_INFO1_PAGE_CFG

Memory property configuration for info partition in bank1, Unlike data partition, each page is individually configured.

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
BANK1_INFO1_PAGE_CFG0x190

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply

BANK1_INFO2_REGWEN

Memory region registers configuration enable.

  • Reset default: 0x1
  • Reset mask: 0x1

Instances

NameOffset
BANK1_INFO2_REGWEN_00x194
BANK1_INFO2_REGWEN_10x198

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

BANK1_INFO2_REGWEN . REGION

Info2 page write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Page lockedRegion can no longer be configured until next reset
0x1Page enabledRegion can be configured

BANK1_INFO2_PAGE_CFG

Memory property configuration for info partition in bank1, Unlike data partition, each page is individually configured.

  • Reset default: 0x9999999
  • Reset mask: 0xfffffff

Instances

NameOffset
BANK1_INFO2_PAGE_CFG_00x19c
BANK1_INFO2_PAGE_CFG_10x1a0

Fields

BitsTypeResetNameDescription
31:28Reserved
27:24rw0x9HE_ENRegion is high endurance enabled.
23:20rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
19:16rw0x9SCRAMBLE_ENRegion is scramble enabled.
15:12rw0x9ERASE_ENRegion can be erased
11:8rw0x9PROG_ENRegion can be programmed
7:4rw0x9RD_ENRegion can be read
3:0rw0x9ENRegion enabled, following fields apply

HW_INFO_CFG_OVERRIDE

HW interface info configuration rule overrides

  • Offset: 0x1a4
  • Reset default: 0x99
  • Reset mask: 0xff

Fields

BitsTypeResetNameDescription
31:8Reserved
7:4rw0x9ECC_DISThe hardwired hardware info configuration rules for ECC enable are logically AND’d with this field. If the hardware rules hardwires ECC to enable, we can disable via software if needed. By default this field is false.
3:0rw0x9SCRAMBLE_DISThe hardwired hardware info configuration rules for scramble enable are logically AND’d with this field. If the hardware rules hardwires scramble to enable, we can disable via software if needed. By default this field is false.

BANK_CFG_REGWEN

Bank configuration registers configuration enable.

  • Offset: 0x1a8
  • Reset default: 0x1
  • Reset mask: 0x1

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1BANK

BANK_CFG_REGWEN . BANK

Bank register write enable. Once set to 0, it can longer be configured to 1

ValueNameDescription
0x0Bank lockedBank can no longer be configured until next reset
0x1Bank enabledBank can be configured

MP_BANK_CFG_SHADOWED

Memory properties bank configuration

  • Offset: 0x1ac
  • Reset default: 0x0
  • Reset mask: 0x3
  • Register enable: BANK_CFG_REGWEN

Fields

BitsTypeResetNameDescription
31:2Reserved
1rw0x0ERASE_EN_1Bank wide erase enable
0rw0x0ERASE_EN_0Bank wide erase enable

OP_STATUS

Flash Operation Status

  • Offset: 0x1b0
  • Reset default: 0x0
  • Reset mask: 0x3

Fields

BitsTypeResetNameDescription
31:2Reserved
1rw0x0errFlash operation error. Set by HW, cleared by SW. See ERR_CODE for more details.
0rw0x0doneFlash operation done. Set by HW, cleared by SW

STATUS

Flash Controller Status

  • Offset: 0x1b4
  • Reset default: 0xa
  • Reset mask: 0x3f

Fields

BitsTypeResetNameDescription
31:6Reserved
5ro0x0initializedFlash controller initialized
4ro0x0init_wipFlash controller undergoing init, inclusive of phy init
3ro0x1prog_emptyFlash program FIFO empty, software must provide data
2ro0x0prog_fullFlash program FIFO full
1ro0x1rd_emptyFlash read FIFO empty
0ro0x0rd_fullFlash read FIFO full, software must consume data

DEBUG_STATE

Current flash fsm state

  • Offset: 0x1b8
  • Reset default: 0x0
  • Reset mask: 0x7ff

Fields

BitsTypeResetNameDescription
31:11Reserved
10:0roxlcmgr_stateCurrent lcmgr interface staet

ERR_CODE

Flash error code register. This register tabulates detailed error status of the flash. This is separate from OP_STATUS, which is used to indicate the current state of the software initiated flash operation.

Note, all errors in this register are considered recoverable errors, ie, errors that could have been generated by software.

  • Offset: 0x1bc
  • Reset default: 0x0
  • Reset mask: 0xff

Fields

BitsTypeResetNameDescription
31:8Reserved
7rw1c0x0macro_errA recoverable error has been encountered in the flash macro. Please read the flash macro status registers for more details.
6rw1c0x0update_errA shadow register encountered an update error. This is an asynchronous error.
5rw1c0x0prog_type_errFlash program selected unavailable type, see PROG_TYPE_EN. This is a synchronous error.
4rw1c0x0prog_win_errFlash program has a window resolution error. Ie, the start of program and end of program are in different windows. Please check ERR_ADDR. This is a synchronous error.
3rw1c0x0prog_errFlash program has an error. This could be a program integrity error, see STD_FAULT_STATUS. This is a synchronous error.
2rw1c0x0rd_errFlash read has an error. This could be a reliability ECC error or an storage integrity error encountered during a software issued controller read, see STD_FAULT_STATUS. See ERR_ADDR for exact address. This is a synchronous error.
1rw1c0x0mp_errFlash access has encountered an access permission error. Please see ERR_ADDR for exact address. This is a synchronous error.
0rw1c0x0op_errSoftware has supplied an undefined operation. See CONTROL.OP for list of valid operations.

STD_FAULT_STATUS

This register tabulates standard fault status of the flash.

These represent errors that occur in the standard structures of the design. For example fsm integrity, counter integrity and tlul integrity.

  • Offset: 0x1c0
  • Reset default: 0x0
  • Reset mask: 0x1ff

Fields

BitsTypeResetNameDescription
31:9Reserved
8ro0x0fifo_errFlash primitive fifo’s have encountered a count error.
7ro0x0ctrl_cnt_errFlash ctrl read/prog has encountered a count error.
6ro0x0phy_fsm_errA flash phy fsm has encountered a sparse encoding error.
5ro0x0storage_errA shadow register encountered a storage error.
4ro0x0arb_fsm_errThe arbiter fsm has encountered a sparse encoding error.
3ro0x0lcmgr_intg_errThe life cycle management interface has encountered a transmission integrity error. This is an integrity error on the generated integrity during a life cycle management interface read.
2ro0x0lcmgr_errThe life cycle management interface has encountered a fatal error. The error is either an FSM sparse encoding error or a count error.
1ro0x0prog_intg_errThe flash controller encountered a program data transmission integrity error.
0ro0x0reg_intg_errThe flash controller encountered a register integrity error.

FAULT_STATUS

This register tabulates customized fault status of the flash.

These are errors that are impossible to have been caused by software or unrecoverable in nature.

  • Offset: 0x1c4
  • Reset default: 0x0
  • Reset mask: 0xfff

Fields

BitsTypeResetNameDescription
31:12Reserved
11ro0x0host_gnt_errA host transaction was granted with illegal properties.
10ro0x0arb_errThe phy arbiter encountered inconsistent results.
9ro0x0spurious_ackThe flash emitted an unexpected acknowledgement.
8ro0x0phy_storage_errThe flash macro encountered a storage integrity ECC error.
7ro0x0phy_relbl_errThe flash macro encountered a storage reliability ECC error.
6ro0x0seed_errThe seed reading process encountered an unexpected error.
5ro0x0prog_type_errThe flash life cycle management interface encountered a program type error. A program type not supported by the flash macro was issued.
4ro0x0prog_win_errThe flash life cycle management interface encountered a program resolution error.
3ro0x0prog_errThe flash life cycle management interface encountered a program error. This could be a program integirty eror, see STD_FAULT_STATUS for more details.
2ro0x0rd_errThe flash life cycle management interface encountered a read error. This could be a reliability ECC error or an integrity ECC error encountered during a read, see STD_FAULT_STATUS for more details.
1ro0x0mp_errThe flash life cycle management interface encountered a memory permission error.
0ro0x0op_errThe flash life cycle management interface has supplied an undefined operation. See CONTROL.OP for list of valid operations.

ERR_ADDR

Synchronous error address

  • Offset: 0x1c8
  • Reset default: 0x0
  • Reset mask: 0xfffff

Fields

BitsTypeResetNameDescription
31:20Reserved
19:0ro0x0ERR_ADDR

ECC_SINGLE_ERR_CNT

Total number of single bit ECC error count

  • Offset: 0x1cc
  • Reset default: 0x0
  • Reset mask: 0xffff

Fields

BitsTypeResetNameDescription
31:16Reserved
15:8rw0x0ECC_SINGLE_ERR_CNT_1This count will not wrap when saturated
7:0rw0x0ECC_SINGLE_ERR_CNT_0This count will not wrap when saturated

ECC_SINGLE_ERR_ADDR

Latest address of ECC single err

  • Reset default: 0x0
  • Reset mask: 0xfffff

Instances

NameOffset
ECC_SINGLE_ERR_ADDR_00x1d0
ECC_SINGLE_ERR_ADDR_10x1d4

Fields

BitsTypeResetNameDescription
31:20Reserved
19:0ro0x0ECC_SINGLE_ERR_ADDRLatest single error address for this bank

PHY_ALERT_CFG

Phy alert configuration

  • Offset: 0x1d8
  • Reset default: 0x0
  • Reset mask: 0x3

Fields

BitsTypeResetNameDescription
31:2Reserved
1rw0x0alert_trigTrigger flash phy alert
0rw0x0alert_ackAcknowledge flash phy alert

PHY_STATUS

Flash Phy Status

  • Offset: 0x1dc
  • Reset default: 0x6
  • Reset mask: 0x7

Fields

BitsTypeResetNameDescription
31:3Reserved
2ro0x1prog_repair_availProgram repair supported
1ro0x1prog_normal_availNormal program supported
0ro0x0init_wipFlash phy controller initializing

Scratch

Flash Controller Scratch

  • Offset: 0x1e0
  • Reset default: 0x0
  • Reset mask: 0xffffffff

Fields

BitsTypeResetNameDescription
31:0rw0x0dataFlash ctrl scratch register

FIFO_LVL

Programmable depth where FIFOs should generate interrupts

  • Offset: 0x1e4
  • Reset default: 0xf0f
  • Reset mask: 0x1f1f

Fields

BitsTypeResetNameDescription
31:13Reserved
12:8rw0xfRDWhen the read FIFO fills to this level, trigger an interrupt. Default value is set such that interrupt does not trigger at reset.
7:5Reserved
4:0rw0xfPROGWhen the program FIFO drains to this level, trigger an interrupt. Default value is set such that interrupt does not trigger at reset.

FIFO_RST

Reset for flash controller FIFOs

  • Offset: 0x1e8
  • Reset default: 0x0
  • Reset mask: 0x1

Fields

BitsTypeResetNameDescription
31:1Reserved
0rw0x0ENActive high resets for both program and read FIFOs. This is especially useful after the controller encounters an error of some kind. This bit will hold the FIFO in reset as long as it is set.

CURR_FIFO_LVL

Current program and read fifo depth

  • Offset: 0x1ec
  • Reset default: 0x0
  • Reset mask: 0x1f1f

Fields

BitsTypeResetNameDescription
31:13Reserved
12:8ro0x0RDCurrent read fifo depth
7:5Reserved
4:0ro0x0PROGCurrent program fifo depth

prog_fifo

Flash program FIFO.

The FIFO is 16 entries of 4B flash words. This FIFO can only be programmed by software after a program operation has been initiated via the !!CONTROL register. This ensures accidental programming of the program FIFO cannot lock up the system.

  • Word Aligned Offset Range: 0x1f0to0x1f0
  • Size (words): 1
  • Access: wo
  • Byte writes are not supported.

rd_fifo

Flash read FIFO.

The FIFO is 16 entries of 4B flash words

  • Word Aligned Offset Range: 0x1f4to0x1f4
  • Size (words): 1
  • Access: ro
  • Byte writes are not supported.

Summary of the prim interface’s registers

NameOffsetLengthDescription
flash_ctrl.CSR0_REGWEN0x04
flash_ctrl.CSR10x44
flash_ctrl.CSR20x84
flash_ctrl.CSR30xc4
flash_ctrl.CSR40x104
flash_ctrl.CSR50x144
flash_ctrl.CSR60x184
flash_ctrl.CSR70x1c4
flash_ctrl.CSR80x204
flash_ctrl.CSR90x244
flash_ctrl.CSR100x284
flash_ctrl.CSR110x2c4
flash_ctrl.CSR120x304
flash_ctrl.CSR130x344
flash_ctrl.CSR140x384
flash_ctrl.CSR150x3c4
flash_ctrl.CSR160x404
flash_ctrl.CSR170x444
flash_ctrl.CSR180x484
flash_ctrl.CSR190x4c4
flash_ctrl.CSR200x504

CSR0_REGWEN

  • Offset: 0x0
  • Reset default: 0x1
  • Reset mask: 0x1

Fields

BitsTypeResetName
31:1Reserved
0rw0c0x1field0

CSR0_REGWEN . field0

All values are reserved.

CSR1

  • Offset: 0x4
  • Reset default: 0x0
  • Reset mask: 0x1fff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:13Reserved
12:8rw0x0field1
7:0rw0x0field0

CSR1 . field1

All values are reserved.

CSR1 . field0

All values are reserved.

CSR2

  • Offset: 0x8
  • Reset default: 0x0
  • Reset mask: 0xff

Fields

BitsTypeResetName
31:8Reserved
7rw0x0field7
6rw1c0x0field6
5rw1c0x0field5
4rw1c0x0field4
3rw0x0field3
2rw1c0x0field2
1rw1c0x0field1
0rw1c0x0field0

CSR2 . field7

All values are reserved.

CSR2 . field6

All values are reserved.

CSR2 . field5

All values are reserved.

CSR2 . field4

All values are reserved.

CSR2 . field3

All values are reserved.

CSR2 . field2

All values are reserved.

CSR2 . field1

All values are reserved.

CSR2 . field0

All values are reserved.

CSR3

  • Offset: 0xc
  • Reset default: 0x0
  • Reset mask: 0xfffffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:28Reserved
27:26rw0x0field9
25:24rw0x0field8
23:21rw0x0field7
20rw0x0field6
19:17rw0x0field5
16:14rw0x0field4
13:11rw0x0field3
10:8rw0x0field2
7:4rw0x0field1
3:0rw0x0field0

CSR3 . field9

All values are reserved.

CSR3 . field8

All values are reserved.

CSR3 . field7

All values are reserved.

CSR3 . field6

All values are reserved.

CSR3 . field5

All values are reserved.

CSR3 . field4

All values are reserved.

CSR3 . field3

All values are reserved.

CSR3 . field2

All values are reserved.

CSR3 . field1

All values are reserved.

CSR3 . field0

All values are reserved.

CSR4

  • Offset: 0x10
  • Reset default: 0x0
  • Reset mask: 0xfff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:12Reserved
11:9rw0x0field3
8:6rw0x0field2
5:3rw0x0field1
2:0rw0x0field0

CSR4 . field3

All values are reserved.

CSR4 . field2

All values are reserved.

CSR4 . field1

All values are reserved.

CSR4 . field0

All values are reserved.

CSR5

  • Offset: 0x14
  • Reset default: 0x0
  • Reset mask: 0x7fffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:23Reserved
22:19rw0x0field4
18:14rw0x0field3
13:5rw0x0field2
4:3rw0x0field1
2:0rw0x0field0

CSR5 . field4

All values are reserved.

CSR5 . field3

All values are reserved.

CSR5 . field2

All values are reserved.

CSR5 . field1

All values are reserved.

CSR5 . field0

All values are reserved.

CSR6

  • Offset: 0x18
  • Reset default: 0x0
  • Reset mask: 0x1ffffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:25Reserved
24rw0x0field8
23rw0x0field7
22:21rw0x0field6
20:19rw0x0field5
18:17rw0x0field4
16:14rw0x0field3
13:6rw0x0field2
5:3rw0x0field1
2:0rw0x0field0

CSR6 . field8

All values are reserved.

CSR6 . field7

All values are reserved.

CSR6 . field6

All values are reserved.

CSR6 . field5

All values are reserved.

CSR6 . field4

All values are reserved.

CSR6 . field3

All values are reserved.

CSR6 . field2

All values are reserved.

CSR6 . field1

All values are reserved.

CSR6 . field0

All values are reserved.

CSR7

  • Offset: 0x1c
  • Reset default: 0x0
  • Reset mask: 0x1ffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:17Reserved
16:8rw0x0field1
7:0rw0x0field0

CSR7 . field1

All values are reserved.

CSR7 . field0

All values are reserved.

CSR8

  • Offset: 0x20
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:0rw0x0field0

CSR8 . field0

All values are reserved.

CSR9

  • Offset: 0x24
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:0rw0x0field0

CSR9 . field0

All values are reserved.

CSR10

  • Offset: 0x28
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:0rw0x0field0

CSR10 . field0

All values are reserved.

CSR11

  • Offset: 0x2c
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:0rw0x0field0

CSR11 . field0

All values are reserved.

CSR12

  • Offset: 0x30
  • Reset default: 0x0
  • Reset mask: 0x3ff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:10Reserved
9:0rw0x0field0

CSR12 . field0

All values are reserved.

CSR13

  • Offset: 0x34
  • Reset default: 0x0
  • Reset mask: 0x1fffff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:21Reserved
20rw0x0field1
19:0rw0x0field0

CSR13 . field1

All values are reserved.

CSR13 . field0

All values are reserved.

CSR14

  • Offset: 0x38
  • Reset default: 0x0
  • Reset mask: 0x1ff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:9Reserved
8rw0x0field1
7:0rw0x0field0

CSR14 . field1

All values are reserved.

CSR14 . field0

All values are reserved.

CSR15

  • Offset: 0x3c
  • Reset default: 0x0
  • Reset mask: 0x1ff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:9Reserved
8rw0x0field1
7:0rw0x0field0

CSR15 . field1

All values are reserved.

CSR15 . field0

All values are reserved.

CSR16

  • Offset: 0x40
  • Reset default: 0x0
  • Reset mask: 0x1ff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:9Reserved
8rw0x0field1
7:0rw0x0field0

CSR16 . field1

All values are reserved.

CSR16 . field0

All values are reserved.

CSR17

  • Offset: 0x44
  • Reset default: 0x0
  • Reset mask: 0x1ff
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:9Reserved
8rw0x0field1
7:0rw0x0field0

CSR17 . field1

All values are reserved.

CSR17 . field0

All values are reserved.

CSR18

  • Offset: 0x48
  • Reset default: 0x0
  • Reset mask: 0x1
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:1Reserved
0rw0x0field0

CSR18 . field0

All values are reserved.

CSR19

  • Offset: 0x4c
  • Reset default: 0x0
  • Reset mask: 0x1
  • Register enable: CSR0_REGWEN

Fields

BitsTypeResetName
31:1Reserved
0rw0x0field0

CSR19 . field0

All values are reserved.

CSR20

  • Offset: 0x50
  • Reset default: 0x0
  • Reset mask: 0x7

Fields

BitsTypeResetName
31:3Reserved
2ro0x0field2
1rw1c0x0field1
0rw1c0x0field0

CSR20 . field2

All values are reserved.

CSR20 . field1

All values are reserved.

CSR20 . field0

All values are reserved.

This interface does not expose any registers.