[RFC PATCH 0/5] Arm LFA: Improvements and interrupt support

Vedashree Vidwans posted 5 patches 1 week, 3 days ago
drivers/firmware/smccc/Kconfig  |   3 +-
drivers/firmware/smccc/lfa_fw.c | 478 +++++++++++++++++++++++++-------
2 files changed, 380 insertions(+), 101 deletions(-)
[RFC PATCH 0/5] Arm LFA: Improvements and interrupt support
Posted by Vedashree Vidwans 1 week, 3 days ago
Hello,

The patches update the proposed Arm Live Firmware Activation (LFA)
kernel driver [1] to incorporate review feedback [2] and refine the
activation flow while remaining aligned with the LFA specification
DEN0147 [3] and the SMCCC 1.2 calling convention. The series keeps
the existing functionality but restructures and extends it to improve
robustness, reviewability, and future extensibility.​

The SMCCC usage in the driver is updated to consistently use the
SMCCC 1.2 register-based calling convention, consolidating arguments
and results into a single struct to reduce stack usage and simplify
the SMC interface. The patches also split the original changes into
focused pieces and document the device node bindings in the commit
messages, making it easier to follow and validate the implementation
against the specification.​

The kernel driver is registered as a platform driver in accordence to
the LFA device defined by the specification [3]. The driver now extends
interface for interrupt-based enablement of LFA. During LFA, the
interrupt
thread refreshes firmware component details after each activation step
and iterates over all activable components until no further activation
is pending, matching the spec’s allowance for component detail changes
after activation. This ensures that sysfs exposure of LFA components
remains consistent with the authoritative information provided by the
secure firmware.​

The handling of CPU rendezvous is adjusted so that the kernel now
honors the rendezvous policy chosen by the firmware, instead of
unconditionally forcing a rendezvous. This reflects experience with
existing firmware deployments where mandatory rendezvous is not
required, while still allowing the firmware to request it when
needed.​

Thank you,
Veda

[1] https://lore.kernel.org/lkml/20250926123145.268728-1-salman.nabi@arm.com/
[2] https://lkml.org/lkml/2025/10/8/980
[3] https://developer.arm.com/documentation/den0147/latest/

Vedashree Vidwans (5):
  firmware: smccc: LFA: use smcc 1.2
  firmware: smccc: LFA: refactor
  firmware: smccc: add timeout, touch wdt
  firmware: smccc: register as platform driver
  firmware: smccc: lfa: refresh fw details

 drivers/firmware/smccc/Kconfig  |   3 +-
 drivers/firmware/smccc/lfa_fw.c | 478 +++++++++++++++++++++++++-------
 2 files changed, 380 insertions(+), 101 deletions(-)

-- 
2.43.0

Re: [RFC PATCH 0/5] Arm LFA: Improvements and interrupt support
Posted by Sudeep Holla 1 week, 2 days ago
On Mon, Dec 08, 2025 at 10:13:10PM +0000, Vedashree Vidwans wrote:
> Hello,
> 
> The patches update the proposed Arm Live Firmware Activation (LFA)
> kernel driver [1] to incorporate review feedback [2] and refine the
> activation flow while remaining aligned with the LFA specification
> DEN0147 [3] and the SMCCC 1.2 calling convention. The series keeps
> the existing functionality but restructures and extends it to improve
> robustness, reviewability, and future extensibility.​
> 
> The SMCCC usage in the driver is updated to consistently use the
> SMCCC 1.2 register-based calling convention, consolidating arguments
> and results into a single struct to reduce stack usage and simplify
> the SMC interface. The patches also split the original changes into
> focused pieces and document the device node bindings in the commit
> messages, making it easier to follow and validate the implementation
> against the specification.​
> 
> The kernel driver is registered as a platform driver in accordence to
> the LFA device defined by the specification [3]. The driver now extends
> interface for interrupt-based enablement of LFA. During LFA, the
> interrupt
> thread refreshes firmware component details after each activation step
> and iterates over all activable components until no further activation
> is pending, matching the spec’s allowance for component detail changes
> after activation. This ensures that sysfs exposure of LFA components
> remains consistent with the authoritative information provided by the
> secure firmware.​
> 
> The handling of CPU rendezvous is adjusted so that the kernel now
> honors the rendezvous policy chosen by the firmware, instead of
> unconditionally forcing a rendezvous. This reflects experience with
> existing firmware deployments where mandatory rendezvous is not
> required, while still allowing the firmware to request it when
> needed.​
> 
> Thank you,
> Veda
> 
> [1] https://lore.kernel.org/lkml/20250926123145.268728-1-salman.nabi@arm.com/
> [2] https://lkml.org/lkml/2025/10/8/980
> [3] https://developer.arm.com/documentation/den0147/latest/
> 
> Vedashree Vidwans (5):
>   firmware: smccc: LFA: use smcc 1.2
>   firmware: smccc: LFA: refactor
>   firmware: smccc: add timeout, touch wdt
>   firmware: smccc: register as platform driver
>   firmware: smccc: lfa: refresh fw details
> 
>  drivers/firmware/smccc/Kconfig  |   3 +-
>  drivers/firmware/smccc/lfa_fw.c | 478 +++++++++++++++++++++++++-------

Same comment as before[1], looks like the feedback got ignored or missed.

-- 
Regards,
Sudeep

[1] https://lore.kernel.org/all/20251009-calculating-glorious-oriole-ceccf6@sudeepholla