Register usage at handoff boundary
This section specifies the architecture bindings for the TL exchange at the handoff boundary.
Arm Architecture bindings
The Receiver of a TL can be in the AArch32 or AArch64 execution state [ArmARM].
The register convention to be used at the handoff boundary is determined by the
execution state of the Receiver.
If the Receiver is in the AArch64 execution state, then the convention listed
in aarch64_receiver
is used. If the Receiver is in the AArch32 execution state,
then the convention listed in aarch32_receiver
is used.
AArch64 Receiver
A Sender must use the register convention listed in Table 3 when handing off to an AArch64 receiver. In this register convention, the pointer to the 64-bit tl_base_pa address is passed on register X3.
Register X2 must be set to 0.
The 24 least significant bits in register X1 contains the TL signature. The signature provides guarantees to a receiver that X3 holds the tl_base_pa. The bits [39:32] of X1 contain the version of the register convention being used. Table 8 specifies the version 1 of the AArch64 handoff register convention.
Register X0 must hold a pointer to the hardware description devicetree, if the transfer list contains an FDT entry. This field is set to 0 if an fdt entry is absent from the transfer list.
Register |
Data present at the handoff boundary |
X0 |
Compatibility location for passing a platform description devicetree. 0 if devicetree is not present. If an fdt entry (tag_id=1) exists in the TL, then X0 must point to the fdt contained in that entry. |
X1 |
X1 is divided into the following fields:
|
X2 |
Reserved, must be zero. |
X3 |
tl_base_pa |
AArch32 Receiver
A Sender must use the register convention listed in Table 9 when handing off to an AArch32 receiver. In this register convention, the pointer to the 32-bit tl_base_pa address is passed on register R3. Register R1 contains the TL signature, to provide guarantees to a receiver that R3 holds the tl_base_pa.
The 24 least significant bits in register R1 contains the TL signature. The signature provides guarantees to a receiver that X3 holds the tl_base_pa. The 8 most significant bits of R1 contain the version of the register convention being used. Table 4 specifies the version 1 of the AArch32 handoff register convention.
Register R2 must hold a pointer to the hardware description devicetree, if the transfer list contains an FDT entry. This field is set to 0 if an fdt entry is absent from the transfer list.
Register |
Data present at the handoff boundary |
R0 |
Reserved, must be zero. |
R1 |
R1 is divided into the following fields:
|
R2 |
Compatibility location for passing a platform description devicetree. 0 if devicetree is not present. If an fdt entry (tag_id=1) exists in the TL, then R2 must point to the fdt contained in that entry. |
R3 |
tl_base_pa |