HomeFreeBSD

psci: Support the arm64 Errata ABI

Description

psci: Support the arm64 Errata ABI

Add support for the Arm Errata Management Firmware Interface (Errata
ABI) [1]. This provides an interface for the kernel to query the status
of an erratum workaround.

Some errata may be mitigated depending on the other hardware in a SoC,
e.g. Cortex-A78 erratum 2712571 is not affected in systems that use
an Arm interconnect. As there may not be a way for the kernel to know
if this is the case then it would have to implement the workaround
even when not needed.

There are other cases where the needed workaround is implemented in
firmware and if not implemented then the kernel may decide to not use
a feature. In this case we can query the firmware before deciding if
we should use a feature or now.

There is a known issue with some firmware implementations of the Errata
ABI that incorrectly returns a status indicating the erratum is fully
mitigated by the firmware, however there is a kernel component needed,
e.g. Neoverse-N1 erratum 1542419. To handle this case we tell the
caller there is some workaround implemented in the firmware and it can
decide how to handle it. If this is fixed in a way we can detect we can
add a new erratum status value to indicate this.

[1] https://developer.arm.com/documentation/den0100/latest/

Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D48055

Details

Provenance
andrewAuthored on Fri, Jan 24, 11:42 AM
Differential Revision
D48055: psci: Support the arm64 Errata ABI
Parents
rGe3f9593ed6ff: arm64: Move FEAT_PAuth to the cpu feat framework
Branches
Unknown
Tags
Unknown