8 Product Memory Mapping Overview
Note:
- Access attempts to any unimplemented memory location generates a bus error.
- The PUKCC space is fixed as non-cacheable and bufferable.
- The QSPI space “cacheable and bufferable” attribute is controlled using CFGCON1.QSCHE_EN.
Register Name | Reset value from NVR memory? | Writable in User Mode? | Corresponding Write Lock Bit(s) | Purpose | |
---|---|---|---|---|---|
System Configuration | |||||
CFGCON0(L) | 0x4400_0000 | X | X | CFGLOCK[1:0] | Misc. System Configuration |
CFGCON1(L) | 0x4400_0010 | X | X | CFGLOCK[1:0] | Misc. System Configuration |
CFGCON2(L) | 0x4400_0020 | X | X | CFGLOCK[1:0] | Misc. System Configuration |
CFGCON3 | 0x4400_0030 | — | X | CFGLOCK[1:0] | Misc. System Configuration |
CFGCON4(L) | 0x4400_0040 | X | X | CFGLOCK[1:0] | Misc. System Configuration |
CFGPGQOS | 0x4400_0050 | — | X | CFGCON0.PGLOCK | Bus Matrix Permission Groups |
CFGPCLKGEN1 | 0x4400_0060 | — | X | CFGLOCK[1:0] | Peripheral Clock Gen Reg-1 |
CFGPCLKGEN2 | 0x4400_0070 | — | X | CFGLOCK[1:0] | Peripheral Clock Gen Reg-2 |
CFGPCLKGEN3 | 0x4400_0080 | — | X | CFGLOCK[1:0] | Peripheral Clock Gen Reg-3 |
ID2 | 0x4400_0090 | X | — | N/A- Read Only | 32-bit Device ID |
USER_ID(L) | 0x4400_00A0 | X | X | CFGLOCK[1:0] | 16-bit User ID |
SYSKEY | 0x4400_00B0 | — | X | Sequence | System Lock feature |
PMD1 | 0x4400_00C0 | — | X | CFGCON0.PMDLOCK | Peripheral Module Disable |
PMD2 | 0x4400_00D0 | — | X | CFGCON0.PMDLOCK | Peripheral Module Disable |
PMD3 | 0x4400_00E0 | — | X | CFGCON0.PMDLOCK | Peripheral Module Disable |
Boot Configuration | |||||
BCFG0 | 0x4400_0200 | X | — | None | Pre-boot user configuration |
Note:
- Registers marked with (L) are loadable from Flash, and they can be controlled by software after the boot with the correct unlock sequence.
- ID Register is a JTAB ID register, maintained for legacy reasons. The actual external-facing ID register is DSU.DID register. See DID register in the Device Service Unit (DSU) from Related Links.
Peripheral | TA Clock | Size (Bytes) | Virtual Address | Physical Address | |||
---|---|---|---|---|---|---|---|
ABRV. | Description | Start | End | Start | End | ||
CM4 System Components accessible via CM4 PPB Bus (Only DAP and CM4 can access the registers) | Base Address 0xE000_0000 | Base Address 0xE000_0000 | |||||
ITM | Inst. TM | SYS_CLK | 4 KB | 0000_0000 | 0000_0FFF | 0000_0000 | 0000_0FFF |
DWT | Data WT | SYS_CLK | 4 KB | 0000_1000 | 0000_1FFF | 0000_1000 | 0000_1FFF |
FPB | Flash PB | SYS_CLK | 4 KB | 0000_2000 | 0000_2FFF | 0000_2000 | 0000_2FFF |
RSVD | Reserved | — | 4 KB*n | 0000_3000 | 0000_DFFF | 0000_3000 | 0000_DFFF |
SCS | Sys. CS | SYS_CLK | 4 KB | 0000_E000 | 0000_EFFF | 0000_E000 | 0000_EFFF |
RSVD | Reserved | — | 4 KB*n | 0000_F000 | 0003_FFFF | 0000_F000 | 0003_FFFF |
TPIU | Trace PIU | SYS_CLK | 4 KB | 0004_0000 | 0004_0FFF | 0004_0000 | 0004_0FFF |
ETM | ETM | SYS_CLK | 4 KB | 0004_1000 | 0004_1FFF | 0004_1000 | 0004_1FFF |
ETB | ETB | SYS_CLK | 4 KB | 0004_2000 | 0004_2FFF | 0004_2000 | 0004_2FFF |
RSVD | Reserved | — | 4 KB*n | 0004_3000 | 000F_EFFF | 0004_3000 | 000F_EFFF |
CROM | CSight ROM | SYS_CLK | 4 KB | 000F_F000 | 000F_FFFF | 000F_F000 | 000F_FFFF |
RSVD | Reserved | — | 4 KB*n | 0010_0000 | FFFF_FFFF | 0010_0000 | FFFF_FFFF |
Note:
- All system and debug components carry a unique ID accessible via its own register space.
- The DAP derives the base address of the components from CROM entry values.
- Component Base address = CROM Base address + CROM Entry value.
- Core sight ROM entries are not provided in this document.
- Refer to CM4F documentation for details on each component register space (developer.arm.com/documentation/ddi0439/b/System-Control/Register-summary).