2. Memory and bus architecture

2.1 System architecture

An AXI bus matrix, two AHB bus matrices and bus bridges allow interconnecting bus masters with bus slaves, as illustrated in Table 2 and Figure 1 .

Table 2. Bus-master-to-bus-slave interconnect

Bus slave / type (1)Bus master / type (1)
Cortex-M7 - AXIMCortex-M7 - AHBPCortex-M7 - ITCMCortex-M7 - DTCMSDMMC1MDMA - AXIMDMA - AHBSDMA2DLTDCDMA1 - MEMDMA1 - PERIPHDMA2 - MEMDMA2 - PERIPHEth. MAC - AHBSDMMC2 - AHBUSBHS1 - AHBBDMA - AHB
ITCM--X---X----------
DTCM---X--X----------
AHB3 peripheralsX----X---XXXXXXX-
APB3 peripheralsX----X---XXXXXXX-
Flash bank 1X---XX-XXXXXXXXX-
AXI SRAMX---XX-XXXXXXXXX-
RAM shared between ITCM and AXIX---XX-XXXXXXXXX-
OCTOSPIX---XX-XXXXXXXXX-
FMCX---XX-XXXXXXXXX-
SRAM1X----X-X-XXXXXXX-
SRAM2X----X-X-XXXXXXX-
AHB1 peripherals-X---X-X-XXXX-X--
APB1 peripherals-X---X-X-XXXX-X--
AHB2 peripherals-X-------XXXX-X--
APB2 peripherals-X---X-X-XXXX-X--
AHB4 peripheralsX----X---XXXX-X-X
APB4 peripheralsX----X---XXXX-X-X
SRAM4X----X---XXXX-X-X
Backup RAMX----X---XXXX-X-X

1. Bold font type denotes 64-bit bus, plain type denotes 32-bit bus.

2. “X” = access possible, “-” = access not possible, shading = access useful/usable.

Figure 1. System architecture

System architecture diagram showing D1, D2, and D3 domains with their respective bus matrices and connected components.

The diagram illustrates the system architecture, organized into three main domains:

Legend:

System architecture diagram showing D1, D2, and D3 domains with their respective bus matrices and connected components.

MSV46613V3

2.1.1 Bus matrices

AXI bus matrix in D1 domain

The D1 domain multi AXI bus matrix ensures and arbitrates concurrent accesses from multiple masters to multiple slaves. This allows efficient simultaneous operation of high-speed peripherals.

The arbitration uses a round-robin algorithm with QoS capability.

Refer to Section 2.2: AXI interconnect matrix (AXIM) for more information on AXI interconnect.

AHB bus matrices in D2 and D3 domains

The AHB bus matrices in D2 and D3 domains ensure and arbitrate concurrent accesses from multiple masters to multiple slaves. This allows efficient simultaneous operation of high-speed peripherals.

The arbitration uses a round-robin algorithm.

2.1.2 TCM buses

The DTCM and ITCM (data and instruction tightly coupled RAMs) are connected through dedicated TCM buses directly to the Cortex-M7 core. The MDMA controller can access the DTCM and ITCM through AHBS, a specific CPU slave AHB. The DTCM and ITCM are accessed by Cortex-M7 at CPU clock speed, with zero wait states.

2.1.3 Bus-to-bus bridges

To allow peripherals with different types of buses to communicate together, there is a number of bus-to-bus bridges in the system.

The AHB/APB bridges in D1 and D3 domains allow connecting peripherals on APB3 and APB4 to AHB3 and AHB4, respectively. The AHB/APB bridges in D2 domain allow peripherals on APB1 and APB2 to connect to AHB1. These AHB/APB bridges provide full synchronous interfacing, which allows the APB peripherals to operate with clocks independent of AHB that they connect to.

The AHB/APB bridges also allow APB1 and APB2 peripherals to connect to DMA1 and DMA2 peripheral buses, respectively, without transiting through AHB1.

The AHB/APB bridges convert 8-bit / 16-bit APB data to 32-bit AHB data, by replicating it to the three upper bytes / the upper half-word of the 32-bit word.

The AXI bus matrix incorporates AHB/AXI bus bridge functionality on its slave bus interfaces. The AXI/AHB bus bridges on its master interfaces marked as 32-bit in Figure 1 are outside the matrix.

The Cortex-M7 CPU provides AHB/TCM-bus (ITCM and DTCM buses) translation from its AHBS slave AHB, allowing the MDMA controller to access the ITCM and DTCM.

2.1.4 Inter-domain buses

D2-to-D1 AHB

This 32-bit bus connects the D2 domain to the AXI bus matrix in the D1 domain. It allows bus masters in the D2 domain to access resources (bus slaves) in the D1 domain.

D1-to-D2 AHB

This 32-bit bus connects the D1 domain to the D2 domain AHB bus matrix. It allows bus masters in the D1 domain to access resources (bus slaves) in the D2 domain.

D1-to-D3 AHB

This 32-bit bus connects the D1 domain to the D3 domain AHB bus matrix. It allows bus masters in the D1 domain to access resources (bus slaves) in the D3 domain.

D2-to-D3 AHB

This 32-bit bus connects the D2 domain to the D3 domain AHB bus matrix. It allows bus masters in the D2 domain to access resources (bus slaves) in the D3 domain.

2.1.5 CPU buses

Cortex ® -M7 AXIM bus

The Cortex ® -M7 CPU uses the 64-bit AXIM bus to access all memories (excluding ITCM, and DTCM) and AHB3, AHB4, APB3 and APB4 peripherals (excluding AHB1, APB1 and APB2 peripherals).

The AXIM bus connects the CPU to the AXI bus matrix in the D1 domain.

Cortex ® -M7 ITCM bus

The Cortex ® -M7 CPU uses the 64-bit ITCM bus for fetching instructions from and accessing data in the ITCM.

Cortex ® -M7 DTCM bus

