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).
