Flash Interface
Address |
Register Name |
Register Write |
Register Read |
Default |
Description |
---|---|---|---|---|---|
0x40000800 |
FLASH0_IF_CTRL |
(16) NOT_LOAD_AUTO |
(16) NOT_LOAD_AUTO |
0x0 |
Do not automatically load the configuration registers and the patch information from MNVR sector after the command WAKEUP is completed. |
|
|
(12) VREAD1_MODE |
(12) VREAD1_MODE |
0x0 |
Control VREAD1: Read data after erase with more stringent condition than normal read. Changing this bit will execute the CMD_SET_VREAD1 or CMD_UNSET_VREAD1 command. |
|
|
(10) RECALL |
(10) RECALL |
0x0 |
Set the recall pins mode during CMD_READ. Changing this bit will execute the CMD_SET_RECALL or CMD_UNSET_RECALL command. |
|
|
(9:8) RETRY |
(9:8) RETRY |
0x0 |
Configures the erase retry iteration. This impacts the Flash endurance time. Also used by Flash programming. |
|
|
(0) LP_MODE |
(0) LP_MODE |
0x0 |
Set the low power mode. Changing this bit will execute the CMD_SET_LOW_POWER or CMD_UNSET_LOW_POWER command. |
0x40000804 |
FLASH0_MAIN_WRITE_UNLOCK |
(31:0) UNLOCK_KEY |
- |
N/A |
32-bit key to allow for write accesses into the Flash MAIN Block |
0x40000808 |
FLASH0_MAIN_CTRL |
(11) DATA_A_35K_TO_40K_W_EN |
(11) DATA_A_35K_TO_40K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 35K to 40K word block through the FLASH_IF registers. |
|
|
(10) DATA_A_30K_TO_35K_W_EN |
(10) DATA_A_30K_TO_35K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 30K to 35K word block through the FLASH_IF registers. |
|
|
(9) DATA_A_25K_TO_30K_W_EN |
(9) DATA_A_25K_TO_30K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 25K to 30K word block through the FLASH_IF registers. |
|
|
(8) DATA_A_20K_TO_25K_W_EN |
(8) DATA_A_20K_TO_25K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 20K to 25K word block through the FLASH_IF registers. |
|
|
(7) DATA_A_15K_TO_20K_W_EN |
(7) DATA_A_15K_TO_20K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 15K to 20K word block through the FLASH_IF registers. |
|
|
(6) DATA_A_10K_TO_15K_W_EN |
(6) DATA_A_10K_TO_15K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 10K to 15K word block through the FLASH_IF registers. |
|
|
(5) DATA_A_5K_TO_10K_W_EN |
(5) DATA_A_5K_TO_10K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 5K to 10K word block through the FLASH_IF registers. |
|
|
(4) DATA_A_0K_TO_5K_W_EN |
(4) DATA_A_0K_TO_5K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Data array from 0 to 5K word block through the FLASH_IF registers. |
|
|
(3) CODE_A_66K_TO_88K_W_EN |
(3) CODE_A_66K_TO_88K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Code array from 66K to 88K word block through the FLASH_IF registers. |
|
|
(2) CODE_A_44K_TO_66K_W_EN |
(2) CODE_A_44K_TO_66K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Code array from 44K to 66K word block through the FLASH_IF registers. |
|
|
(1) CODE_A_22K_TO_44K_W_EN |
(1) CODE_A_22K_TO_44K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Code array from 22K to 44K word block through the FLASH_IF registers. |
|
|
(0) CODE_A_0K_TO_22K_W_EN |
(0) CODE_A_0K_TO_22K_W_EN |
0x0 |
Authorize the write access to the Flash MAIN Code array from 0 to 22K word block through the FLASH_IF registers. |
0x4000080C |
FLASH0_DELAY_CTRL |
(7) READ_MARGIN |
(7) READ_MARGIN |
0x0 |
Flash Read access time margin |
|
|
(3:0) SYSCLK_FREQ |
(3:0) SYSCLK_FREQ |
0x2 |
Configure Flash, memory and RF power-up delays |
0x40000830 |
FLASH0_CMD_CTRL |
(5) CMD_END |
- |
N/A |
Terminates an active Flash command if possible (e.g. sequential programming sequence) |
|
|
(4:0) COMMAND |
(4:0) COMMAND |
0x0 |
Flash access command only writable when equal to CMD_IDLE |
0x40000834 |
FLASH0_IF_STATUS |
- |
(31) TRIMMED_STATUS |
0x0 |
Flash trimming status |
|
|
- |
(30) ISOLATE_STATUS |
0x1 |
Flash isolate status |
|
|
- |
(29) PROG_SEQ_DATA_REQ |
0x0 |
Request new data while in sequential program mode |
|
|
- |
(28) BUSY |
0x0 |
Flash interface busy status bit |
|
|
- |
(27) DATA_RED2_W_UNLOCK |
0x0 |
Flash Data array RED2 write unlock status bit |
|
|
- |
(26) DATA_RED1_W_UNLOCK |
0x0 |
Flash Data array RED1 write unlock status bit |
|
|
- |
(25) CODE_RED2_W_UNLOCK |
0x0 |
Flash Code array RED2 write unlock status bit |
|
|
- |
(24) CODE_RED1_W_UNLOCK |
0x0 |
Flash Code array RED1 write unlock status bit |
|
|
- |
(22) NVR7_W_UNLOCK |
0x0 |
Flash NVR7 write unlock status bit |
|
|
- |
(21) NVR6_W_UNLOCK |
0x0 |
Flash NVR6 write unlock status bit |
|
|
- |
(20) NVR5_W_UNLOCK |
0x0 |
Flash NVR5 write unlock status bit |
|
|
- |
(19) NVR4_W_UNLOCK |
0x0 |
Flash NVR4 write unlock status bit |
|
|
- |
(18) NVR3_W_UNLOCK |
0x0 |
Flash NVR3 write unlock status bit |
|
|
- |
(17) NVR2_W_UNLOCK |
0x0 |
Flash NVR2 write unlock status bit |
|
|
- |
(16) NVR1_W_UNLOCK |
0x0 |
Flash NVR1 write unlock status bit |
|
|
- |
(15) NVR0_W_UNLOCK |
0x0 |
Flash NVR0 write unlock status bit |
|
|
- |
(11) DATA_A_35K_TO_40K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 35K to 40K of the Flash MAIN Data array |
|
|
- |
(10) DATA_A_30K_TO_35K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 30K to 35K of the Flash MAIN Data array |
|
|
- |
(9) DATA_A_25K_TO_30K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 25K to 30K of the Flash MAIN Data array |
|
|
- |
(8) DATA_A_20K_TO_25K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 20K to 25K of the Flash MAIN Data array |
|
|
- |
(7) DATA_A_15K_TO_20K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 15K to 20K of the Flash MAIN Data array |
|
|
- |
(6) DATA_A_10K_TO_15K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 10K to 15K of the Flash MAIN Data array |
|
|
- |
(5) DATA_A_5K_TO_10K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 5K to 10K of the Flash MAIN Data array |
|
|
- |
(4) DATA_A_0K_TO_5K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 0K to 5K of the Flash MAIN Data array |
|
|
- |
(3) CODE_A_66K_TO_88K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 66K to 88K of the Flash MAIN Code array |
|
|
- |
(2) CODE_A_44K_TO_66K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 44K to 66K of the Flash MAIN Code array |
|
|
- |
(1) CODE_A_22K_TO_44K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 22K to 44K of the Flash MAIN Code array |
|
|
- |
(0) CODE_A_0K_TO_22K_W_UNLOCK |
0x0 |
Write unlock status bit of the part 0K to 22K of the Flash MAIN Code array |
0x40000838 |
FLASH0_ADDR |
(20:2) FLASH_ADDR |
(20:2) FLASH_ADDR |
0x0 |
Flash Byte Address |
0x4000083C - 0x40000840 |
FLASH0_DATA_* |
(31:0) DATA |
(31:0) DATA |
0x0 |
32-bit Flash Data |
0x40000844 |
FLASH0_NVR_WRITE_UNLOCK |
(31:0) UNLOCK_KEY |
- |
N/A |
32-bit key to allow for write access to NVR sectors of the Flash |
0x40000848 |
FLASH0_NVR_CTRL |
(7) NVR7_W_EN |
(7) NVR7_W_EN |
0x0 |
Authorize write access to the Flash NVR7 sector through the FLASH_IF registers. |
|
|
(6) NVR6_W_EN |
(6) NVR6_W_EN |
0x0 |
Authorize write access to the Flash NVR6 sector through the FLASH_IF registers. |
|
|
(5) NVR5_W_EN |
(5) NVR5_W_EN |
0x0 |
Authorize write access to the Flash NVR5 sector through the FLASH_IF registers. |
|
|
(4) NVR4_W_EN |
(4) NVR4_W_EN |
0x0 |
Authorize write access to the Flash NVR4 sector through the FLASH_IF registers. |
|
|
(3) NVR3_W_EN |
(3) NVR3_W_EN |
0x0 |
Authorize write access to the Flash NVR3 sector through the FLASH_IF registers. |
|
|
(2) NVR2_W_EN |
(2) NVR2_W_EN |
0x0 |
Authorize write access to the Flash NVR2 sector through the FLASH_IF registers. |
|
|
(1) NVR1_W_EN |
(1) NVR1_W_EN |
0x0 |
Authorize write access to the Flash NVR1 sector through the FLASH_IF registers. |
|
|
(0) NVR0_W_EN |
(0) NVR0_W_EN |
0x0 |
Authorize write access to the Flash NVR0 sector through the FLASH_IF registers. |
0x40000864 - 0x40000880 |
FLASH0_PATCH_ADDR_* |
(31) PATCH_NOT_VALID |
(31) PATCH_NOT_VALID |
0x1 |
Indicates if the patch address is valid |
|
|
(20:8) PATCH_ADDR |
(20:8) PATCH_ADDR |
0x1FFF |
|
0x4000088C |
FLASH0_COPY_CFG |
(18) COMP_ADDR_STEP |
(18) COMP_ADDR_STEP |
0x0 |
Comparator address increment/decrement by 1 or 2 |
|
|
(17) COMP_ADDR_DIR |
(17) COMP_ADDR_DIR |
0x1 |
Comparator address-up or address-down |
|
|
(16) COMP_MODE |
(16) COMP_MODE |
0x0 |
Comparator Mode |
|
|
(9) COPY_DEST |
(9) COPY_DEST |
0x0 |
Destination copier is the CRC or memories |
|
|
(8) COPY_MODE |
(8) COPY_MODE |
0x0 |
Select copier mode (32-bit or 40-bit) |
|
|
(1) PRIORITY |
(1) PRIORITY |
0x0 |
Copier Priority Configuration |
|
|
(0) MODE |
(0) MODE |
0x0 |
Copier or Comparator Mode Configuration |
0x40000898 |
FLASH0_COPY_CTRL |
- |
(3) ERROR |
0x0 |
Error status |
|
|
(2) STOP |
- |
N/A |
Stop the transfer |
|
|
(1) START |
- |
N/A |
Start the transfer |
|
|
- |
(0) BUSY |
0x0 |
Busy status |
0x4000089C |
FLASH0_COPY_SRC_ADDR_PTR |
(20:0) COPY_SRC_ADDR_PTR |
(20:0) COPY_SRC_ADDR_PTR |
0x0 |
Source address pointer |
0x400008A0 |
FLASH0_COPY_DST_ADDR_PTR |
(31:2) COPY_DST_ADDR_PTR |
(31:2) COPY_DST_ADDR_PTR |
0x0 |
Destination address pointer |
0x400008A4 |
FLASH0_COPY_WORD_CNT |
(16:0) COPY_WORD_CNT |
(16:0) COPY_WORD_CNT |
0x0 |
Number of words to copy / compare |
0x400008A8 |
FLASH0_ECC_CTRL |
(15:8) ECC_COR_CNT_INT_THRESHOLD |
(15:8) ECC_COR_CNT_INT_THRESHOLD |
0x1 |
Select the number of corrected errors before sending a CM33 interrupt |
|
|
(3) COPIER_ECC_CTRL |
(3) COPIER_ECC_CTRL |
0x1 |
|
|
|
(2) CMD_ECC_CTRL |
(2) CMD_ECC_CTRL |
0x1 |
|
|
|
(0) CBUS_ECC_CTRL |
(0) CBUS_ECC_CTRL |
0x1 |
Select the operating mode of the Flash ECC |
0x400008AC |
FLASH0_ECC_STATUS |
(6) ECC_COR_ERROR_CNT_CLEAR |
- |
N/A |
Reset the Flash corrected errors counter |
|
|
(5) ECC_UNCOR_ERROR_CNT_CLEAR |
- |
N/A |
Reset the Flash uncorrected errors counter |
|
|
(4) ECC_ERROR_ADDR_CLEAR |
- |
N/A |
Reset the Flash address of the last detected error |
|
|
- |
(1) ECC_COR_ERROR_CNT_STATUS |
0x0 |
FLASH_ECC_ERROR_COR_CNT status |
|
|
- |
(0) ECC_UNCOR_ERROR_CNT_STATUS |
0x0 |
FLASH_ECC_ERROR_UNCOR_CNT status |
0x400008B0 |
FLASH0_ECC_ERROR_ADDR |
- |
(20:2) ECC_ERROR_ADDR |
0x0 |
Store the Flash address of the latest Flash ECC error |
0x400008B4 |
FLASH0_ECC_UNCOR_ERROR_CNT |
- |
(7:0) ECC_UNCOR_ERROR_CNT |
0x0 |
Flash ECC uncorrected error counter |
0x400008B8 |
FLASH0_ECC_COR_ERROR_CNT |
- |
(7:0) ECC_COR_ERROR_CNT |
0x0 |
Flash ECC corrected error counter |
0x400008BC |
FLASH0_NVM_STATUS |
(16) CLEAR_NVM_STATUS |
- |
N/A |
Clear all the NVM status bits |
|
|
- |
(8) NVM_BIT_FAILURE |
0x0 |
Indicates if a bit has failed in an address from the CC-NVM layout used by the CryptoCell |
|
|
- |
(5:0) FAILED_NVM_ADDRESS |
0x0 |
Last failing word address in CC-NVM layout (0x00 to 0x3F) |
0x400008C0 |
FLASH0_MAIN_MASK |
- |
(11) DATA_A_35K_TO_40K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 35K to 40K word block through the FLASH_IF registers. |
|
|
- |
(10) DATA_A_30K_TO_35K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 30K to 35K word block through the FLASH_IF registers. |
|
|
- |
(9) DATA_A_25K_TO_30K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 25K to 30K word block through the FLASH_IF registers. |
|
|
- |
(8) DATA_A_20K_TO_25K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 20K to 25K word block through the FLASH_IF registers. |
|
|
- |
(7) DATA_A_15K_TO_20K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 15K to 20K word block through the FLASH_IF registers. |
|
|
- |
(6) DATA_A_10K_TO_15K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 10K to 15K word block through the FLASH_IF registers. |
|
|
- |
(5) DATA_A_5K_TO_10K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 5K to 10K word block through the FLASH_IF registers. |
|
|
- |
(4) DATA_A_0K_TO_5K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Data array from 0 to 5K word block through the FLASH_IF registers. |
|
|
- |
(3) CODE_A_66K_TO_88K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Code array from 66K to 88K word block through the FLASH_IF registers. |
|
|
- |
(2) CODE_A_44K_TO_66K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Code array from 44K to 66K word block through the FLASH_IF registers. |
|
|
- |
(1) CODE_A_22K_TO_44K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Code array from 22K to 44K word block through the FLASH_IF registers. |
|
|
- |
(0) CODE_A_0K_TO_22K_W_MASK |
0x1 |
Authorize the access to the Flash MAIN Code array from 0 to 22K word block through the FLASH_IF registers. |
0x400008FC |
FLASH0_IF_ID_NUM |
- |
(20) FLASH_IF_NVR_FOR_CC312 |
0x0 |
NVR sectors 0 to 3 are used for the CryptoCell |
|
|
- |
(19:16) FLASH_IF_NUMBER |
0x0 |
FLASH_IF Instance number |
|
|
- |
(15:8) FLASH_IF_MAJOR_REVISION |
0x1 |
FLASH_IF Major Revision number |
|
|
- |
(7:0) FLASH_IF_MINOR_REVISION |
0x0 |
FLASH_IF Minor Revision number |