The Cortex ® -M7 CPU uses the 2x32-bit DTCM bus for accessing data in the DTCM. The 2x32-bit DTCM bus allows load/load and load/store instruction pairs to be dual-issued on the DTCM memory. It can also fetch instructions.

Cortex ® -M7 AHBS bus

The Cortex ® -M7 CPU uses the 32-bit AHBS slave bus to allow the MDMA controller to access the ITCM and the DTCM.

Cortex ® -M7 AHBP bus

The Cortex ® -M7 CPU uses the 32-bit AHBP bus for accessing AHB1, AHB2, APB1 and APB2 peripherals via the AHB bus matrix in the D2 domain.

2.1.6 Bus master peripherals

SDMMC1

The SDMMC1 uses a 32-bit bus, connected to the AXI bus matrix, through which it can access internal AXI SRAM and Flash memories, and external memories through the Octo-SPI controller and the FMC.

SDMMC2

The SDMMC2 uses a 32-bit bus, connected to the AHB bus matrix in D2 domain. Through the system bus matrices, it can access the internal AXI SRAM, SRAM1, SRAM2, SRAM4, backup RAM, Flash memory, and external memories through the Octo-SPI controller and the FMC.

MDMA controller

The MDMA controller has two bus masters: an AXI 64-bit bus, connected to the AXI bus matrix and an AHB 32-bit bus connected to the Cortex-M7 AHBS slave bus.

The MDMA is optimized for DMA data transfers between memories since it supports linked list transfers that allow performing a chained list of transfers without the need for CPU intervention. Through the system bus matrices and the Cortex-M7 AHBS slave bus, the MDMA can access all internal and external memories through the Octo-SPI controller and the FMC.

DMA1 and DMA2 controllers

The DMA1 and DMA2 controllers have two 32-bit buses - memory bus and peripheral bus, connected to the AHB bus matrix in D2 domain.

The memory bus allows DMA data transfers between memories. Through the system bus matrices, the memory bus can access all internal memories except ITCM and DTCM, and external memories through the Octo-SPI controller and the FMC.

The peripheral bus allows DMA data transfers between two peripherals, between two memories or between a peripheral and a memory. Through the system bus matrices, the peripheral bus can access all internal memories except ITCM and DTCM, external memories through the Octo-SPI controller and the FMC, and all AHB and APB peripherals. A direct access to APB1 and APB2 is available, without passing through AHB1. Direct path to APB1 and APB2 bridges allows reducing the bandwidth usage on AHB1 bus by improving data treatment efficiency for APB and AHB peripherals.

BDMA controller

The BDMA controller uses a 32-bit bus, connected to the AHB bus matrix in D3 domain, for DMA data transfers between two peripherals, between two memories or between a peripheral and a memory. BDMA transfers are limited to the D3 domain resources. It can access the internal SRAM4, backup RAM, and AHB4 and APB4 peripherals through the AHB bus matrix in the D3 domain.

Chrom-Art Accelerator (DMA2D)

The DMA2D graphics accelerator uses a 64-bit bus, connected to the AXI bus matrix. Through the system bus matrices, internal AXI SRAM, SRAM1, SRAM2 and Flash memories, and external memories through the Octo-SPI controller and the FMC.

LCD-TFT controller (LTDC)

The LCD-TFT display controller, LTDC, uses a 64-bit bus, connected to the AXI bus matrix, through which it can access internal AXI SRAM and Flash memories, and external memories through the Octo-SPI controller and the FMC.

Ethernet MAC

The Ethernet MAC uses a 32-bit bus, connected to the AHB bus matrix in the D2 domain. Through the system bus matrices, it can access all internal memories except SRAM4, backup RAM, ITCM, DTCM and external memories, through the Octo-SPI controller and the FMC.

USBHS1 peripheral

The USBHS1 peripheral uses 32-bit buses, connected to the AHB bus matrix in the D2 domain. Through the system bus matrices, it can access all internal memories except SRAM4, backup RAM, ITCM, DTCM and external memories, through the Octo-SPI controller and the FMC.

2.1.7 Clocks to functional blocks

Upon reset, clocks to blocks such as peripherals and some memories are disabled (except for the SRAM, DTCM, ITCM and Flash memory). To operate a block with no clock upon reset, the software must first enable its clock through RCC_AHBxENR or RCC_APBxENR register, respectively.

2.2 AXI interconnect matrix (AXIM)

2.2.1 AXI introduction

The AXI (advanced extensible interface) interconnect is based on the Arm® CoreLink™ NIC-400 Network Interconnect. The interconnect has six initiator ports, or ASIBs (AMBA slave interface blocks), and eight target ports, or AMIBs (AMBA master interface blocks). The ASIBs are connected to the AMIBs via an AXI switch matrix.

Each ASIB is a slave on an AXI bus or AHB (advanced high-performance bus). Similarly, each AMIB is a master on an AXI or AHB bus. Where an ASIB or AMIB is connected to an AHB, it converts between the AHB and the AXI protocol.

The AXI interconnect includes a GPV (global programmer view) which contains registers for configuring certain parameters, such as the QoS (quality of service) level at each ASIB.

Any accesses to unallocated address space are handled by the default slave, which generates the return signals. This ensures that such transactions complete and do not block the issuing master and ASIB.

2.2.2 AXI interconnect main features

2.2.3 AXI interconnect functional description

Block diagram

The AXI interconnect is shown in Figure 2 .

Figure 2. AXI interconnect

