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