Registers

The RRAM controller maintains two separate access windows for the FIFOs. It is implemented this way because the access window supports transaction back-pressure should the FIFO become full (in case of write) or empty (in case of read).

Summary

NameOffsetLengthDescription
rram_ctrl.INTR_STATE0x04Interrupt State Register
rram_ctrl.INTR_ENABLE0x44Interrupt Enable Register
rram_ctrl.INTR_TEST0x84Interrupt Test Register
rram_ctrl.ALERT_TEST0xc4Alert Test Register
rram_ctrl.DIS0x104Disable RRAM functionality
rram_ctrl.EXEC0x144Controls whether RRAM can be used for code execution fetches
rram_ctrl.INIT0x184Controller init register
rram_ctrl.CTRL_REGWEN0x1c4Controls the configurability of the CONTROL register.
rram_ctrl.CONTROL0x204Control register
rram_ctrl.ADDR0x244Address for RRAM operation
rram_ctrl.REGION_CFG_REGWEN_00x284Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_10x2c4Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_20x304Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_30x344Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_40x384Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_50x3c4Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_60x404Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_70x444Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_80x484Memory region registers configuration enable.
rram_ctrl.REGION_CFG_REGWEN_90x4c4Memory region registers configuration enable.
rram_ctrl.MP_REGION_CFG_00x504Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_10x544Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_20x584Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_30x5c4Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_40x604Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_50x644Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_60x684Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_70x6c4Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_80x704Memory property configuration for data partition
rram_ctrl.MP_REGION_CFG_90x744Memory property configuration for data partition
rram_ctrl.MP_REGION_00x784Memory base and size configuration for data partition
rram_ctrl.MP_REGION_10x7c4Memory base and size configuration for data partition
rram_ctrl.MP_REGION_20x804Memory base and size configuration for data partition
rram_ctrl.MP_REGION_30x844Memory base and size configuration for data partition
rram_ctrl.MP_REGION_40x884Memory base and size configuration for data partition
rram_ctrl.MP_REGION_50x8c4Memory base and size configuration for data partition
rram_ctrl.MP_REGION_60x904Memory base and size configuration for data partition
rram_ctrl.MP_REGION_70x944Memory base and size configuration for data partition
rram_ctrl.MP_REGION_80x984Memory base and size configuration for data partition
rram_ctrl.MP_REGION_90x9c4Memory base and size configuration for data partition
rram_ctrl.DEFAULT_REGION0xa04Default region properties
rram_ctrl.INFO_REGWEN_00xa44Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_10xa84Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_20xac4Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_30xb04Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_40xb44Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_50xb84Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_60xbc4Memory region registers configuration enable.
rram_ctrl.INFO_REGWEN_70xc04Memory region registers configuration enable.
rram_ctrl.INFO_PAGE_CFG_00xc44Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_10xc84Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_20xcc4Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_30xd04Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_40xd44Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_50xd84Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_60xdc4Memory property configuration for info partition.
rram_ctrl.INFO_PAGE_CFG_70xe04Memory property configuration for info partition.
rram_ctrl.EMUL_INFO_REGWEN_00xe44Emulated info region registers configuration enable.
rram_ctrl.EMUL_INFO_REGWEN_10xe84Emulated info region registers configuration enable.
rram_ctrl.EMUL_INFO_REGION_00xec4Base and size configuration for an emulated info page region (window).
rram_ctrl.EMUL_INFO_REGION_10xf04Base and size configuration for an emulated info page region (window).
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_00xf44Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_10xf84Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_20xfc4Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_30x1004Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_40x1044Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_50x1084Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_60x10c4Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_70x1104Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_80x1144Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_90x1184Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_100x11c4Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_110x1204Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_120x1244Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_130x1284Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_140x12c4Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_150x1304Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_160x1344Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_170x1384Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_180x13c4Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_190x1404Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_200x1444Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_210x1484Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_220x14c4Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_REGWEN_230x1504Emulated info subregion size registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_00x1544Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_10x1584Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_20x15c4Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_30x1604Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_40x1644Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_50x1684Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_60x16c4Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_70x1704Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_80x1744Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_90x1784Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_100x17c4Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_110x1804Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_120x1844Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_130x1884Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_140x18c4Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_150x1904Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_160x1944Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_170x1984Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_180x19c4Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_190x1a04Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_200x1a44Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_210x1a84Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_220x1ac4Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_230x1b04Subregions are configured with TOR (top of range) addressing, but relative to the window’s base.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_00x1b44Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_10x1b84Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_20x1bc4Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_30x1c04Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_40x1c44Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_50x1c84Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_60x1cc4Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_70x1d04Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_80x1d44Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_90x1d84Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_100x1dc4Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_110x1e04Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_120x1e44Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_130x1e84Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_140x1ec4Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_150x1f04Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_160x1f44Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_170x1f84Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_180x1fc4Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_190x2004Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_200x2044Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_210x2084Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_220x20c4Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_REGWEN_230x2104Emulated info subregion permission registers configuration enable.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_00x2144Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_10x2184Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_20x21c4Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_30x2204Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_40x2244Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_50x2284Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_60x22c4Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_70x2304Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_80x2344Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_90x2384Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_100x23c4Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_110x2404Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_120x2444Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_130x2484Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_140x24c4Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_150x2504Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_160x2544Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_170x2584Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_180x25c4Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_190x2604Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_200x2644Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_210x2684Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_220x26c4Memory property configuration for an emulated info subregion.
rram_ctrl.EMUL_INFO_SUBREGION_CFG_230x2704Memory property configuration for an emulated info subregion.
rram_ctrl.HW_INFO_CFG_OVERRIDE0x2744HW interface info configuration rule overrides
rram_ctrl.OP_STATUS0x2784RRAM Operation Status
rram_ctrl.STATUS0x27c4RRAM Controller Status
rram_ctrl.ERR_CODE0x2804RRAM error code register.
rram_ctrl.STD_FAULT_STATUS0x2844This register tabulates standard fault status of the RRAM.
rram_ctrl.FAULT_STATUS0x2884This register tabulates customized fault status of the RRAM.
rram_ctrl.ERR_ADDR0x28c4Synchronous error address
rram_ctrl.CORR1_ERR_CNT0x2904Count of correctable single-bit ECC errors
rram_ctrl.CORR2_ERR_CNT0x2944Count of correctable double-bit ECC errors
rram_ctrl.CORR1_ERR_LOC0x2984Last address that was corrected by the ECC decoder with a single-bit error
rram_ctrl.CORR2_ERR_LOC0x29c4Last address that was corrected by the ECC decoder with a double-bit error
rram_ctrl.PHY_STATUS0x2a04RRAM Phy Status
rram_ctrl.SCRATCH0x2a44RRAM Controller Scratch
rram_ctrl.FIFO_LVL0x2a84Programmable depth where FIFOs should generate interrupts
rram_ctrl.FIFO_CLR0x2ac4Clears RRAM controller FIFOs
rram_ctrl.CURR_FIFO_LVL0x2b04Current write and read fifo level
rram_ctrl.wr_fifo0x2b44RRAM write FIFO.
rram_ctrl.rd_fifo0x2b84RRAM read FIFO.

