Lock-Step Operation - 2023.1 English

Zynq UltraScale+ MPSoC Software Developer Guide (UG1137)

Document ID
UG1137
Release Date
2023-08-04
Version
2023.1 English

Cortex-R5F processors support lock-step operation mode, which operates both RPU CPU cores as a redundant CPU configuration called safety mode.

The Cortex-R5F processor set to operate in the lock-step configuration exposes only one CPU interface. Because Cortex-R5F processor only supports the static split and lock configuration, switching between these modes is permitted only while the processor group is held in power-onreset (POR). The input signals SLCLAMP and SLSPLIT control the mode of the processor group.

These signals control the multiplex and clamp logic in the lock-step configuration. When the Cortex-R5F processors are in the lock-step mode (shown in the following figure), there must be code in the reset handler to manage that the distributor within the GIC dispatches interrupts only to CPU0. The RPU includes a dedicated interrupt controller for Cortex-R5F MPCore processors. This Arm PL390 generic interrupt controller (GIC) is based on the GICv1 specification.

Figure 1. RPU Lock-Step Operation

Tightly coupled memories (TCMs) are mapped in the local address space of each Cortex-R5F processor; however, they are also mapped in the global address space where any master can access them provided that the XPPU is configured to allow such accesses.

The following table lists the address maps from the RPU point of view:

Table 1. RPU Address Maps
Operation Mode Memory R5_0 View (Start Address) R5_1 View (Start Address) Global Address View (Start Address)
Split Mode R5_0 ATCM (64 KB) 0x0000_0000 N/A 0xFFE0_0000
R5_0 BTCM (64 KB) 0x0002_0000 N/A 0xFFE2_0000
R5_0 instruction cache I-Cache N/A 0xFFE4_0000
R5_0 data cache D-Cache N/A 0xFFE5_0000
Split Mode R5_1 ATCM (64 KB) N/A 0x0000_0000 0xFFE9_0000
R5_1 BTCM (64 KB) N/A 0x0002_0000 0xFFEB_0000
R5_1 instruction cache I-Cache N/A 0xFFEC_0000
R5_1 data cache D-Cache N/A 0xFFED_0000
Lock-step Mode R5_0 ATCM (128 KB) 0x0000_0000 N/A 0xFFE0_0000
R5_0 BTCM (128 KB) 0x0002_0000 N/A 0xFFE2_0000
R5_0 instruction cache I-Cache N/A 0xFFE4_0000
R5_0 data cache D-Cache N/A 0xFFE5_0000