[PATCH v4 0/3] firmware: xilinx: Clean up firmware and EL3 state on kexec
Michal Simek
michal.simek at amd.com
Thu Aug 6 06:27:04 PDT 2026
On 7/29/26 14:25, Jay Buddhabhatti wrote:
> During a kexec restart, only the kernel is reloaded while the state held
> in EL3 and platform firmware persists. This leaves the freshly booted
> kernel out of sync with secure firmware for things like the SGI number,
> shutdown scope, allocated peripheral devices and registered notifier
> callbacks, which can lead to unexpected behaviour after a kexec.
>
> Introduce a mechanism to clear the stale EL3 and platform firmware state
> so the reloaded kernel starts from a clean baseline:
>
> - Add TF_A_CLEAR_PM_STATE to clear EL3 PM subsystem state.
> - Add PM_DEV_ALL_PERIPH to release all peripheral devices in one call.
> - Add PM_ALL_NOTIFIERS to unregister all notifier callbacks in one call.
>
> On a graceful kexec reboot the cleanup is performed from
> zynqmp_firmware_shutdown(); on a crash (kdump) restart it is performed
> from zynqmp_firmware_probe() of the reloaded kernel. Each cleanup step
> is guarded by a feature check so it degrades gracefully on firmware
> versions that do not implement the new APIs.
>
> Changes in v4:
> - Modified platform check to restrict kexec cleanup to Versal and
> Versal Net platforms only
> - Used EL3 firmware instead of TF-A in descriptions and comments
>
> Changes in v3:
> - Corrected subject prefix
>
> Changes in v2:
> - Drop patch 4/4 (feature check improvements) from this series per
> review feedback. Those changes are sent separately as:
> "[PATCH 1/2] firmware: xilinx: Use TF-A feature check for
> TF-A-specific APIs" and "[PATCH 2/2] firmware: xilinx: Propagate
> actual error from feature check"
>
> Jay Buddhabhatti (3):
> firmware: xilinx: Add support to clear EL3 PM state
> firmware: xilinx: Release all peripheral devices from firmware
> firmware: xilinx: Clear firmware notifiers across kexec transitions
>
> drivers/firmware/xilinx/zynqmp.c | 86 +++++++++++++++++++++++++++-
> include/linux/firmware/xlnx-zynqmp.h | 10 +++-
> 2 files changed, 94 insertions(+), 2 deletions(-)
>
Applied.
M
More information about the linux-arm-kernel
mailing list