Block diagram of the AXI interconnect showing Masters (D2 AHB, C-M7, SDMMC1, MDMA, DMA2D, LTDC) connected to ASIBs (INI 1-6), which are connected to an AXI switch matrix. The matrix is also connected to GPV and a default slave. The matrix connects to AMIBs (TARG 1-8), which are connected to Slaves (AXI/AHB bridge, Flash A, OCTO SPI2, FMC, OCTO SPI1, AXI SRAM, RAM shared between ITCM and AXI). The diagram also shows connections to AHB3 peripherals (D3 domain) and the D2 domain, with 32-bit and 64-bit bus widths indicated.
Block diagram of the AXI interconnect showing Masters (D2 AHB, C-M7, SDMMC1, MDMA, DMA2D, LTDC) connected to ASIBs (INI 1-6), which are connected to an AXI switch matrix. The matrix is also connected to GPV and a default slave. The matrix connects to AMIBs (TARG 1-8), which are connected to Slaves (AXI/AHB bridge, Flash A, OCTO SPI2, FMC, OCTO SPI1, AXI SRAM, RAM shared between ITCM and AXI). The diagram also shows connections to AHB3 peripherals (D3 domain) and the D2 domain, with 32-bit and 64-bit bus widths indicated.

ASIB configuration

Table 3 summarizes the characteristics of the ASIBs.

Table 3. ASIB configuration

ASIBConnected masterProtocolBus widthR/W issuing
INI 1AHB from D2 domainAHB-lite321/1
INI 2Cortex-M7AXI4647/32
INI 3SDMMC1AHB-lite321/1
INI 4MDMAAXI4644/1
Table 3. ASIB configuration (continued)
ASIBConnected masterProtocolBus widthR/W issuing
INI 5DMA2DAXI4642/1
INI 6LTDCAXI4641/1

AMIB configuration

Table 4 summarizes the characteristics of the AMIBs.

Table 4. AMIB configuration
AMIBConnected slaveProtocolBus widthR/W/Total acceptance
TARG 1Peripheral 3 and D3 AHBAXI4 (1)321/1/1
TARG 2D2 AHBAXI4 (1)321/1/1
TARG 3Flash AAXI4643/2/5
TARG 4OCTOSPI2AXI4642/1/3
TARG 5FMCAXI4643/3/6
TARG 6OCTOSPI1AXI4642/1/3
TARG 7AXI SRAMAXI4642/2/2
TARG 8RAM shared between ITCM and AXIAXI4642/2/2
  1. 1. Conversion to AHB protocol is done via an AXI/AHB bridge sitting between AXI interconnect and the connected slave.

Quality of service (QoS)

The AXI switch matrix uses a priority-based arbitration when two ASIB simultaneously attempt to access the same AMIB. Each ASIB has programmable read channel and write channel priorities, known as QoS, from 0 to 15, such that the higher the value, the higher the priority. The read channel QoS value is programmed in the AXI interconnect - INI x read QoS register (AXI_INIx_READ_QOS) , and the write channel in the AXI interconnect - INI x write QoS register (AXI_INIx_WRITE_QOS) . The default QoS value for all channels is 0 (lowest priority).

If two coincident transactions arrive at the same AMIB, the higher priority transaction passes before the lower priority. If the two transactions have the same QoS value, then a least-recently-used (LRU) priority scheme is adopted.

The QoS values should be programmed according to the latency requirements for the application. Setting a higher priority for an ASIB ensures a lower latency for transactions initiated by the associated bus master. This can be useful for real-time-constrained tasks, such as graphics processing (LTDC, DMA2D). Assigning a high priority to masters that can make many and frequent accesses to the same slave (such as the Cortex-M7 CPU) can block access to that slave by other lower-priority masters.

Global programmer view (GPV)

The GPV contains configuration registers for the AXI interconnect (see Section 2.2.4 ). These registers are only accessible by the Cortex-M7 CPU.

2.2.4 AXI interconnect registers

AXI interconnect - peripheral ID4 register (AXI_PERIPH_ID_4)

Address offset: 0x1FD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
rr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 4KCOUNT[3:0] : Register file size
0x0: N/A

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm ®

AXI interconnect - peripheral ID0 register (AXI_PERIPH_ID_0)

Address offset: 0x1FE0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
r

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Peripheral part number bits 0 to 7
0x00: Part number = 0x400

AXI interconnect - peripheral ID1 register (AXI_PERIPH_ID_1)

Address offset: 0x1FE4

Reset value: 0x0000 00B4

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity bits 0 to 3
0xB: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Peripheral part number bits 8 to 11
0x4: Part number = 0x400

AXI interconnect - peripheral ID2 register (AXI_PERIPH_ID_2)

Address offset: 0x1FE8

Reset value: 0x0000 002B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrr

Bits 7:4 REVISION[3:0] : Peripheral revision number
0x2: r0p2

Bit 3 JEDEC : JEP106 code flag
0x1: JEDEC allocated code

Bits 2:0 JEP106ID[6:4] : JEP106 Identity bits 4 to 6
0x3: Arm® JEDEC code

AXI interconnect - peripheral ID3 register (AXI_PERIPH_ID_3)

Address offset: 0x1FEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REV_AND[3:0]CUST_MOD_NUM[3:0]
rr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REV_AND[3:0] : Customer version

0: None

Bits 3:0 CUST_MOD_NUM[3:0] : Customer modification

0: None

AXI interconnect - component ID0 register (AXI_COMP_ID_0)

Address offset: 0x1FF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
r

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Preamble bits 0 to 7

0xD: Common ID value

AXI interconnect - component ID1 register (AXI_COMP_ID_1)

Address offset: 0x1FF4

Reset value: 0x0000 00F0

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component class

0xF: Generic IP component class

Bits 3:0 PREAMBLE[11:8] : Preamble bits 8 to 11

0x0: Common ID value

AXI interconnect - component ID2 register (AXI_COMP_ID_2)

Address offset: 0x1FF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
r

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Preamble bits 12 to 19

0x05: Common ID value

AXI interconnect - component ID3 register (AXI_COMP_ID_3)

Address offset: 0x1FFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
r

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Preamble bits 20 to 27

0xB1: Common ID value

AXI interconnect - TARG x bus matrix issuing functionality register (AXI_TARGx_FN_MOD_ISS_BM)

Address offset: 0x1008 + 0x1000 * x, where x = 1 to 8

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE
ISS
OVERR
IDE
READ
ISS
OVERR
IDE
rwrw

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 WRITE_ISS_OVERRIDE : Switch matrix write issuing override for target