INTR_STATE

Interrupt State Register

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

Fields

{"reg": [{"name": "wr_empty", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "wr_lvl", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "rd_full", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "rd_lvl", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "op_done", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "corr1_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "corr2_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"bits": 25}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetNameDescription
31:7Reserved
6rw1c0x0corr2_errCorrectable double-bit error encountered
5rw1c0x0corr1_errCorrectable single-bit error encountered
4rw1c0x0op_doneOperation complete
3ro0x0rd_lvlRead FIFO filled to level
2ro0x0rd_fullRead FIFO full
1ro0x1wr_lvlWrite FIFO drained to level
0ro0x1wr_emptyWrite FIFO empty

INTR_ENABLE

Interrupt Enable Register

  • Offset: 0x4
  • Reset default: 0x0
  • Reset mask: 0x7f

Fields

{"reg": [{"name": "wr_empty", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "wr_lvl", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "rd_full", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "rd_lvl", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "op_done", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "corr1_err", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "corr2_err", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 25}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetNameDescription
31:7Reserved
6rw0x0corr2_errEnable interrupt when INTR_STATE.corr2_err is set.
5rw0x0corr1_errEnable interrupt when INTR_STATE.corr1_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.
1rw0x0wr_lvlEnable interrupt when INTR_STATE.wr_lvl is set.
0rw0x0wr_emptyEnable interrupt when INTR_STATE.wr_empty is set.

INTR_TEST

Interrupt Test Register

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

Fields

{"reg": [{"name": "wr_empty", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "wr_lvl", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "rd_full", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "rd_lvl", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "op_done", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "corr1_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "corr2_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 25}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetNameDescription
31:7Reserved
6wo0x0corr2_errWrite 1 to force INTR_STATE.corr2_err to 1.
5wo0x0corr1_errWrite 1 to force INTR_STATE.corr1_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.
1wo0x0wr_lvlWrite 1 to force INTR_STATE.wr_lvl to 1.
0wo0x0wr_emptyWrite 1 to force INTR_STATE.wr_empty to 1.

ALERT_TEST

Alert Test Register

  • Offset: 0xc
  • Reset default: 0x80000000
  • Reset mask: 0x8000001f

Fields

{"reg": [{"name": "recov_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "fatal_std_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "fatal_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "fatal_macro_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "recov_macro_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 26}, {"name": "regwen", "bits": 1, "attr": ["rw0c"], "rotate": -90}], "config": {"lanes": 1, "fontsize": 10, "vspace": 170}}
BitsTypeResetNameDescription
31rw0c0x1regwenWrite 0 to disable alert testing until the next reset.
30:5Reserved
4wo0x0recov_macro_errWrite 1 to trigger one alert event of this kind.
3wo0x0fatal_macro_errWrite 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 RRAM functionality

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

Fields

{"reg": [{"name": "SW_DIS", "bits": 4, "attr": ["rw1s"], "rotate": 0}, {"name": "LOCAL_ESC_RELBL_ERR", "bits": 4, "attr": ["rw1s"], "rotate": -90}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 210}}
BitsTypeResetName
31:8Reserved
7:4rw1s0x9LOCAL_ESC_RELBL_ERR
3:0rw1s0x9SW_DIS

DIS . LOCAL_ESC_RELBL_ERR

Enables local escalation for reliability errors. Once this config bit is set to any value other than MuBi4False, FAULT_STATUS.PHY_RELBL_ERR will disable the RRAM until the next reset. Otherwise FAULT_STATUS.PHY_RELBL_ERR is excluded from the local escalation, to deal with firmware selection during the boot process. The fatal_err alert is raised regardless of this setting. Since this register is rw1s instead of rw, this configuration cannot be reverted.

DIS . SW_DIS

Disables RRAM functionality completely. This is a shortcut mechanism used by the software to completely kill RRAM in case of emergency. Since this register is rw1s instead of rw, to disable, write the value MuBi4True to the register to disable the RRAM. Once disabled, RRAM functionality cannot be re-enabled until the next reset.

EXEC

Controls whether RRAM can be used for code execution fetches

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

Fields

{"reg": [{"name": "EN", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0ENA value of 0xa26a38f7 allows RRAM to be used for code execution. Any other value prevents code execution.

INIT

Controller init register

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

Fields

{"reg": [{"name": "VAL", "bits": 1, "attr": ["rw1s"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:1Reserved
0rw1s0x0VALInitializes the RRAM controller. During the initialization process, the RRAM controller requests the address and data scramble keys and reads out the root seeds stored in RRAM before allowing other usage of the RRAM controller.

CTRL_REGWEN

Controls the configurability of the CONTROL register. This register ensures the contents of CONTROL cannot be changed by software once a RRAM operation has begun. It unlocks whenever the existing RRAM operation completes, regardless of success or error.

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

Fields

{"reg": [{"name": "EN", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:1Reserved
0ro0x1ENConfiguration enable. This bit defaults to 1 and is set to 0 by hardware when RRAM operation is initiated. When the controller completes the RRAM operation, this bit is set back to 1 to allow software configuration of CONTROL.

CONTROL

Control register

  • Offset: 0x20
  • Reset default: 0x0
  • Reset mask: 0x3ff0131
  • Register enable: CTRL_REGWEN

Fields

{"reg": [{"name": "START", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 3}, {"name": "OP", "bits": 2, "attr": ["rw"], "rotate": 0}, {"bits": 2}, {"name": "PARTITION", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 7}, {"name": "NUM", "bits": 10, "attr": ["rw"], "rotate": 0}, {"bits": 6}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetName
31:26Reserved
25:16rw0x0NUM
15:9Reserved
8rw0x0PARTITION
7:6Reserved
5:4rw0x0OP
3:1Reserved
0rw0x0START

CONTROL . NUM

One fewer than the number of bus words the RRAM operation should read or write. For write operations, the number of bus words must be a multiple of 4. For example, to read 10 words, software should program this field with the value 9. To write 16 words, the software should program this field to 15.

CONTROL . PARTITION

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

CONTROL . OP

RRAM operation selection

ValueNameDescription
0x0ReadRRAM Read. Read desired number of RRAM words.
0x1WriteRRAM write. Write desired number of RRAM words.
0x2RewriteThis operation reads a specific location and writes it back to the RRAM with the intention to fix errors that occurred in the RRAM over time.

Other values are reserved.

CONTROL . START

Start RRAM 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 RRAM operation

  • Offset: 0x24
  • Reset default: 0x0
  • Reset mask: 0x1fffff
  • Register enable: CTRL_REGWEN

Fields

{"reg": [{"name": "START", "bits": 21, "attr": ["rw"], "rotate": 0}, {"bits": 11}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:21Reserved
20:0rw0x0START

ADDR . START

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

For read operations, the RRAM 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.

For write operations, the RRAM controller will truncate to the closest, lower RRAM-word (128b). For example, if 0x2F is supplied, the controller will perform a write at address 0x20.

REGION_CFG_REGWEN

Memory region registers configuration enable.

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

Instances

NameOffset
REGION_CFG_REGWEN_00x28
REGION_CFG_REGWEN_10x2c
REGION_CFG_REGWEN_20x30
REGION_CFG_REGWEN_30x34
REGION_CFG_REGWEN_40x38
REGION_CFG_REGWEN_50x3c
REGION_CFG_REGWEN_60x40
REGION_CFG_REGWEN_70x44
REGION_CFG_REGWEN_80x48
REGION_CFG_REGWEN_90x4c

Fields

{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

REGION_CFG_REGWEN . REGION

Region register write enable. Once set to 0, it can no 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

Instances

NameOffset
MP_REGION_CFG_00x50
MP_REGION_CFG_10x54
MP_REGION_CFG_20x58
MP_REGION_CFG_30x5c
MP_REGION_CFG_40x60
MP_REGION_CFG_50x64
MP_REGION_CFG_60x68
MP_REGION_CFG_70x6c
MP_REGION_CFG_80x70
MP_REGION_CFG_90x74

Fields

{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "WR_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 12}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
BitsTypeResetNameDescription
31:20Reserved
19:16rw0x9ECC_ENRegion is integrity checked and reliability ECC enabled.
15:12rw0x9SCRAMBLE_ENRegion is scramble enabled.
11:8rw0x9WR_ENRegion can be written.
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

Instances

NameOffset
MP_REGION_00x78
MP_REGION_10x7c
MP_REGION_20x80
MP_REGION_30x84
MP_REGION_40x88
MP_REGION_50x8c
MP_REGION_60x90
MP_REGION_70x94
MP_REGION_80x98
MP_REGION_90x9c

Fields

{"reg": [{"name": "BASE", "bits": 12, "attr": ["rw"], "rotate": 0}, {"name": "SIZE", "bits": 12, "attr": ["rw"], "rotate": 0}, {"bits": 8}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:24Reserved
23:12rw0x0SIZERegion size, encoded as (number of pages - 1). For example, if base is 0 and size is 0, then the region is defined by page 0. If base is 0 and size is 1, then the region is defined by pages 0 and 1.
11:0rw0x0BASERegion base page. Note the granularity is page, not byte or word.

DEFAULT_REGION

Default region properties

  • Offset: 0xa0
  • Reset default: 0x9999
  • Reset mask: 0xffff

Fields

{"reg": [{"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "WR_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 16}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
BitsTypeResetNameDescription
31:16Reserved
15:12rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
11:8rw0x9SCRAMBLE_ENRegion is scramble enabled.
7:4rw0x9WR_ENRegion can be written
3:0rw0x9RD_ENRegion can be read

INFO_REGWEN

Memory region registers configuration enable.

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

Instances

NameOffset
INFO_REGWEN_00xa4
INFO_REGWEN_10xa8
INFO_REGWEN_20xac
INFO_REGWEN_30xb0
INFO_REGWEN_40xb4
INFO_REGWEN_50xb8
INFO_REGWEN_60xbc
INFO_REGWEN_70xc0

Fields

{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

INFO_REGWEN . REGION

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

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

INFO_PAGE_CFG

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

  • Reset default: 0x99999
  • Reset mask: 0xfffff
  • Register enable: INFO_REGWEN

Instances

NameOffset
INFO_PAGE_CFG_00xc4
INFO_PAGE_CFG_10xc8
INFO_PAGE_CFG_20xcc
INFO_PAGE_CFG_30xd0
INFO_PAGE_CFG_40xd4
INFO_PAGE_CFG_50xd8
INFO_PAGE_CFG_60xdc
INFO_PAGE_CFG_70xe0

Fields

{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "WR_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 12}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
BitsTypeResetNameDescription
31:20Reserved
19:16rw0x9ECC_ENRegion is ECC enabled (both integrity and reliability ECC).
15:12rw0x9SCRAMBLE_ENRegion is scramble enabled.
11:8rw0x9WR_ENRegion can be written.
7:4rw0x9RD_ENRegion can be read.
3:0rw0x9ENRegion is enabled, the following fields apply.

EMUL_INFO_REGWEN

Emulated info region registers configuration enable. Subregions within a window are only considered once this is locked, see EMUL_INFO_SUBREGION.

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

Instances

NameOffset
EMUL_INFO_REGWEN_00xe4
EMUL_INFO_REGWEN_10xe8

Fields

{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

EMUL_INFO_REGWEN . REGION

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

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

EMUL_INFO_REGION

Base and size configuration for an emulated info page region (window). Unlike MP_REGION, this register carries no access permissions of its own. See EMUL_INFO_SUBREGION_CFG for per-subregion permissions. Host access to this window is always blocked in hardware. Once EN is set, any access to the window that is not covered by an enabled subregion is denied. Enabling this and locking it via EMUL_INFO_REGWEN is a precondition for using any subregions configured through EMUL_INFO_SUBREGION and EMUL_INFO_SUBREGION_CFG within this window.

  • Reset default: 0x9000000
  • Reset mask: 0xfffffff
  • Register enable: EMUL_INFO_REGWEN

Instances

NameOffset
EMUL_INFO_REGION_00xec
EMUL_INFO_REGION_10xf0

Fields

{"reg": [{"name": "BASE", "bits": 12, "attr": ["rw"], "rotate": 0}, {"name": "SIZE", "bits": 12, "attr": ["rw"], "rotate": 0}, {"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:28Reserved
27:24rw0x9EN
23:12rw0x0SIZE
11:0rw0x0BASE

EMUL_INFO_REGION . EN

Window enabled. If enabled, accesses to the window that are not covered by an enabled subregion are denied. If two enabled windows overlap, the subregions of both windows are disabled and both windows are denied entirely. If disabled, neither the window nor any of its subregions is matched against any incoming transaction.

EMUL_INFO_REGION . SIZE

Region size, encoded as (number of pages - 1).

EMUL_INFO_REGION . BASE

Region base page. Note the granularity is page, not byte or word.

EMUL_INFO_SUBREGION_REGWEN

Emulated info subregion size registers configuration enable. Independent from EMUL_INFO_SUBREGION_CFG_REGWEN. A subregion’s placement and its permissions can be locked separately. A subregion is only considered once its placement is locked.

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

Instances

NameOffset
EMUL_INFO_SUBREGION_REGWEN_00xf4
EMUL_INFO_SUBREGION_REGWEN_10xf8
EMUL_INFO_SUBREGION_REGWEN_20xfc
EMUL_INFO_SUBREGION_REGWEN_30x100
EMUL_INFO_SUBREGION_REGWEN_40x104
EMUL_INFO_SUBREGION_REGWEN_50x108
EMUL_INFO_SUBREGION_REGWEN_60x10c
EMUL_INFO_SUBREGION_REGWEN_70x110
EMUL_INFO_SUBREGION_REGWEN_80x114
EMUL_INFO_SUBREGION_REGWEN_90x118
EMUL_INFO_SUBREGION_REGWEN_100x11c
EMUL_INFO_SUBREGION_REGWEN_110x120
EMUL_INFO_SUBREGION_REGWEN_120x124
EMUL_INFO_SUBREGION_REGWEN_130x128
EMUL_INFO_SUBREGION_REGWEN_140x12c
EMUL_INFO_SUBREGION_REGWEN_150x130
EMUL_INFO_SUBREGION_REGWEN_160x134
EMUL_INFO_SUBREGION_REGWEN_170x138
EMUL_INFO_SUBREGION_REGWEN_180x13c
EMUL_INFO_SUBREGION_REGWEN_190x140
EMUL_INFO_SUBREGION_REGWEN_200x144
EMUL_INFO_SUBREGION_REGWEN_210x148
EMUL_INFO_SUBREGION_REGWEN_220x14c
EMUL_INFO_SUBREGION_REGWEN_230x150

Fields

{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

EMUL_INFO_SUBREGION_REGWEN . REGION

Subregion write enable. Once set to 0, it can no longer be configured to 1.

ValueNameDescription
0x0Subregion lockedSubregion size can no longer be configured until next reset. Locking this is one of the conditions for the subregion to become active. See EMUL_INFO_SUBREGION for the full conditions.
0x1Subregion enabledSubregion size can be configured.

EMUL_INFO_SUBREGION

Subregions are configured with TOR (top of range) addressing, but relative to the window’s base. A subregion’s range runs from the prior subregion’s TOP plus one up to its own TOP. Configure subregions in increasing TOP order, locking each starting from the first subregion of its window. A subregion is enabled once all of the following hold. Its window is enabled via EMUL_INFO_REGION.EN and locked via EMUL_INFO_REGWEN. Its own placement and that of every lower-indexed subregion of its window are locked via EMUL_INFO_SUBREGION_REGWEN, i.e., the whole lock chain back to the first subregion of its window. Its TOP does not exceed its window’s SIZE. Its window does not overlap any other enabled window.

Instances

NameOffset
EMUL_INFO_SUBREGION_00x154
EMUL_INFO_SUBREGION_10x158
EMUL_INFO_SUBREGION_20x15c
EMUL_INFO_SUBREGION_30x160
EMUL_INFO_SUBREGION_40x164
EMUL_INFO_SUBREGION_50x168
EMUL_INFO_SUBREGION_60x16c
EMUL_INFO_SUBREGION_70x170
EMUL_INFO_SUBREGION_80x174
EMUL_INFO_SUBREGION_90x178
EMUL_INFO_SUBREGION_100x17c
EMUL_INFO_SUBREGION_110x180
EMUL_INFO_SUBREGION_120x184
EMUL_INFO_SUBREGION_130x188
EMUL_INFO_SUBREGION_140x18c
EMUL_INFO_SUBREGION_150x190
EMUL_INFO_SUBREGION_160x194
EMUL_INFO_SUBREGION_170x198
EMUL_INFO_SUBREGION_180x19c
EMUL_INFO_SUBREGION_190x1a0
EMUL_INFO_SUBREGION_200x1a4
EMUL_INFO_SUBREGION_210x1a8
EMUL_INFO_SUBREGION_220x1ac
EMUL_INFO_SUBREGION_230x1b0

Fields

{"reg": [{"name": "TOP", "bits": 8, "attr": ["rw"], "rotate": 0}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:8Reserved
7:0rw0x0TOPSubregion’s last page, as an offset in pages from its window’s base page.

EMUL_INFO_SUBREGION_CFG_REGWEN

Emulated info subregion permission registers configuration enable. Independent from EMUL_INFO_SUBREGION_REGWEN. A subregion’s permissions and its placement can be locked separately.

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

Instances

NameOffset
EMUL_INFO_SUBREGION_CFG_REGWEN_00x1b4
EMUL_INFO_SUBREGION_CFG_REGWEN_10x1b8
EMUL_INFO_SUBREGION_CFG_REGWEN_20x1bc
EMUL_INFO_SUBREGION_CFG_REGWEN_30x1c0
EMUL_INFO_SUBREGION_CFG_REGWEN_40x1c4
EMUL_INFO_SUBREGION_CFG_REGWEN_50x1c8
EMUL_INFO_SUBREGION_CFG_REGWEN_60x1cc
EMUL_INFO_SUBREGION_CFG_REGWEN_70x1d0
EMUL_INFO_SUBREGION_CFG_REGWEN_80x1d4
EMUL_INFO_SUBREGION_CFG_REGWEN_90x1d8
EMUL_INFO_SUBREGION_CFG_REGWEN_100x1dc
EMUL_INFO_SUBREGION_CFG_REGWEN_110x1e0
EMUL_INFO_SUBREGION_CFG_REGWEN_120x1e4
EMUL_INFO_SUBREGION_CFG_REGWEN_130x1e8
EMUL_INFO_SUBREGION_CFG_REGWEN_140x1ec
EMUL_INFO_SUBREGION_CFG_REGWEN_150x1f0
EMUL_INFO_SUBREGION_CFG_REGWEN_160x1f4
EMUL_INFO_SUBREGION_CFG_REGWEN_170x1f8
EMUL_INFO_SUBREGION_CFG_REGWEN_180x1fc
EMUL_INFO_SUBREGION_CFG_REGWEN_190x200
EMUL_INFO_SUBREGION_CFG_REGWEN_200x204
EMUL_INFO_SUBREGION_CFG_REGWEN_210x208
EMUL_INFO_SUBREGION_CFG_REGWEN_220x20c
EMUL_INFO_SUBREGION_CFG_REGWEN_230x210

Fields

{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:1Reserved
0rw0c0x1REGION

EMUL_INFO_SUBREGION_CFG_REGWEN . REGION

Subregion write enable. Once set to 0, it can no longer be configured to 1.

ValueNameDescription
0x0Subregion lockedSubregion permissions can no longer be configured until next reset.
0x1Subregion enabledSubregion permissions can be configured.

EMUL_INFO_SUBREGION_CFG

Memory property configuration for an emulated info subregion. There is no separate EN field. Bits 3:0 are reserved, so RD_EN, WR_EN, SCRAMBLE_EN, and ECC_EN sit at the same bit positions as in MP_REGION_CFG and INFO_PAGE_CFG. See EMUL_INFO_SUBREGION for the full conditions under which a subregion is enabled.

Instances

NameOffset
EMUL_INFO_SUBREGION_CFG_00x214
EMUL_INFO_SUBREGION_CFG_10x218
EMUL_INFO_SUBREGION_CFG_20x21c
EMUL_INFO_SUBREGION_CFG_30x220
EMUL_INFO_SUBREGION_CFG_40x224
EMUL_INFO_SUBREGION_CFG_50x228
EMUL_INFO_SUBREGION_CFG_60x22c
EMUL_INFO_SUBREGION_CFG_70x230
EMUL_INFO_SUBREGION_CFG_80x234
EMUL_INFO_SUBREGION_CFG_90x238
EMUL_INFO_SUBREGION_CFG_100x23c
EMUL_INFO_SUBREGION_CFG_110x240
EMUL_INFO_SUBREGION_CFG_120x244
EMUL_INFO_SUBREGION_CFG_130x248
EMUL_INFO_SUBREGION_CFG_140x24c
EMUL_INFO_SUBREGION_CFG_150x250
EMUL_INFO_SUBREGION_CFG_160x254
EMUL_INFO_SUBREGION_CFG_170x258
EMUL_INFO_SUBREGION_CFG_180x25c
EMUL_INFO_SUBREGION_CFG_190x260
EMUL_INFO_SUBREGION_CFG_200x264
EMUL_INFO_SUBREGION_CFG_210x268
EMUL_INFO_SUBREGION_CFG_220x26c
EMUL_INFO_SUBREGION_CFG_230x270

Fields

{"reg": [{"bits": 4}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "WR_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 12}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
BitsTypeResetNameDescription
31:20Reserved
19:16rw0x9ECC_ENSubregion is ECC enabled (both integrity and reliability ECC).
15:12rw0x9SCRAMBLE_ENSubregion is scramble enabled.
11:8rw0x9WR_ENSubregion can be written.
7:4rw0x9RD_ENSubregion can be read.
3:0Reserved

HW_INFO_CFG_OVERRIDE

HW interface info configuration rule overrides

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

Fields

{"reg": [{"name": "SCRAMBLE_DIS", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_DIS", "bits": 4, "attr": ["rw"], "rotate": -90}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 140}}
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.

OP_STATUS

RRAM Operation Status

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

Fields

{"reg": [{"name": "done", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "err", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:2Reserved
1rw0x0errRRAM operation error. Set by HW, cleared by SW. See ERR_CODE for more details.
0rw0x0doneRRAM operation done. Set by HW, cleared by SW

STATUS

RRAM Controller Status

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

Fields

{"reg": [{"name": "rd_full", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "rd_empty", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "wr_full", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "wr_empty", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "init_done", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "keys_valid", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 26}], "config": {"lanes": 1, "fontsize": 10, "vspace": 120}}
BitsTypeResetNameDescription
31:6Reserved
5ro0x0keys_validRRAM controller scrambling keys are loaded
4ro0x0init_doneRRAM controller is initilized
3ro0x1wr_emptyRRAM write FIFO empty, software must provide data
2ro0x0wr_fullRRAM write FIFO full
1ro0x1rd_emptyRRAM read FIFO empty
0ro0x0rd_fullRRAM read FIFO full, software must consume data

ERR_CODE

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

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

  • Offset: 0x280
  • Reset default: 0x0
  • Reset mask: 0xf

Fields

{"reg": [{"name": "op_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "mp_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "rd_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "wr_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"bits": 28}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:4Reserved
3rw1c0x0wr_err
2rw1c0x0rd_err
1rw1c0x0mp_err
0rw1c0x0op_err

ERR_CODE . wr_err

RRAM write has an error. This could be a write integrity error, see STD_FAULT_STATUS. This is a synchronous error.

ERR_CODE . rd_err

RRAM read has an error. This could be a reliability ECC error or integrity error encountered during a software issued controller read, see STD_FAULT_STATUS. See ERR_ADDR for exact address. This is a synchronous error.

ERR_CODE . mp_err

RRAM access has encountered an access permission error. Please see ERR_ADDR for exact address. This is a synchronous error.

ERR_CODE . op_err

Software has supplied an undefined operation. See CONTROL.OP for list of valid operations. This error is also set if a software operation is started before the initialization has completed, see STATUS.INIT_DONE and STATUS.KEYS_VALID, or while software access is disabled from the start of the RMA entry process.

STD_FAULT_STATUS

This register tabulates standard fault status of the RRAM.

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

  • Offset: 0x284
  • Reset default: 0x0
  • Reset mask: 0x1fff

Fields

{"reg": [{"name": "reg_intg_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "lcmgr_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "lcmgr_intg_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "otp_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "otp_intg_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_wr_intg_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_fifo_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_fsm_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_cnt_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_arb_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "ctrl_fsm_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "ctrl_cnt_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "ctrl_fifo_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 19}], "config": {"lanes": 1, "fontsize": 10, "vspace": 170}}
BitsTypeResetNameDescription
31:13Reserved
12ro0x0ctrl_fifo_errRRAM controller write fifo has encountered an error.
11ro0x0ctrl_cnt_errRRAM controller read/write has encountered a count error.
10ro0x0ctrl_fsm_errAny of the arbiter or rd/wr control FSMs have encountered a sparse encoding error.
9ro0x0phy_arb_errA RRAM phy arbiter has encountered an error.
8ro0x0phy_cnt_errA RRAM phy wr/read has encountered a count error.
7ro0x0phy_fsm_errA RRAM phy fsm has encountered a sparse encoding error.
6ro0x0phy_fifo_errA RRAM phy fifo has encountered a count error.
5ro0x0phy_wr_intg_errThe RRAM phy encountered a write data transmission integrity error.
4ro0x0otp_intg_errThe otp interface has encountered a transmission integrity error. This is an integrity error on the generated integrity during an OTP read.
3ro0x0otp_errThe otp interface has encountered a fatal error. The error is either an FSM sparse encoding error or a count error.
2ro0x0lcmgr_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.
1ro0x0lcmgr_errThe life cycle management interface has encountered a fatal error. The error is either an FSM sparse encoding error or a count error.
0ro0x0reg_intg_errThe RRAM controller encountered a register integrity error.

FAULT_STATUS

This register tabulates customized fault status of the RRAM.

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

All errors except for multi-bit ECC errors (FAULT_STATUS.PHY_RELBL_ERR). Once set, they remain set until reset.

  • Offset: 0x288
  • Reset default: 0x0
  • Reset mask: 0x3fff

Fields

{"reg": [{"name": "lcmgr_op_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "lcmgr_mp_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "lcmgr_rd_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "lcmgr_wr_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "otp_op_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "otp_mp_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "otp_rd_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "otp_wr_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "seed_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_relbl_err", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"name": "phy_rd_intg_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_rd_ctrl_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "spurious_done", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "host_gnt_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 18}], "config": {"lanes": 1, "fontsize": 10, "vspace": 170}}
BitsTypeResetName
31:14Reserved
13ro0x0host_gnt_err
12ro0x0spurious_done
11ro0x0phy_rd_ctrl_err
10ro0x0phy_rd_intg_err
9rw0c0x0phy_relbl_err
8ro0x0seed_err
7ro0x0otp_wr_err
6ro0x0otp_rd_err
5ro0x0otp_mp_err
4ro0x0otp_op_err
3ro0x0lcmgr_wr_err
2ro0x0lcmgr_rd_err
1ro0x0lcmgr_mp_err
0ro0x0lcmgr_op_err

FAULT_STATUS . host_gnt_err

A host transaction was granted with illegal properties.

FAULT_STATUS . spurious_done

The RRAM emitted an unexpected acknowledgement.

FAULT_STATUS . phy_rd_ctrl_err

The RRAM phy detected one of the following errors:

  • a mismatch of command request integrity and command response integrity.
  • a spurious valid.
  • a spurious rram read request.

FAULT_STATUS . phy_rd_intg_err

The RRAM phy encountered an integrity error. The shadow response was not identical to the original response.

FAULT_STATUS . phy_relbl_err

The RRAM macro encountered a reliability ECC error that cannot be corrected.

Note that this error bit can be cleared to allow firmware dealing with multi-bit ECC errors during firmware selection and verification. After passing this stage, it is recommended that firmware classifies the corresponding alert as fatal on the receiver end, i.e, inside the alert handler. Clearing this bit does not revoke a local escalation it has already caused while DIS.LOCAL_ESC_RELBL_ERR was set.

FAULT_STATUS . seed_err

The seed reading process encountered an unexpected error.

FAULT_STATUS . otp_wr_err

The RRAM OTP interface encountered a write error. This could be a write integrity error, see STD_FAULT_STATUS for more details.

FAULT_STATUS . otp_rd_err

The RRAM OTP 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.

FAULT_STATUS . otp_mp_err

The RRAM OTP interface encountered a memory permission error.

FAULT_STATUS . otp_op_err

The RRAM OTP interface has supplied an undefined operation. See CONTROL.OP for list of valid operations.

FAULT_STATUS . lcmgr_wr_err

The RRAM life cycle management interface encountered a write error. This could be a write integrity error, see STD_FAULT_STATUS for more details.

FAULT_STATUS . lcmgr_rd_err

The RRAM 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.

FAULT_STATUS . lcmgr_mp_err

The RRAM life cycle management interface encountered a memory permission error.

FAULT_STATUS . lcmgr_op_err

The RRAM life cycle management interface has supplied an undefined operation. See CONTROL.OP for list of valid operations.

ERR_ADDR

Synchronous error address

  • Offset: 0x28c
  • Reset default: 0x0
  • Reset mask: 0x1fffff

Fields

{"reg": [{"name": "ERR_ADDR", "bits": 21, "attr": ["ro"], "rotate": 0}, {"bits": 11}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:21Reserved
20:0ro0x0ERR_ADDR

CORR1_ERR_CNT

Count of correctable single-bit ECC errors

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

Fields

{"reg": [{"name": "val", "bits": 8, "attr": ["rw"], "rotate": 0}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:8Reserved
7:0rw0x0valThis count will not wrap when saturated

CORR2_ERR_CNT

Count of correctable double-bit ECC errors

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

Fields

{"reg": [{"name": "val", "bits": 8, "attr": ["rw"], "rotate": 0}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:8Reserved
7:0rw0x0valThis count will not wrap when saturated

CORR1_ERR_LOC

Last address that was corrected by the ECC decoder with a single-bit error

  • Offset: 0x298
  • Reset default: 0x0
  • Reset mask: 0x11fffff

Fields

{"reg": [{"name": "addr", "bits": 21, "attr": ["ro"], "rotate": 0}, {"bits": 3}, {"name": "part", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 7}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:25Reserved
24ro0x0partLast corrected partition
23:21Reserved
20:0ro0x0addrLast corrected address

CORR2_ERR_LOC

Last address that was corrected by the ECC decoder with a double-bit error

  • Offset: 0x29c
  • Reset default: 0x0
  • Reset mask: 0x11fffff

Fields

{"reg": [{"name": "addr", "bits": 21, "attr": ["ro"], "rotate": 0}, {"bits": 3}, {"name": "part", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 7}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:25Reserved
24ro0x0partLast corrected partition
23:21Reserved
20:0ro0x0addrLast corrected address

PHY_STATUS

RRAM Phy Status

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

Fields

{"reg": [{"name": "wr_busy", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "init_done", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetNameDescription
31:2Reserved
1ro0x0init_doneRRAM phy is initialized (including RRAM)
0ro0x0wr_busyRRAM phy is currently writing to RRAM

SCRATCH

RRAM Controller Scratch

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

Fields

{"reg": [{"name": "data", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0dataRRAM controller scratch register

FIFO_LVL

Programmable depth where FIFOs should generate interrupts

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

Fields

{"reg": [{"name": "WR", "bits": 5, "attr": ["rw"], "rotate": 0}, {"bits": 3}, {"name": "RD", "bits": 5, "attr": ["rw"], "rotate": 0}, {"bits": 19}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
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:0rw0xfWRWhen the write FIFO drains to this level, trigger an interrupt. Default value is set such that interrupt does not trigger at reset.

FIFO_CLR

Clears RRAM controller FIFOs

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

Fields

{"reg": [{"name": "WR", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "RD", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:2Reserved
1wo0x0RDThis will clear the content of the controller read fifo.
0wo0x0WRThis will clear the content of the controller write fifo.

CURR_FIFO_LVL

Current write and read fifo level

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

Fields

{"reg": [{"name": "WR", "bits": 5, "attr": ["ro"], "rotate": 0}, {"bits": 3}, {"name": "RD", "bits": 5, "attr": ["ro"], "rotate": 0}, {"bits": 19}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:13Reserved
12:8ro0x0RDCurrent read fifo level.
7:5Reserved
4:0ro0x0WRCurrent write fifo level.

wr_fifo

RRAM write FIFO.

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

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

rd_fifo

RRAM read FIFO.

The FIFO is 16 entries of 4B words.

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