The flash protocol controller maintains two separate access windows for the FIFO. 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).
Name | Offset | Length | Description |
---|---|---|---|
flash_ctrl.INTR_STATE |
0x0 | 4 | Interrupt State Register |
flash_ctrl.INTR_ENABLE |
0x4 | 4 | Interrupt Enable Register |
flash_ctrl.INTR_TEST |
0x8 | 4 | Interrupt Test Register |
flash_ctrl.ALERT_TEST |
0xc | 4 | Alert Test Register |
flash_ctrl.DIS |
0x10 | 4 | Disable flash functionality |
flash_ctrl.EXEC |
0x14 | 4 | Controls whether flash can be used for code execution fetches |
flash_ctrl.INIT |
0x18 | 4 | Controller init register |
flash_ctrl.CTRL_REGWEN |
0x1c | 4 | Controls the configurability of the !!CONTROL register. |
flash_ctrl.CONTROL |
0x20 | 4 | Control register |
flash_ctrl.ADDR |
0x24 | 4 | Address for flash operation |
flash_ctrl.PROG_TYPE_EN |
0x28 | 4 | Enable different program types |
flash_ctrl.ERASE_SUSPEND |
0x2c | 4 | Suspend erase |
flash_ctrl.REGION_CFG_REGWEN_0 |
0x30 | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_1 |
0x34 | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_2 |
0x38 | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_3 |
0x3c | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_4 |
0x40 | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_5 |
0x44 | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_6 |
0x48 | 4 | Memory region registers configuration enable. |
flash_ctrl.REGION_CFG_REGWEN_7 |
0x4c | 4 | Memory region registers configuration enable. |
flash_ctrl.MP_REGION_CFG_0 |
0x50 | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_1 |
0x54 | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_2 |
0x58 | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_3 |
0x5c | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_4 |
0x60 | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_5 |
0x64 | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_6 |
0x68 | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_CFG_7 |
0x6c | 4 | Memory property configuration for data partition |
flash_ctrl.MP_REGION_0 |
0x70 | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_1 |
0x74 | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_2 |
0x78 | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_3 |
0x7c | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_4 |
0x80 | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_5 |
0x84 | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_6 |
0x88 | 4 | Memory base and size configuration for data partition |
flash_ctrl.MP_REGION_7 |
0x8c | 4 | Memory base and size configuration for data partition |
flash_ctrl.DEFAULT_REGION |
0x90 | 4 | Default region properties |
flash_ctrl.BANK0_INFO0_REGWEN_0 |
0x94 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_1 |
0x98 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_2 |
0x9c | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_3 |
0xa0 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_4 |
0xa4 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_5 |
0xa8 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_6 |
0xac | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_7 |
0xb0 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_8 |
0xb4 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_REGWEN_9 |
0xb8 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO0_PAGE_CFG_0 |
0xbc | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_1 |
0xc0 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_2 |
0xc4 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_3 |
0xc8 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_4 |
0xcc | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_5 |
0xd0 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_6 |
0xd4 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_7 |
0xd8 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_8 |
0xdc | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO0_PAGE_CFG_9 |
0xe0 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO1_REGWEN |
0xe4 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO1_PAGE_CFG |
0xe8 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO2_REGWEN_0 |
0xec | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO2_REGWEN_1 |
0xf0 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK0_INFO2_PAGE_CFG_0 |
0xf4 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK0_INFO2_PAGE_CFG_1 |
0xf8 | 4 | Memory property configuration for info partition in bank0, |
flash_ctrl.BANK1_INFO0_REGWEN_0 |
0xfc | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_1 |
0x100 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_2 |
0x104 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_3 |
0x108 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_4 |
0x10c | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_5 |
0x110 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_6 |
0x114 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_7 |
0x118 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_8 |
0x11c | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_REGWEN_9 |
0x120 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO0_PAGE_CFG_0 |
0x124 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_1 |
0x128 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_2 |
0x12c | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_3 |
0x130 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_4 |
0x134 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_5 |
0x138 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_6 |
0x13c | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_7 |
0x140 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_8 |
0x144 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO0_PAGE_CFG_9 |
0x148 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO1_REGWEN |
0x14c | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO1_PAGE_CFG |
0x150 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO2_REGWEN_0 |
0x154 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO2_REGWEN_1 |
0x158 | 4 | Memory region registers configuration enable. |
flash_ctrl.BANK1_INFO2_PAGE_CFG_0 |
0x15c | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.BANK1_INFO2_PAGE_CFG_1 |
0x160 | 4 | Memory property configuration for info partition in bank1, |
flash_ctrl.HW_INFO_CFG_OVERRIDE |
0x164 | 4 | HW interface info configuration rule overrides |
flash_ctrl.BANK_CFG_REGWEN |
0x168 | 4 | Bank configuration registers configuration enable. |
flash_ctrl.MP_BANK_CFG_SHADOWED |
0x16c | 4 | Memory properties bank configuration |
flash_ctrl.OP_STATUS |
0x170 | 4 | Flash Operation Status |
flash_ctrl.STATUS |
0x174 | 4 | Flash Controller Status |
flash_ctrl.DEBUG_STATE |
0x178 | 4 | Current flash fsm state |
flash_ctrl.ERR_CODE |
0x17c | 4 | Flash error code register. |
flash_ctrl.STD_FAULT_STATUS |
0x180 | 4 | This register tabulates standard fault status of the flash. |
flash_ctrl.FAULT_STATUS |
0x184 | 4 | This register tabulates customized fault status of the flash. |
flash_ctrl.ERR_ADDR |
0x188 | 4 | Synchronous error address |
flash_ctrl.ECC_SINGLE_ERR_CNT |
0x18c | 4 | Total number of single bit ECC error count |
flash_ctrl.ECC_SINGLE_ERR_ADDR_0 |
0x190 | 4 | Latest address of ECC single err |
flash_ctrl.ECC_SINGLE_ERR_ADDR_1 |
0x194 | 4 | Latest address of ECC single err |
flash_ctrl.PHY_ALERT_CFG |
0x198 | 4 | Phy alert configuration |
flash_ctrl.PHY_STATUS |
0x19c | 4 | Flash Phy Status |
flash_ctrl.Scratch |
0x1a0 | 4 | Flash Controller Scratch |
flash_ctrl.FIFO_LVL |
0x1a4 | 4 | Programmable depth where FIFOs should generate interrupts |
flash_ctrl.FIFO_RST |
0x1a8 | 4 | Reset for flash controller FIFOs |
flash_ctrl.CURR_FIFO_LVL |
0x1ac | 4 | Current program and read fifo depth |
flash_ctrl.prog_fifo |
0x1b0 | 4 | Flash program FIFO. |
flash_ctrl.rd_fifo |
0x1b4 | 4 | Flash read FIFO. |
Interrupt State Register
- Offset:
0x0
- Reset default:
0x0
- Reset mask:
0x3f
{"reg": [{"name": "prog_empty", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "prog_lvl", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "rd_full", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "rd_lvl", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "op_done", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "corr_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"bits": 26}], "config": {"lanes": 1, "fontsize": 10, "vspace": 120}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:6 | Reserved | |||
5 | rw1c | 0x0 | corr_err | Correctable error encountered |
4 | rw1c | 0x0 | op_done | Operation complete |
3 | rw1c | 0x0 | rd_lvl | Read FIFO filled to level |
2 | rw1c | 0x0 | rd_full | Read FIFO full |
1 | rw1c | 0x0 | prog_lvl | Program FIFO drained to level |
0 | rw1c | 0x0 | prog_empty | Program FIFO empty |
Interrupt Enable Register
- Offset:
0x4
- Reset default:
0x0
- Reset mask:
0x3f
{"reg": [{"name": "prog_empty", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "prog_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": "corr_err", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 26}], "config": {"lanes": 1, "fontsize": 10, "vspace": 120}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:6 | Reserved | |||
5 | rw | 0x0 | corr_err | Enable interrupt when INTR_STATE.corr_err is set. |
4 | rw | 0x0 | op_done | Enable interrupt when INTR_STATE.op_done is set. |
3 | rw | 0x0 | rd_lvl | Enable interrupt when INTR_STATE.rd_lvl is set. |
2 | rw | 0x0 | rd_full | Enable interrupt when INTR_STATE.rd_full is set. |
1 | rw | 0x0 | prog_lvl | Enable interrupt when INTR_STATE.prog_lvl is set. |
0 | rw | 0x0 | prog_empty | Enable interrupt when INTR_STATE.prog_empty is set. |
Interrupt Test Register
- Offset:
0x8
- Reset default:
0x0
- Reset mask:
0x3f
{"reg": [{"name": "prog_empty", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "prog_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": "corr_err", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 26}], "config": {"lanes": 1, "fontsize": 10, "vspace": 120}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:6 | Reserved | |||
5 | wo | 0x0 | corr_err | Write 1 to force INTR_STATE.corr_err to 1. |
4 | wo | 0x0 | op_done | Write 1 to force INTR_STATE.op_done to 1. |
3 | wo | 0x0 | rd_lvl | Write 1 to force INTR_STATE.rd_lvl to 1. |
2 | wo | 0x0 | rd_full | Write 1 to force INTR_STATE.rd_full to 1. |
1 | wo | 0x0 | prog_lvl | Write 1 to force INTR_STATE.prog_lvl to 1. |
0 | wo | 0x0 | prog_empty | Write 1 to force INTR_STATE.prog_empty to 1. |
Alert Test Register
- Offset:
0xc
- Reset default:
0x0
- Reset mask:
0x1f
{"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_prim_flash_alert", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "recov_prim_flash_alert", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 27}], "config": {"lanes": 1, "fontsize": 10, "vspace": 240}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:5 | Reserved | |||
4 | wo | 0x0 | recov_prim_flash_alert | Write 1 to trigger one alert event of this kind. |
3 | wo | 0x0 | fatal_prim_flash_alert | Write 1 to trigger one alert event of this kind. |
2 | wo | 0x0 | fatal_err | Write 1 to trigger one alert event of this kind. |
1 | wo | 0x0 | fatal_std_err | Write 1 to trigger one alert event of this kind. |
0 | wo | 0x0 | recov_err | Write 1 to trigger one alert event of this kind. |
Disable flash functionality
- Offset:
0x10
- Reset default:
0x9
- Reset mask:
0xf
{"reg": [{"name": "VAL", "bits": 4, "attr": ["rw1s"], "rotate": 0}, {"bits": 28}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:4 | Reserved | ||
3:0 | rw1s | 0x9 | 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 rw1s instead of rw, to disable, write the value kMuBi4True to the register to disable the flash.
Controls whether flash can be used for code execution fetches
- Offset:
0x14
- Reset default:
0x0
- Reset mask:
0xffffffff
{"reg": [{"name": "EN", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:0 | rw | 0x0 | EN | A value of 0xa26a38f7 allows flash to be used for code execution. Any other value prevents code execution. |
Controller init register
- Offset:
0x18
- Reset default:
0x0
- Reset mask:
0x1
{"reg": [{"name": "VAL", "bits": 1, "attr": ["rw1s"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw1s | 0x0 | 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.
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:
0x1c
- Reset default:
0x1
- Reset mask:
0x1
{"reg": [{"name": "EN", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:1 | Reserved | |||
0 | ro | 0x1 | EN | Configuration 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 register
- Offset:
0x20
- Reset default:
0x0
- Reset mask:
0xfff07f1
- Register enable:
CTRL_REGWEN
{"reg": [{"name": "START", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 3}, {"name": "OP", "bits": 2, "attr": ["rw"], "rotate": 0}, {"name": "PROG_SEL", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_SEL", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "PARTITION_SEL", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "INFO_SEL", "bits": 2, "attr": ["rw"], "rotate": -90}, {"bits": 5}, {"name": "NUM", "bits": 12, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 150}}
Bits | Type | Reset | Name |
---|---|---|---|
31:28 | Reserved | ||
27:16 | rw | 0x0 | NUM |
15:11 | Reserved | ||
10:9 | rw | 0x0 | INFO_SEL |
8 | rw | 0x0 | PARTITION_SEL |
7 | rw | 0x0 | ERASE_SEL |
6 | rw | 0x0 | PROG_SEL |
5:4 | rw | 0x0 | OP |
3:1 | Reserved | ||
0 | rw | 0x0 | START |
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.
Informational partions can have multiple types.
This field selects the info type to be accessed.
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.
Flash erase operation type selection
Value | Name | Description |
---|---|---|
0x0 | Page Erase | Erase 1 page of flash |
0x1 | Bank Erase | Erase 1 bank of flash |
Flash program operation type selection
Value | Name | Description |
---|---|---|
0x0 | Normal program | Normal program operation to the flash |
0x1 | Program repair | Repair program operation to the flash. Whether this is actually supported depends on the underlying flash memory. |
Flash operation selection
Value | Name | Description |
---|---|---|
0x0 | Read | Flash Read. Read desired number of flash words |
0x1 | Prog | Flash Program. Program desired number of flash words |
0x2 | Erase | Flash Erase Operation. See ERASE_SEL for details on erase operation |
Other values are reserved.
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.
Address for flash operation
- Offset:
0x24
- Reset default:
0x0
- Reset mask:
0xfffff
- Register enable:
CTRL_REGWEN
{"reg": [{"name": "START", "bits": 20, "attr": ["rw"], "rotate": 0}, {"bits": 12}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:20 | Reserved | ||
19:0 | rw | 0x0 | 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.
Enable different program types
- Offset:
0x28
- Reset default:
0x3
- Reset mask:
0x3
- Register enable:
CTRL_REGWEN
{"reg": [{"name": "NORMAL", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"name": "REPAIR", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:2 | Reserved | |||
1 | rw0c | 0x1 | REPAIR | Repair prog type available |
0 | rw0c | 0x1 | NORMAL | Normal prog type available |
Suspend erase
- Offset:
0x2c
- Reset default:
0x0
- Reset mask:
0x1
{"reg": [{"name": "REQ", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:1 | Reserved | |||
0 | rw | 0x0 | REQ | When 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. |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
REGION_CFG_REGWEN_0 | 0x30 |
REGION_CFG_REGWEN_1 | 0x34 |
REGION_CFG_REGWEN_2 | 0x38 |
REGION_CFG_REGWEN_3 | 0x3c |
REGION_CFG_REGWEN_4 | 0x40 |
REGION_CFG_REGWEN_5 | 0x44 |
REGION_CFG_REGWEN_6 | 0x48 |
REGION_CFG_REGWEN_7 | 0x4c |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Region register write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Region locked | Region can no longer be configured until next reset |
0x1 | Region enabled | Region can be configured |
Memory property configuration for data partition
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
MP_REGION_CFG_0 | 0x50 |
MP_REGION_CFG_1 | 0x54 |
MP_REGION_CFG_2 | 0x58 |
MP_REGION_CFG_3 | 0x5c |
MP_REGION_CFG_4 | 0x60 |
MP_REGION_CFG_5 | 0x64 |
MP_REGION_CFG_6 | 0x68 |
MP_REGION_CFG_7 | 0x6c |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is integrity checked and reliability ECC enabled. |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply. If region is disabled, it is not matched against any incoming transaction. |
Memory base and size configuration for data partition
- Reset default:
0x0
- Reset mask:
0x7ffff
Name | Offset |
---|---|
MP_REGION_0 | 0x70 |
MP_REGION_1 | 0x74 |
MP_REGION_2 | 0x78 |
MP_REGION_3 | 0x7c |
MP_REGION_4 | 0x80 |
MP_REGION_5 | 0x84 |
MP_REGION_6 | 0x88 |
MP_REGION_7 | 0x8c |
{"reg": [{"name": "BASE", "bits": 9, "attr": ["rw"], "rotate": 0}, {"name": "SIZE", "bits": 10, "attr": ["rw"], "rotate": 0}, {"bits": 13}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:19 | Reserved | |||
18:9 | rw | 0x0 | SIZE | Region 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:0 | rw | 0x0 | BASE | Region base page. Note the granularity is page, not byte or word |
Default region properties
- Offset:
0x90
- Reset default:
0x999999
- Reset mask:
0xffffff
{"reg": [{"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 8}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:24 | Reserved | |||
23:20 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
19:16 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
15:12 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
11:8 | rw | 0x9 | ERASE_EN | Region can be erased |
7:4 | rw | 0x9 | PROG_EN | Region can be programmed |
3:0 | rw | 0x9 | RD_EN | Region can be read |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
BANK0_INFO0_REGWEN_0 | 0x94 |
BANK0_INFO0_REGWEN_1 | 0x98 |
BANK0_INFO0_REGWEN_2 | 0x9c |
BANK0_INFO0_REGWEN_3 | 0xa0 |
BANK0_INFO0_REGWEN_4 | 0xa4 |
BANK0_INFO0_REGWEN_5 | 0xa8 |
BANK0_INFO0_REGWEN_6 | 0xac |
BANK0_INFO0_REGWEN_7 | 0xb0 |
BANK0_INFO0_REGWEN_8 | 0xb4 |
BANK0_INFO0_REGWEN_9 | 0xb8 |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Info0 page write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Page locked | Region can no longer be configured until next reset |
0x1 | Page enabled | Region can be configured |
Memory property configuration for info partition in bank0, Unlike data partition, each page is individually configured.
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
BANK0_INFO0_PAGE_CFG_0 | 0xbc |
BANK0_INFO0_PAGE_CFG_1 | 0xc0 |
BANK0_INFO0_PAGE_CFG_2 | 0xc4 |
BANK0_INFO0_PAGE_CFG_3 | 0xc8 |
BANK0_INFO0_PAGE_CFG_4 | 0xcc |
BANK0_INFO0_PAGE_CFG_5 | 0xd0 |
BANK0_INFO0_PAGE_CFG_6 | 0xd4 |
BANK0_INFO0_PAGE_CFG_7 | 0xd8 |
BANK0_INFO0_PAGE_CFG_8 | 0xdc |
BANK0_INFO0_PAGE_CFG_9 | 0xe0 |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
BANK0_INFO1_REGWEN | 0xe4 |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Info1 page write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Page locked | Region can no longer be configured until next reset |
0x1 | Page enabled | Region can be configured |
Memory property configuration for info partition in bank0, Unlike data partition, each page is individually configured.
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
BANK0_INFO1_PAGE_CFG | 0xe8 |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
BANK0_INFO2_REGWEN_0 | 0xec |
BANK0_INFO2_REGWEN_1 | 0xf0 |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Info2 page write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Page locked | Region can no longer be configured until next reset |
0x1 | Page enabled | Region can be configured |
Memory property configuration for info partition in bank0, Unlike data partition, each page is individually configured.
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
BANK0_INFO2_PAGE_CFG_0 | 0xf4 |
BANK0_INFO2_PAGE_CFG_1 | 0xf8 |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
BANK1_INFO0_REGWEN_0 | 0xfc |
BANK1_INFO0_REGWEN_1 | 0x100 |
BANK1_INFO0_REGWEN_2 | 0x104 |
BANK1_INFO0_REGWEN_3 | 0x108 |
BANK1_INFO0_REGWEN_4 | 0x10c |
BANK1_INFO0_REGWEN_5 | 0x110 |
BANK1_INFO0_REGWEN_6 | 0x114 |
BANK1_INFO0_REGWEN_7 | 0x118 |
BANK1_INFO0_REGWEN_8 | 0x11c |
BANK1_INFO0_REGWEN_9 | 0x120 |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Info0 page write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Page locked | Region can no longer be configured until next reset |
0x1 | Page enabled | Region can be configured |
Memory property configuration for info partition in bank1, Unlike data partition, each page is individually configured.
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
BANK1_INFO0_PAGE_CFG_0 | 0x124 |
BANK1_INFO0_PAGE_CFG_1 | 0x128 |
BANK1_INFO0_PAGE_CFG_2 | 0x12c |
BANK1_INFO0_PAGE_CFG_3 | 0x130 |
BANK1_INFO0_PAGE_CFG_4 | 0x134 |
BANK1_INFO0_PAGE_CFG_5 | 0x138 |
BANK1_INFO0_PAGE_CFG_6 | 0x13c |
BANK1_INFO0_PAGE_CFG_7 | 0x140 |
BANK1_INFO0_PAGE_CFG_8 | 0x144 |
BANK1_INFO0_PAGE_CFG_9 | 0x148 |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
BANK1_INFO1_REGWEN | 0x14c |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Info1 page write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Page locked | Region can no longer be configured until next reset |
0x1 | Page enabled | Region can be configured |
Memory property configuration for info partition in bank1, Unlike data partition, each page is individually configured.
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
BANK1_INFO1_PAGE_CFG | 0x150 |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply |
Memory region registers configuration enable.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
---|---|
BANK1_INFO2_REGWEN_0 | 0x154 |
BANK1_INFO2_REGWEN_1 | 0x158 |
{"reg": [{"name": "REGION", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | REGION |
Info2 page write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Page locked | Region can no longer be configured until next reset |
0x1 | Page enabled | Region can be configured |
Memory property configuration for info partition in bank1, Unlike data partition, each page is individually configured.
- Reset default:
0x9999999
- Reset mask:
0xfffffff
Name | Offset |
---|---|
BANK1_INFO2_PAGE_CFG_0 | 0x15c |
BANK1_INFO2_PAGE_CFG_1 | 0x160 |
{"reg": [{"name": "EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "RD_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "PROG_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "SCRAMBLE_EN", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "ECC_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "HE_EN", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:28 | Reserved | |||
27:24 | rw | 0x9 | HE_EN | Region is high endurance enabled. |
23:20 | rw | 0x9 | ECC_EN | Region is ECC enabled (both integrity and reliability ECC). |
19:16 | rw | 0x9 | SCRAMBLE_EN | Region is scramble enabled. |
15:12 | rw | 0x9 | ERASE_EN | Region can be erased |
11:8 | rw | 0x9 | PROG_EN | Region can be programmed |
7:4 | rw | 0x9 | RD_EN | Region can be read |
3:0 | rw | 0x9 | EN | Region enabled, following fields apply |
HW interface info configuration rule overrides
- Offset:
0x164
- Reset default:
0x99
- Reset mask:
0xff
{"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}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:8 | Reserved | |||
7:4 | rw | 0x9 | ECC_DIS | The 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:0 | rw | 0x9 | SCRAMBLE_DIS | The 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 configuration registers configuration enable.
- Offset:
0x168
- Reset default:
0x1
- Reset mask:
0x1
{"reg": [{"name": "BANK", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | BANK |
Bank register write enable. Once set to 0, it can longer be configured to 1
Value | Name | Description |
---|---|---|
0x0 | Bank locked | Bank can no longer be configured until next reset |
0x1 | Bank enabled | Bank can be configured |
Memory properties bank configuration
- Offset:
0x16c
- Reset default:
0x0
- Reset mask:
0x3
- Register enable:
BANK_CFG_REGWEN
{"reg": [{"name": "ERASE_EN_0", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "ERASE_EN_1", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 120}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:2 | Reserved | |||
1 | rw | 0x0 | ERASE_EN_1 | Bank wide erase enable |
0 | rw | 0x0 | ERASE_EN_0 | Bank wide erase enable |
Flash Operation Status
- Offset:
0x170
- Reset default:
0x0
- Reset mask:
0x3
{"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}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:2 | Reserved | |||
1 | rw | 0x0 | err | Flash operation error. Set by HW, cleared by SW. See ERR_CODE for more details. |
0 | rw | 0x0 | done | Flash operation done. Set by HW, cleared by SW |
Flash Controller Status
- Offset:
0x174
- Reset default:
0xa
- Reset mask:
0x3f
{"reg": [{"name": "rd_full", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "rd_empty", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_full", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_empty", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "init_wip", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "initialized", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 26}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:6 | Reserved | |||
5 | ro | 0x0 | initialized | Flash controller initialized |
4 | ro | 0x0 | init_wip | Flash controller undergoing init, inclusive of phy init |
3 | ro | 0x1 | prog_empty | Flash program FIFO empty, software must provide data |
2 | ro | 0x0 | prog_full | Flash program FIFO full |
1 | ro | 0x1 | rd_empty | Flash read FIFO empty |
0 | ro | 0x0 | rd_full | Flash read FIFO full, software must consume data |
Current flash fsm state
- Offset:
0x178
- Reset default:
0x0
- Reset mask:
0x7ff
{"reg": [{"name": "lcmgr_state", "bits": 11, "attr": ["ro"], "rotate": 0}, {"bits": 21}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:11 | Reserved | |||
10:0 | ro | x | lcmgr_state | Current lcmgr interface staet |
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:
0x17c
- Reset default:
0x0
- Reset mask:
0xff
{"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": "prog_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "prog_win_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "prog_type_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "update_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "macro_err", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 150}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:8 | Reserved | |||
7 | rw1c | 0x0 | macro_err | A recoverable error has been encountered in the flash macro. Please read the flash macro status registers for more details. |
6 | rw1c | 0x0 | update_err | A shadow register encountered an update error. This is an asynchronous error. |
5 | rw1c | 0x0 | prog_type_err | Flash program selected unavailable type, see PROG_TYPE_EN. This is a synchronous error. |
4 | rw1c | 0x0 | prog_win_err | Flash 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. |
3 | rw1c | 0x0 | prog_err | Flash program has an error. This could be a program integrity error, see STD_FAULT_STATUS. This is a synchronous error. |
2 | rw1c | 0x0 | rd_err | Flash 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. |
1 | rw1c | 0x0 | mp_err | Flash access has encountered an access permission error. Please see ERR_ADDR for exact address. This is a synchronous error. |
0 | rw1c | 0x0 | op_err | Software has supplied an undefined operation. See CONTROL.OP for list of valid operations. |
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:
0x180
- Reset default:
0x0
- Reset mask:
0x1ff
{"reg": [{"name": "reg_intg_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_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": "arb_fsm_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "storage_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_fsm_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "ctrl_cnt_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "fifo_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 23}], "config": {"lanes": 1, "fontsize": 10, "vspace": 160}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:9 | Reserved | |||
8 | ro | 0x0 | fifo_err | Flash primitive fifo's have encountered a count error. |
7 | ro | 0x0 | ctrl_cnt_err | Flash ctrl read/prog has encountered a count error. |
6 | ro | 0x0 | phy_fsm_err | A flash phy fsm has encountered a sparse encoding error. |
5 | ro | 0x0 | storage_err | A shadow register encountered a storage error. |
4 | ro | 0x0 | arb_fsm_err | The arbiter fsm has encountered a sparse encoding error. |
3 | ro | 0x0 | lcmgr_intg_err | The 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. |
2 | ro | 0x0 | lcmgr_err | The life cycle management interface has encountered a fatal error. The error is either an FSM sparse encoding error or a count error. |
1 | ro | 0x0 | prog_intg_err | The flash controller encountered a program data transmission integrity error. |
0 | ro | 0x0 | reg_intg_err | The flash controller encountered a register integrity error. |
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:
0x184
- Reset default:
0x0
- Reset mask:
0xfff
{"reg": [{"name": "op_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "mp_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "rd_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_win_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_type_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "seed_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_relbl_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "phy_storage_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "spurious_ack", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "arb_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "host_gnt_err", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 20}], "config": {"lanes": 1, "fontsize": 10, "vspace": 170}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:12 | Reserved | |||
11 | ro | 0x0 | host_gnt_err | A host transaction was granted with illegal properties. |
10 | ro | 0x0 | arb_err | The phy arbiter encountered inconsistent results. |
9 | ro | 0x0 | spurious_ack | The flash emitted an unexpected acknowledgement. |
8 | ro | 0x0 | phy_storage_err | The flash macro encountered a storage integrity ECC error. |
7 | ro | 0x0 | phy_relbl_err | The flash macro encountered a storage reliability ECC error. |
6 | ro | 0x0 | seed_err | The seed reading process encountered an unexpected error. |
5 | ro | 0x0 | prog_type_err | The flash life cycle management interface encountered a program type error. A program type not supported by the flash macro was issued. |
4 | ro | 0x0 | prog_win_err | The flash life cycle management interface encountered a program resolution error. |
3 | ro | 0x0 | prog_err | The flash life cycle management interface encountered a program error. This could be a program integirty eror, see STD_FAULT_STATUS for more details. |
2 | ro | 0x0 | rd_err | The 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. |
1 | ro | 0x0 | mp_err | The flash life cycle management interface encountered a memory permission error. |
0 | ro | 0x0 | op_err | The flash life cycle management interface has supplied an undefined operation. See CONTROL.OP for list of valid operations. |
Synchronous error address
- Offset:
0x188
- Reset default:
0x0
- Reset mask:
0xfffff
{"reg": [{"name": "ERR_ADDR", "bits": 20, "attr": ["ro"], "rotate": 0}, {"bits": 12}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:20 | Reserved | |||
19:0 | ro | 0x0 | ERR_ADDR |
Total number of single bit ECC error count
- Offset:
0x18c
- Reset default:
0x0
- Reset mask:
0xffff
{"reg": [{"name": "ECC_SINGLE_ERR_CNT_0", "bits": 8, "attr": ["rw"], "rotate": -90}, {"name": "ECC_SINGLE_ERR_CNT_1", "bits": 8, "attr": ["rw"], "rotate": -90}, {"bits": 16}], "config": {"lanes": 1, "fontsize": 10, "vspace": 220}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:16 | Reserved | |||
15:8 | rw | 0x0 | ECC_SINGLE_ERR_CNT_1 | This count will not wrap when saturated |
7:0 | rw | 0x0 | ECC_SINGLE_ERR_CNT_0 | This count will not wrap when saturated |
Latest address of ECC single err
- Reset default:
0x0
- Reset mask:
0xfffff
Name | Offset |
---|---|
ECC_SINGLE_ERR_ADDR_0 | 0x190 |
ECC_SINGLE_ERR_ADDR_1 | 0x194 |
{"reg": [{"name": "ECC_SINGLE_ERR_ADDR", "bits": 20, "attr": ["ro"], "rotate": 0}, {"bits": 12}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:20 | Reserved | |||
19:0 | ro | 0x0 | ECC_SINGLE_ERR_ADDR | Latest single error address for this bank |
Phy alert configuration
- Offset:
0x198
- Reset default:
0x0
- Reset mask:
0x3
{"reg": [{"name": "alert_ack", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "alert_trig", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 120}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:2 | Reserved | |||
1 | rw | 0x0 | alert_trig | Trigger flash phy alert |
0 | rw | 0x0 | alert_ack | Acknowledge flash phy alert |
Flash Phy Status
- Offset:
0x19c
- Reset default:
0x6
- Reset mask:
0x7
{"reg": [{"name": "init_wip", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_normal_avail", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "prog_repair_avail", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 29}], "config": {"lanes": 1, "fontsize": 10, "vspace": 190}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:3 | Reserved | |||
2 | ro | 0x1 | prog_repair_avail | Program repair supported |
1 | ro | 0x1 | prog_normal_avail | Normal program supported |
0 | ro | 0x0 | init_wip | Flash phy controller initializing |
Flash Controller Scratch
- Offset:
0x1a0
- Reset default:
0x0
- Reset mask:
0xffffffff
{"reg": [{"name": "data", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:0 | rw | 0x0 | data | Flash ctrl scratch register |
Programmable depth where FIFOs should generate interrupts
- Offset:
0x1a4
- Reset default:
0xf0f
- Reset mask:
0x1f1f
{"reg": [{"name": "PROG", "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}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:13 | Reserved | |||
12:8 | rw | 0xf | RD | When the read FIFO fills to this level, trigger an interrupt. Default value is set such that interrupt does not trigger at reset. |
7:5 | Reserved | |||
4:0 | rw | 0xf | PROG | When the program FIFO drains to this level, trigger an interrupt. Default value is set such that interrupt does not trigger at reset. |
Reset for flash controller FIFOs
- Offset:
0x1a8
- Reset default:
0x0
- Reset mask:
0x1
{"reg": [{"name": "EN", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:1 | Reserved | |||
0 | rw | 0x0 | EN | Active 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. |
Current program and read fifo depth
- Offset:
0x1ac
- Reset default:
0x0
- Reset mask:
0x1f1f
{"reg": [{"name": "PROG", "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}}
Bits | Type | Reset | Name | Description |
---|---|---|---|---|
31:13 | Reserved | |||
12:8 | ro | 0x0 | RD | Current read fifo depth |
7:5 | Reserved | |||
4:0 | ro | 0x0 | PROG | Current program fifo depth |
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:
0x1b0
to0x1b0
- Size (words):
1
- Access:
wo
- Byte writes are not supported.
Flash read FIFO.
The FIFO is 16 entries of 4B flash words
- Word Aligned Offset Range:
0x1b4
to0x1b4
- Size (words):
1
- Access:
ro
- Byte writes are not supported.
Name | Offset | Length | Description |
---|---|---|---|
flash_ctrl.CSR0_REGWEN |
0x0 | 4 | |
flash_ctrl.CSR1 |
0x4 | 4 | |
flash_ctrl.CSR2 |
0x8 | 4 | |
flash_ctrl.CSR3 |
0xc | 4 | |
flash_ctrl.CSR4 |
0x10 | 4 | |
flash_ctrl.CSR5 |
0x14 | 4 | |
flash_ctrl.CSR6 |
0x18 | 4 | |
flash_ctrl.CSR7 |
0x1c | 4 | |
flash_ctrl.CSR8 |
0x20 | 4 | |
flash_ctrl.CSR9 |
0x24 | 4 | |
flash_ctrl.CSR10 |
0x28 | 4 | |
flash_ctrl.CSR11 |
0x2c | 4 | |
flash_ctrl.CSR12 |
0x30 | 4 | |
flash_ctrl.CSR13 |
0x34 | 4 | |
flash_ctrl.CSR14 |
0x38 | 4 | |
flash_ctrl.CSR15 |
0x3c | 4 | |
flash_ctrl.CSR16 |
0x40 | 4 | |
flash_ctrl.CSR17 |
0x44 | 4 | |
flash_ctrl.CSR18 |
0x48 | 4 | |
flash_ctrl.CSR19 |
0x4c | 4 | |
flash_ctrl.CSR20 |
0x50 | 4 |
- Offset:
0x0
- Reset default:
0x1
- Reset mask:
0x1
{"reg": [{"name": "field0", "bits": 1, "attr": ["rw0c"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw0c | 0x1 | field0 |
All values are reserved.
- Offset:
0x4
- Reset default:
0x0
- Reset mask:
0x1fff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 5, "attr": ["rw"], "rotate": 0}, {"bits": 19}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:13 | Reserved | ||
12:8 | rw | 0x0 | field1 |
7:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x8
- Reset default:
0x0
- Reset mask:
0xff
{"reg": [{"name": "field0", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field1", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field2", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field3", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "field4", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field5", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field6", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field7", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:8 | Reserved | ||
7 | rw | 0x0 | field7 |
6 | rw1c | 0x0 | field6 |
5 | rw1c | 0x0 | field5 |
4 | rw1c | 0x0 | field4 |
3 | rw | 0x0 | field3 |
2 | rw1c | 0x0 | field2 |
1 | rw1c | 0x0 | field1 |
0 | rw1c | 0x0 | field0 |
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
- Offset:
0xc
- Reset default:
0x0
- Reset mask:
0xfffffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "field2", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field3", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field4", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field5", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field6", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "field7", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field8", "bits": 2, "attr": ["rw"], "rotate": -90}, {"name": "field9", "bits": 2, "attr": ["rw"], "rotate": -90}, {"bits": 4}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:28 | Reserved | ||
27:26 | rw | 0x0 | field9 |
25:24 | rw | 0x0 | field8 |
23:21 | rw | 0x0 | field7 |
20 | rw | 0x0 | field6 |
19:17 | rw | 0x0 | field5 |
16:14 | rw | 0x0 | field4 |
13:11 | rw | 0x0 | field3 |
10:8 | rw | 0x0 | field2 |
7:4 | rw | 0x0 | field1 |
3:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
- Offset:
0x10
- Reset default:
0x0
- Reset mask:
0xfff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field1", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field2", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field3", "bits": 3, "attr": ["rw"], "rotate": -90}, {"bits": 20}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:12 | Reserved | ||
11:9 | rw | 0x0 | field3 |
8:6 | rw | 0x0 | field2 |
5:3 | rw | 0x0 | field1 |
2:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
- Offset:
0x14
- Reset default:
0x0
- Reset mask:
0x7fffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field1", "bits": 2, "attr": ["rw"], "rotate": -90}, {"name": "field2", "bits": 9, "attr": ["rw"], "rotate": 0}, {"name": "field3", "bits": 5, "attr": ["rw"], "rotate": 0}, {"name": "field4", "bits": 4, "attr": ["rw"], "rotate": 0}, {"bits": 9}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:23 | Reserved | ||
22:19 | rw | 0x0 | field4 |
18:14 | rw | 0x0 | field3 |
13:5 | rw | 0x0 | field2 |
4:3 | rw | 0x0 | field1 |
2:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
- Offset:
0x18
- Reset default:
0x0
- Reset mask:
0x1ffffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field1", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field2", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field3", "bits": 3, "attr": ["rw"], "rotate": -90}, {"name": "field4", "bits": 2, "attr": ["rw"], "rotate": -90}, {"name": "field5", "bits": 2, "attr": ["rw"], "rotate": -90}, {"name": "field6", "bits": 2, "attr": ["rw"], "rotate": -90}, {"name": "field7", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "field8", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 7}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:25 | Reserved | ||
24 | rw | 0x0 | field8 |
23 | rw | 0x0 | field7 |
22:21 | rw | 0x0 | field6 |
20:19 | rw | 0x0 | field5 |
18:17 | rw | 0x0 | field4 |
16:14 | rw | 0x0 | field3 |
13:6 | rw | 0x0 | field2 |
5:3 | rw | 0x0 | field1 |
2:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
All values are reserved.
- Offset:
0x1c
- Reset default:
0x0
- Reset mask:
0x1ffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 9, "attr": ["rw"], "rotate": 0}, {"bits": 15}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:17 | Reserved | ||
16:8 | rw | 0x0 | field1 |
7:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x20
- Reset default:
0x0
- Reset mask:
0xffffffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x24
- Reset default:
0x0
- Reset mask:
0xffffffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x28
- Reset default:
0x0
- Reset mask:
0xffffffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x2c
- Reset default:
0x0
- Reset mask:
0xffffffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x30
- Reset default:
0x0
- Reset mask:
0x3ff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 10, "attr": ["rw"], "rotate": 0}, {"bits": 22}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:10 | Reserved | ||
9:0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x34
- Reset default:
0x0
- Reset mask:
0x1fffff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 20, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 11}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:21 | Reserved | ||
20 | rw | 0x0 | field1 |
19:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x38
- Reset default:
0x0
- Reset mask:
0x1ff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 23}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:9 | Reserved | ||
8 | rw | 0x0 | field1 |
7:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x3c
- Reset default:
0x0
- Reset mask:
0x1ff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 23}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:9 | Reserved | ||
8 | rw | 0x0 | field1 |
7:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x40
- Reset default:
0x0
- Reset mask:
0x1ff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 23}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:9 | Reserved | ||
8 | rw | 0x0 | field1 |
7:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x44
- Reset default:
0x0
- Reset mask:
0x1ff
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 8, "attr": ["rw"], "rotate": 0}, {"name": "field1", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 23}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:9 | Reserved | ||
8 | rw | 0x0 | field1 |
7:0 | rw | 0x0 | field0 |
All values are reserved.
All values are reserved.
- Offset:
0x48
- Reset default:
0x0
- Reset mask:
0x1
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x4c
- Reset default:
0x0
- Reset mask:
0x1
- Register enable:
CSR0_REGWEN
{"reg": [{"name": "field0", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:1 | Reserved | ||
0 | rw | 0x0 | field0 |
All values are reserved.
- Offset:
0x50
- Reset default:
0x0
- Reset mask:
0x7
{"reg": [{"name": "field0", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field1", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "field2", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 29}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
Bits | Type | Reset | Name |
---|---|---|---|
31:3 | Reserved | ||
2 | ro | 0x0 | field2 |
1 | rw1c | 0x0 | field1 |
0 | rw1c | 0x0 | field0 |
All values are reserved.
All values are reserved.
All values are reserved.
This interface does not expose any registers.