0: Normal issuing capability

1: Set switch matrix write issuing capability to 1

Bit 0 READ_ISS_OVERRIDE : Switch matrix read issuing override for target

0: Normal issuing capability

1: Set switch matrix read issuing capability to 1

AXI interconnect - TARG x bus matrix functionality 2 register
(AXI_TARGx_FN_MOD2)

Address offset: \( 0x1024 + 0x1000 * x \) , where \( x = 1, 2, 7 \) and \( 8 \)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS_MERGE
rw

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 BYPASS_MERGE : Disable packing of beats to match the output data width. Unaligned transactions are not realigned to the input data word boundary.

0: Normal operation

1: Disable packing

AXI interconnect - TARG x long burst functionality modification register
(AXI_TARGx_FN_MOD_LB)

Address offset: \( 0x102C + 0x1000 * x \) , where \( x = 1 \) and \( 2 \)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FN_MOD_LB
rw

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 FN_MOD_LB : Controls burst breaking of long bursts

0: Long bursts can not be generated at the output of the ASIB

1: Long bursts can be generated at the output of the ASIB

AXI interconnect - TARG x issuing functionality modification register (AXI_TARGx_FN_MOD)

Address offset: 0x1108 + 0x1000 * x, where x = 1, 2, 7 and 8

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE
ISS
OVERR
IDE
READ
ISS
OVERR
IDE
rwrw

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 WRITE_ISS_OVERRIDE : Override AMIB write issuing capability

Bit 0 READ_ISS_OVERRIDE : Override AMIB read issuing capability

AXI interconnect - INI x functionality modification 2 register (AXI_INIx_FN_MOD2)

Address offset: 0x41024 + 0x1000 * x, where x = 1 and 3

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS
S_MERGE
rw

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 BYPASS_MERGE : Disables alteration of transactions by the up-sizer unless required by the protocol

AXI interconnect - INI x AHB functionality modification register
(AXI_INIx_FN_MOD_AHB)

Address offset: 0x41028 + 0x1000 * x, where x = 1 and 3

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WR_IN
C_OVE
RRIDE
RD_IN
C_OVE
RRIDE
rwrw

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 WR_INC_OVERRIDE : Converts all AHB-Lite read transactions to a series of single beat AXI transactions.

0: Override disabled

1: Override enabled

Bit 0 RD_INC_OVERRIDE : Converts all AHB-Lite write transactions to a series of single beat AXI transactions, and each AHB-Lite write beat is acknowledged with the AXI buffered write response.

0: Override disabled

1: Override enabled

AXI interconnect - INI x read QoS register (AXI_INIx_READ_QOS)

Address offset: 0x41100 + 0x1000 * x, where x = 1 to 76

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AR_QOS[3:0]
rw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 AR_QOS[3:0] : Read channel QoS setting

0x0: Lowest priority

0xF: Highest priority

AXI interconnect - INI x write QoS register (AXI_INIx_WRITE_QOS)

Address offset: 0x41104 + 0x1000 * x, where x = 1 to 76

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AW_QOS[3:0]
rw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 AW_QOS[3:0] : Write channel QoS setting

0x0: Lowest priority

0xF: Highest priority

AXI interconnect - INI x issuing functionality modification register (AXI_INIx_FN_MOD)

Address offset: 0x41108 + 0x1000 * x, where x = 1 to 76

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE
ISS
OVERR
IDE
READ
ISS
OVERR
IDE
rwrw

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 WRITE_ISS_OVERRIDE : Override ASIB write issuing capability

0: Normal issuing capability

1: Force issuing capability to 1

Bit 0 READ_ISS_OVERRIDE : Override ASIB read issuing capability

0: Normal issuing capability

1: Force issuing capability to 1

2.2.5 AXI interconnect register map

Table 5. AXI interconnect register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x1FD0AXI_PERIPH_ID_44KCOUNT [3:0]JEP106CON [3:0]
Reset value00000100
0x1FD4AXI_PERIPH_ID_5Reserved
Reset value00000000
0x1FD8AXI_PERIPH_ID_6Reserved
Reset value00000000
0x1FDCAXI_PERIPH_ID_7Reserved
Reset value00000000
0x1FE0AXI_PERIPH_ID_0PARTNUM[7:0]
Reset value00000000
0x1FE4AXI_PERIPH_ID_1JEP106ID [3:0]PARTNUM [11:8]
Reset value10110100
0x1FE8AXI_PERIPH_ID_2REVISION [3:0]JEDEC JEP106ID [6:4]
Reset value00101011
0x1FECAXI_PERIPH_ID_3REV_AND[3:0] CUST_MOD_NUM [3:0]
Reset value00000000
0x1FF0AXI_COMP_ID_0PREAMBLE[7:0]
Reset value00001101
0x1FF4AXI_COMP_ID_1CLASS[3:0] PREAMBLE [11:8]
Reset value11110000

Table 5. AXI interconnect register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x1FF8AXI_COMP_ID_2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0x1FFCAXI_COMP_ID_3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001
0x2000 - 0x2004ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x2008AXI_TARG1_FN_MOD_ISS_BMRes.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x200C - 0x2020ReservedRes.
0x2024AXI_TARG1_FN_MOD2Res.BYPASS_MERGE
Reset value0
0x2028ReservedRes.
0x202CAXI_TARG1_FN_MOD_LBRes.FN_MOD_LB
Reset value0
0x2030 - 0x2104ReservedRes.
0x2108AXI_TARG1_FN_MODRes.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x210C - 0x3004ReservedRes.

