AHB-to-APB

(Ask a Question)

The MSS supports APB peripherals (CAN, MMUART, SPI, I2C) and configuration interfaces to other blocks (DDRC, AXI-SWITCH, ETHERNET) via the AHB-Lite bus generated from S5 of the AXI Switch, S5 is converted to APB using an AHB-to-APB bridge. The APB clock is synchronous (identical) to the AHB clock, and consequently to the AXI clock.

By default, the AHB-to-APB bridge operates in the non-posted Write mode, so the APB write cycle must complete (PREADY asserted) before HREADY is generated. In this mode, a slow responding APB device stalls the AHB bus and therefore, the AXI buses.
 The System register bit SR_AHBAPB_CR.APBx_POSTED can be used to switch the AHB-to-APB bridge to the posted Write mode. In this mode, the AHB-to-APB bridge asserts the HREADY before the APB write cycle completes. This allows the CPU to move on before the slow peripheral completes the write. In the posted Write mode, CPU may start the next operation before the actual write completes leading to unexpected results. The APB slots and its address map is listed in the following table.

Table 1. APB Slots and Address Map
From To Function MSS Bus Slot Dual AHB Size
(KB)
20000000 20000FFF MMUART0 5 0 0 Yes 4
20001000 20001FFF WDOG0 5 0 1 Yes 4
20002000 20002FFF SYSREG-PRIV 5 0 2 No 4
20003000 20003FFF SYSREG-SCB 5 0 3 No 4
20004000 20004FFF AXISW-CFG 5 0 4 No 4
20005000 20005FFF MPUCFG 5 0 5 No 4
20006000 20006FFF FMETER 5 0 6 No 4
20007000 20007FFF DFI-CFG 5 0 7 No 4
20008000 20009FFF MMC-CFG 5 0 8 No 8
20080000 200FFFFF DDRC-CFG 5 0 9 No 512
20100000 20100FFF MMUART1 5 0 10 Yes 4
20101000 20101FFF WDOG1 5 0 11 Yes 4
20102000 20102FFF MMUART2 5 0 12 Yes 4
20103000 20103FFF WDOG2 5 0 13 Yes 4
20104000 20104FFF MMUART3 5 0 14 Yes 4
20105000 20105FFF WDOG3 5 0 15 Yes 4
20106000 20106FFF MMUART4 5 0 16 Yes 4
20107000 20107FFF WDOG4 5 0 17 Yes 4
20108000 20108FFF SPI0 5 0 18 Yes 4
20109000 20109FFF SPI1 5 0 19 Yes 4
2010A000 2010AFFF I2C0 5 0 20 Yes 4
2010B000 2010BFFF I2C1 5 0 21 Yes 4
2010C000 2010CFFF CAN0 5 0 22 Yes 4
2010D000 2010DFFF CAN1 5 0 23 Yes 4
20110000 20111FFF MAC0-CFG 5 0 24 Yes 8
20112000 20113FFF MAC1-CFG 5 0 25 Yes 8
20120000 20120FFF GPIO0 5 0 26 Yes 4
20121000 20121FFF GPIO1 5 0 27 Yes 4
20122000 20122FFF GPIO2 5 0 28 Yes 4
20124000 20124FFF MSRTC 5 0 29 Yes 4
20125000 20125FFF MSTIMER 5 0 30 Yes 4
20126000 20126FFF M2FINT 5 0 31 Yes 4