Handoff - 2023.2 English

Zynq UltraScale+ MPSoC Software Developer Guide (UG1137)

Document ID
UG1137
Release Date
2023-11-28
Version
2023.2 English

In this stage, protection_config functions from psu_init will be executed and then, any handoff functionality is executed. Also PS-PL isolation is removed unconditionally. R5 will be brought out of reset if there is any partition supposed to run on its cores. R5-0/R5-1 will be configured to boot in lowvec mode or highvec mode as per the settings provided by you while building the boot image. The handoff address in lowvec mode is 0x0 and 0xffff0000 in highvec mode. Lowvec/Highvec information should be specified by you while building the boot image. After all the other PS images are done, then the running CPU will be handed off with an update of the PC value. If there is no image to hand off for the running the CPU, FSBL will be in wfe loop.

Any running processor cannot pass any parameters to any other processor. Any communication between various partitions can happen by reading from (or writing to) the PMU global registers.

Handoff on the running processor involves updating Program Counter (PC) of the running processor, as is done in the case of APU Reset. Handoff to other processors involves updating their PCs and bringing the processors out of reset.

XFsbl_PmInit

This function initializes and configures the Inter Processor Interrupts (IPI). It then writes the PM configuration object address to an IPI buffer and triggers an IPI to the target. The PMU firmware then reads and configures the device nodes as specified in the configuration object.

Figure 1. PM Initialization

Protection Configuration

In this stage, protection_config functions from psu_init will be executed. The application of protection happens in this stage.

Figure 2. Protection Configuration

Handoff

Handoff on the running processor involves updating Program Counter (PC) of the running processor, as is done in the case of APU Reset. Handoff to other processors involves updating their PCs and bringing the processors out of reset. A53 FSBL will bring R5 out of reset if there is any partition to run on it. R5 will be configured to boot in lowvec mode or highvec mode as per the settings provided by you while building the boot image. The handoff address in lowvec mode is 0x0 and 0xffff0000 in highvec mode.

You must specify Lowvec/Highvec information while building the boot image. After all the other PS images are done, then running the CPU image will be handed off to that cpu with an update on the PC value. If there no image for the running CPU, it will be in wfe loop.

Figure 3. Handoff

Supported Handoffs

The following table shows the various combinations of handoffs that are supported in FSBL.

Table 1. Supported Handoffs
FSBL Application Processor Cores Execution Address
64-bit 64-bit All (i.e. A53-0, A53-1, A53-2, A53-3) Any Address
64-bit 32-bit A53-1, A53-2, A53-3 0x0
32-bit 32-bit A53-0 Any Address
32-bit 32-bit A53-1, A53-2, A53-3 0x0
32-bit 64-bit A53-1, A53-2, A53-3 Any Address

Error Lock Down

XFsbl_ErrorLockDown function handles errors in FSBL. This function is called whenever the return value of a function is unsuccessful. This function updates error status register and then loops indefinitely, if fallback is not supported.

In case the boot mode supports fallback, MultiBoot offset register is updated and then waits for a WDT reset to occur. On reboot, bootROM and FSBL read the image from the new address calculated from MultiBoot offset, thus loading a new image.

Figure 4. Error Lock Down Function