Table 5. AXI interconnect register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x3008AXI_TARG2_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x300C -
0x3020
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x3024AXI_TARG2_
FN_MOD2
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS_MERGE
Reset value0
0x3028ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x302CAXI_TARG2_
FN_MOD_LB
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FN_MOD_LB
Reset value0
0x3030 -
0x3104
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x3108AXI_TARG2_
FN_MOD
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x310C -
0x4004
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x4008AXI_TARG3_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x400C -
0x5004
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Table 5. AXI interconnect register map and reset values (continued)
OffsetRegister name313029282726252423222120191817161514131211109876543210
0x5008AXI_TARG4_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x500C -
0x6004
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x6008AXI_TARG5_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x600C -
0x7004
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x7008AXI_TARG6_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x700C -
0x8004
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x8008AXI_TARG7_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x800C -
0x8020
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x8024AXI_TARG7_
FN_MOD2
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS_MERGERes.
Reset value0

Table 5. AXI interconnect register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x8028 - 0x8104ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x8108AXI_TARG7_
FN_MOD
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x810C - 0x9004ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x9008AXI_TARG8_
FN_MOD_
ISS_BM
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x900C - 0x9020ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x9024AXI_TARG8_
FN_MOD2
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS_MERGE
Reset value0
0x9028 - 0x9104ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x9108AXI_TARG8_
FN_MOD
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x910C - 0x42020ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Table 5. AXI interconnect register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x42024AXI_INI1_FN_MOD2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS_MERGE
Reset value0
0x42028AXI_INI1_FN_MOD_AHBRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WR_INC_OVERRIDERD_INC_OVERRIDE
Reset value00
0x4202C-0x420FCReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x42100AXI_INI1_READ_QOSRes.AR_QOS [3:0]
Reset value0000
0x42104AXI_INI1_WRITE_QOSRes.AW_QOS [3:0]
Reset value0000
0x42108AXI_INI1_FN_MODRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x4210C-0x430FCReservedRes.
0x43100AXI_INI2_READ_QOSRes.AR_QOS [3:0]
Reset value0000
0x43104AXI_INI2_WRITE_QOSRes.AW_QOS [3:0]
Reset value0000

Table 5. AXI interconnect register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x43108AXI_INI2_
FN_MOD
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x4310C
- 0x44020
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x44024AXI_INI3_
FN_MOD2
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BYPASS_MERGE
Reset value0
0x44028AXI_INI3_
FN_MOD_AHB
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WR_INC_OVERRIDERD_INC_OVERRIDE
Reset value00
0x4402C-
0x440FC
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x44100AXI_INI3_
READ_QOS
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AR_QOS
[3:0]
Reset value0000
0x44104AXI_INI3_
WRITE_QOS
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AW_QOS
[3:0]
Reset value0000
0x44108AXI_INI3_
FN_MOD
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE_ISS_OVERRIDEREAD_ISS_OVERRIDE
Reset value00
0x4410C-
0x450FC
ReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x45100AXI_INI4_
READ_QOS
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AR_QOS
[3:0]
Reset value0000

Table 5. AXI interconnect register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x45104AXI_INI4_WRITE_QOSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AW_QOS [3:0]
Reset value0000
0x45108AXI_INI4_FN_MODRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE ISS OVERRIDE
READ ISS OVERRIDE
Reset value00
0x4510C-0x460FCReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x46100AXI_INI5_READ_QOSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AR_QOS [3:0]
Reset value0000
0x46104AXI_INI5_WRITE_QOSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AW_QOS [3:0]
Reset value0000
0x46108AXI_INI5_FN_MODRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE ISS OVERRIDE
READ ISS OVERRIDE
Reset value00
0x4610C-0x470FCReservedRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
0x47100AXI_INI6_READ_QOSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AR_QOS [3:0]
Reset value0000
0x47104AXI_INI6_WRITE_QOSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AW_QOS [3:0]
Reset value0000
0x47108AXI_INI6_FN_MODRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRITE ISS OVERRIDE
READ ISS OVERRIDE
Reset value00

Refer to Section 2.3 on page 131 for the register boundary addresses.

2.3 Memory organization

2.3.1 Introduction

Program memory, data memory, registers and I/O ports are organized within the same linear 4-Gbyte address space.

The bytes are coded in memory in Little Endian format. The lowest numbered byte in a word is considered the word's least significant byte and the highest numbered byte the most significant.

The addressable memory space is divided into eight main blocks, of 512 Mbytes each.

2.3.2 Memory map and register boundary addresses

Table 6. Memory map and default device memory area attributes

RegionBoundary addressArm® Cortex®-M7TypeAttributesExecute never
External Devices0xD0000000 - 0xDFFFFFFFFMC SDRAM Bank2Device-Yes
0xCC000000 - 0xCFFFFFFFFMC SDRAM Bank1 (or remap of FMC NOR/PSRAM/SRAM 4 Bank1)
0xC8000000 - 0xCBFFFFFFFMC SDRAM Bank1 (or remap of FMC NOR/PSRAM/SRAM 3 Bank1)
0xC4000000 - 0xC7FFFFFFFMC SDRAM Bank1 (or remap of FMC NOR/PSRAM/SRAM 2 Bank1)
0xC0000000 - 0xC3FFFFFFFMC SDRAM Bank1 (or remap of FMC NOR/PSRAM/SRAM 1 Bank1)
0xA0000000 - 0xBFFFFFFFReserved
External Memories0x90000000 - 0x9FFFFFFFOCTOSPI1NormalWrite-through cache attributeNo
0x80000000 - 0x8FFFFFFFFMC NAND Flash memoryWrite-back, write allocate cache attribute
0x70000000 - 0x7FFFFFFFOCTOSPI2
0x6C000000 - 0x6FFFFFFFFMC NOR/PSRAM/SRAM 4 Bank1 (or remap of FMC SDRAM Bank1)
0x68000000 - 0x6BFFFFFFFMC NOR/PSRAM/SRAM 3 Bank1 (or remap of FMC SDRAM Bank1)
0x64000000 - 0x67FFFFFFFMC NOR/PSRAM/SRAM 2 Bank1 (or remap of FMC SDRAM Bank1)
0x60000000 - 0x63FFFFFFFMC NOR/PSRAM/SRAM 1 Bank1 (or remap of FMC SDRAM Bank1)
Peripherals0x40000000 - 0x5FFFFFFFPeripherals (refer to Table 7: Register boundary addresses )Device-Yes

Table 6. Memory map and default device memory area attributes (continued)

RegionBoundary addressArm® Cortex®-M7TypeAttributesExecute never
RAM0x38801000 - 0x3FFFFFFReservedNormalWrite-back, write allocate cache attributeNo
0x38800000 - 0x38800FFFBackup SRAM
0x38004000 - 0x387FFFFFFReserved
0x38000000 - 0x38003FFFSRAM4
0x30008000 - 0x37FFFFFFReserved
0x30004000 - 0x30007FFFSRAM2
0x30000000 - 0x30003FFFSRAM1
0x24050000 - 0x2FFFFFFReserved
0x24020000 - 0x2404FFFRAM shared between ITCM and AXI
0x24000000 - 0x2401FFFAXI SRAM
0x20020000 - 0x23FFFFFFReserved
0x20000000 - 0x2001FFFDTCM
Code0x1FF20000 - 0x1FFFFFFReservedNormalWrite-through cache attributeNo
0x1FF00000 - 0x1FEFFFFSystem Memory
0x08100000 - 0x1FEFFFFReserved
0x08000000 - 0x080FFFFFlash memory bank 1
0x00040000 - 0x07FFFFFFReserved
0x00010000 - 0x0003FFFRAM shared between ITCM and AXI
0x00000000 - 0x0000FFFITCM RAM

All the memory map areas that are not allocated to on-chip memories and peripherals are considered “Reserved”. For the detailed mapping of available memory and register areas, refer to the following table.

The following table gives the boundary addresses of the peripherals available in the devices.

Table 7. Register boundary addresses (1)

Boundary addressPeripheralBusRegister map
0x58026400 - 0x580267FFHSEMAHB4
(D3)
Section 10.4: HSEM registers
0x58026000 - 0x580263FFADC3Section 28.7: ADC common registers
0x58025800 - 0x58025BFFDMAMUX2Section 17.6: DMAMUX registers
0x58025400 - 0x580257FFBDMASection 16.6: BDMA registers
0x58024C00 - 0x58024FFFCRCSection 21.4: CRC registers
0x58024800 - 0x58024BFFPWRSection 6.8: PWR registers
0x58024400 - 0x580247FFRCCSection 8.7: RCC registers
0x58022800 - 0x58022BFFGPIOKSection 11.4: GPIO registers
0x58022400 - 0x580227FFGPIOJSection 11.4: GPIO registers
0x58021C00 - 0x58021FFFGPIOHSection 11.4: GPIO registers
0x58021800 - 0x58021BFFGPIOGSection 11.4: GPIO registers
0x58021400 - 0x580217FFGPIOFSection 11.4: GPIO registers
0x58021000 - 0x580213FFGPIOESection 11.4: GPIO registers
0x58020C00 - 0x58020FFFGPIO_DSection 11.4: GPIO registers
0x58020800 - 0x58020BFFGPIOCSection 11.4: GPIO registers
0x58020400 - 0x580207FFGPIOBSection 11.4: GPIO registers
0x58020000 - 0x580203FFGPIOASection 11.4: GPIO registers
Table 7. Register boundary addresses (1) (continued)
Boundary addressPeripheralBusRegister map
0x58005800 - 0x580067FFReservedAPB4
(D3)
Reserved
0x58006800 - 0x58006BFFDTSSection 30.6: DTS registers
0x58005400 - 0x580057FFSAI4Section 56.6: SAI registers
0x58004C00 - 0x58004FFFReservedReserved
0x58004800 - 0x58004BFFIWDGSection 50.4: IWDG registers
0x58004000 - 0x580043FFRTC & BKP registersSection 51.7: RTC registers
0x58003C00 - 0x58003FFFVREFSection 32.3: VREFBUF registers
0x58003800 - 0x58003BFFCOMP1 - COMP2Section 33.7: COMP registers
0x58003000 - 0x580033FFLPTIM5Section 48.7: LPTIM registers
0x58002C00 - 0x58002FFFLPTIM4Section 48.7: LPTIM registers
0x58002800 - 0x58002BFFLPTIM3Section 48.7: LPTIM registers
0x58002400 - 0x580027FFLPTIM2Section 48.7: LPTIM registers
0x58001C00 - 0x58001FFFI2C4Section 52.7: I2C registers
0x58001400 - 0x580017FFSPI/I2S6Section 55.11: SPI/I2S registers
0x58000C00 - 0x58000FFFLPUART1Section 54.7: LPUART registers
0x58000400 - 0x580007FFSYSCFGSection 13.3: SYSCFG registers
0x58000000 - 0x580003FFEXTISection 20.6: EXTI registers
Table 7. Register boundary addresses (1) (continued)
Boundary addressPeripheralBusRegister map
0x5200BC00 - 0x5200BFFFOTFDEC2AHB3
(D1)
Section 42.6: OTFDEC registers
0x5200B800 - 0x5200BFFFOTFDEC1Section 42.6: OTFDEC registers
0x5200B400 - 0x5200B7FFOCTOSPI I/OSection 26.5: OCTOSPIM registers
0x5200B000 - 0x5200B3FFDelay Block OCTOSPI2Section 27.4: DLYB registers
0x5200A000 - 0x5200AFFFOCTOSPI2Section 25.7: OCTOSPI registers
0x52009000 - 0x520093FFRAMECC D1 domainSection 3.4: RAMECC registers
0x52008000 - 0x52008FFFDelay Block SDMMC1Section 27.4: DLYB registers
0x52007000 - 0x52007FFFSDMMC1Section 60.10: SDMMC registers
0x52006000 - 0x52006FFFDelay Block OCTOSPI1Section 27.4: DLYB registers
0x52005000 - 0x52005FFFOCTOSPI1 control registersSection 25.7: OCTOSPI registers
0x52004000 - 0x52004FFFFMC control registersSection 24.7.6: NOR/PSRAM controller registers ,
Section 24.8.7: NAND Flash controller registers ,
Section 24.9.5: SDRAM controller registers
0x52002000 - 0x52002FFFFlash interface registersSection 4.9: FLASH registers
0x52001000 - 0x52001FFFChrom-Art (DMA2D)Section 18.5: DMA2D registers
0x52000000 - 0x52000FFFMDMASection 14.5: MDMA registers
0x51000000 - 0x510FFFFFGPVSection 2.2: AXI interconnect matrix (AXIM)
0x50003000 - 0x50003FFFWWDGAPB3
(D1)
Section 49.5: WWDG interrupts
0x50001000 - 0x50001FFFLTDCSection 38.7: LTDC registers
0x50000000 - 0x50000FFFReserved-
0x48024400 - 0x480247FFCORDICAHB2
(D2)
Section 22.4: CORDIC registers
0x48024000 - 0x480243FFFMACSection 23.4: FMAC registers
0x48023000 - 0x48023FFFRAMECC D2 domainSection 3.4: RAMECC registers
0x48022800 - 0x48022BFFDelay Block SDMMC2Section 27.4: DLYB registers
0x48022400 - 0x480227FFSDMMC2Section 60.10: SDMMC registers
0x48021800 - 0x48021BFFRNGSection 39.7: RNG registers
0x48021400 - 0x480217FFHASHSection 41.7: HASH registers
0x48021000 - 0x480213FFCRYPTOSection 40.7: CRYP registers
0x48020400 - 0x480207FFPSSISection 37.5: PSSI registers
0x48020000 - 0x480203FFDCMISection 36.5: DCMI registers
Table 7. Register boundary addresses (1) (continued)
Boundary addressPeripheralBusRegister map
0x40040000 - 0x4007FFFFUSB1_OTG_HSAHB1
(D2)
Section 62.14: OTG_HS registers
0x40028000 - 0x400293FFETHERNET MACSection 63.11: Ethernet registers
0x40024400 - 0x400247FFReservedReserved
0x40022000 - 0x400223FFADC1 - ADC2Section 28.7: ADC common registers
0x40020800 - 0x40020BFFDMAMUX1Section 17.6: DMAMUX registers
0x40020400 - 0x400207FFDMA2Section 15.5: DMA registers
0x40020000 - 0x400203FFDMA1Section 15.5: DMA registers
0x40017800 - 0x40017FFFDFSDM1APB2
(D2)
Section 35.7: DFSDM channel y registers (y=0..7) ,
Section 35.8: DFSDM filter x module registers (x=0..3)
0x40015800 - 0x40015BFFSAI1Section 56.6: SAI registers
0x40015000 - 0x400153FFSPI5Section 55.11: SPI/I2S registers
0x40014800 - 0x40014BFFTIM17Section 46.6: TIM16/TIM17 registers
0x40014400 - 0x400147FFTIM16Section 46.6: TIM16/TIM17 registers
0x40014000 - 0x400143FFTIM15Section 46.5: TIM15 registers
0x40013400 - 0x400137FFSPI4Section 55.11: SPI/I2S registers
0x40013000 - 0x400133FFSPI1 / I2S1Section 55.11: SPI/I2S registers
0x40011C00 - 0x40011FFFUSART10Section 53.8: USART registers
0x40011800 - 0x40011BFFUART9Section 53.8: USART registers
0x40011400 - 0x400117FFUSART6Section 53.8: USART registers
0x40011000 - 0x400113FFUSART1Section 53.8: USART registers
0x40010400 - 0x400107FFTIM8Section 43.4: TIM1/TIM8 registers
0x40010000 - 0x400103FFTIM1Section 43.4: TIM1/TIM8 registers
Table 7. Register boundary addresses (1) (continued)
Boundary addressPeripheralBusRegister map
0x4000E400 - 0x4000E7FFTIM24APB1
(D2)
Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x4000E000 - 0x4000E3FFTIM23Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x4000D400 - 0x4000D7FFFDCAN3Section 61.5: FDCAN registers
0x4000AC00 - 0x4000D3FFCAN Message RAMSection 61.5: FDCAN registers
0x4000A800 - 0x4000ABFFCAN CCUSection 61.5: FDCAN registers
0x4000A400 - 0x4000A7FFFDCAN2Section 61.5: FDCAN registers
0x4000A000 - 0x4000A3FFFDCAN1Section 61.5: FDCAN registers
0x40009400 - 0x400097FFMDOISSection 59.4: MDOIS registers
0x40009000 - 0x400093FFOPAMPSection 34.6: OPAMP registers
0x40008800 - 0x40008BFFSWPMISection 58.6: SWPMI registers
0x40008400 - 0x400087FFCRSSection 9.8: CRS registers
0x40007C00 - 0x40007FFFUART8Section 53.8: USART registers
0x40007800 - 0x40007BFFUART7Section 53.8: USART registers
0x40007400 - 0x400077FFDAC1/2Section 31.7: DAC registers
0x40006C00 - 0x40006FFFHDMI-CECSection 64.7: HDMI-CEC registers
0x40006400 - 0x400067FFI2C5Section 52.7: I2C registers
0x40005C00 - 0x40005FFFI2C3Section 52.7: I2C registers
0x40005800 - 0x40005BFFI2C2Section 52.7: I2C registers
0x40005400 - 0x400057FFI2C1Section 52.7: I2C registers
0x40005000 - 0x400053FFUART5Section 53.8: USART registers
0x40004C00 - 0x40004FFFUART4Section 53.8: USART registers
0x40004800 - 0x40004BFFUSART3Section 53.8: USART registers
0x40004400 - 0x400047FFUSART2Section 53.8: USART registers
0x40004000 - 0x400043FFSPDIFRX1Section 57.5: SPDIFRX interface registers
0x40003C00 - 0x40003FFFSPI3 / I2S3Section 55.11: SPI/I2S registers
0x40003800 - 0x40003BFFSPI2 / I2S2Section 55.11: SPI/I2S registers
0x40002C00 - 0x40002FFFReservedReserved
0x40002400 - 0x400027FFLPTIM1Section 48.7: LPTIM registers
0x40002000 - 0x400023FFTIM14Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x40001C00 - 0x40001FFFTIM13Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x40001800 - 0x40001BFFTIM12Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
Table 7. Register boundary addresses (1) (continued)
Boundary addressPeripheralBusRegister map
0x40001400 - 0x400017FFTIM7APB1
(D2)
Section 47.4: TIM6/TIM7 registers
0x40001000 - 0x400013FFTIM6Section 47.4: TIM6/TIM7 registers
0x40000C00 - 0x40000FFFTIM5Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x40000800 - 0x40000BFFTIM4Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x40000400 - 0x400007FFTIM3Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers
0x40000000 - 0x400003FFTIM2Section 44.4: TIM2/TIM3/TIM4/TIM5/TIM23/TIM24 registers

1. Accessing a reserved area results in a bus error. Accessing undefined memory space in a peripheral returns zeros.

2.4 Embedded SRAM

The STM32H72x and STM32H73x devices include:

The embedded system SRAM is divided into up to five blocks over the three power domains:

AHB SRAM2 can be used as DMA buffers to store peripheral input/output data in D2 domain.

The system AHB SRAM can be accessed as bytes, half-words (16-bit units) or words (32-bit units), while the system AXI SRAM can be accessed as bytes, half-words, words or double-words (64-bit units). These memories can be addressed at maximum system clock frequency without wait state.

The AHB masters can read/write-access an SRAM section concurrently with the Ethernet MAC or the USB OTG HS peripheral accessing another SRAM section. For example, the Ethernet MAC accesses the SRAM2 while the CPU accesses the SRAM1, concurrently.

The TCM SRAMs are dedicated to the Cortex ® -M7:

The backup RAM is mapped at the address 0x3880 0000 and is accessible by most of the system masters through D3 domain's AHB matrix. With a battery connected to the V BAT pin, the backup SRAM can be used to retain data during low-power mode (Standby and V BAT mode).

Error code correction (ECC)

SRAM data are protected by ECC:

The ECC mechanism is based on the SECDED algorithm. It supports single-error correction and double-error detection.

When a half word is written to an internal SRAM (except DTCM and ITCM) and a reset occurs, this half word is not really written to the SRAM after reset. This due to the ECC behavior.

To ensures the data are effectively written to DTCM and ITCM internal memories, read back the programmed data.

The ECC is always active except when the CPU frequency boost feature is used. In that case the ECC is no more active on TCM RAMs. The CPU frequency boost can be enabled through the CPUFREQ_BOOST option byte in FLASH_OPTSR2_PRG register.

Refer to Section 4: Embedded Flash memory (FLASH) for a description of the CPUFREQ_BOOST option byte and to Section 3: RAM ECC monitoring (RAMECC) for details on RAM ECC monitoring.

RAM shared between ITCM and AXI RAM

192 Kbyte of RAM can be used either as ITCM or as AXI SRAM. This feature can be configured through the TCM_AXI_SHARED[1:0] option byte in FLASH_OPTSR2_PRG register as described in Table 8 .

Table 8. ITCM/DTCM/AXI configuration

TCM_AXI_SHARED[1,0]ITCM size (Kbyte)ITCM memory mappingAXI size (Kbyte)AXI memory mapping
00640x00000 0000 - 0x0000 FFFF3200x2400 0000 - 0x2404 FFFF
011280x0000 0000 - 0x0001 FFFF2560x2400 0000 - 0x2403 FFFF
101920x0000 0000 - 0x0002 FFFF1920x2400 0000 - 0x2402 FFFF
112560x0000 0000 - 0x0003 FFFF1280x2400 0000 - 0x2401 FFFF

Refer to Section 4: Embedded Flash memory (FLASH) for a description of the TCM_AXI_SHARED option byte.

2.5 Flash memory overview

The Flash memory interface manages accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms.

The Flash memory is organized as follows:

Refer to Section 4: Embedded Flash memory (FLASH) for more details.

2.6 Boot configuration

In the STM32H72x and STM32H73x, two different boot areas can be selected through the BOOT pin and the boot base address programmed in the BOOT_ADD0 and BOOT_ADD1 option bytes as shown in the Table 9 .

Table 9. Boot modes

Boot mode selectionBoot area
BOOTBoot address option bytes
0BOOT_ADD0[15:0]Boot address defined by user option byte BOOT_ADD0[15:0]
ST programmed value:
Flash memory at 0x0800 0000
1BOOT_ADD1[15:0]Boot address defined by user option byte BOOT_ADD1[15:0]
ST programmed value:
System bootloader at 0x1FF0 0000

The values on the BOOT pin are latched on the 4th rising edge of SYSCLK after reset release. It is up to the user to set the BOOT pin after reset.

The BOOT pin is also re-sampled when the device exits the Standby mode. Consequently, they must be kept in the required Boot mode configuration when the device is in the Standby mode.

After startup delay, the selection of the boot area is done before releasing the processor reset.

The BOOT_ADD0 and BOOT_ADD1 address option bytes allows to program any boot memory address from 0x0000 0000 to 0x3FFF 0000 which includes:

The BOOT_ADD0 / BOOT_ADD1 option bytes can be modified after reset in order to boot from any other boot address after next reset.

If the programmed boot memory address is out of the memory mapped area or a reserved area, the default boot fetch address is programmed as follows:

When the Flash level 2 protection is enabled, only boot from Flash memory is available. If the boot address already programmed in the BOOT_ADD0 / BOOT_ADD1 option bytes is out of the memory range or belongs to the RAM address range, the default fetch will be forced from Flash memory at address 0x0800 0000.

Embedded bootloader

The embedded bootloader code is located in system memory. It is programmed by ST during production. It is used to reprogram the Flash memory using one of the following serial interfaces:

For additional information, refer to the application note AN2606.