The Arm Live Firmware Activation spec [1] describes updating firmware
images during runtime, without requiring a reboot. Update images might
be deployed out-of-band, for instance via a BMC, in this case the OS
needs to be notified about the availability of a new image.
This binding describes an interrupt that could be triggered by the
platform, to notify about any changes.
[1] https://developer.arm.com/documentation/den0147/latest/
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
.../devicetree/bindings/arm/arm,lfa.yaml | 45 +++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/arm,lfa.yaml
diff --git a/Documentation/devicetree/bindings/arm/arm,lfa.yaml b/Documentation/devicetree/bindings/arm/arm,lfa.yaml
new file mode 100644
index 000000000000..92f0564fd672
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/arm,lfa.yaml
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,lfa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm Live Firmware Activation (LFA)
+
+maintainers:
+ - Andre Przywara <andre.przywara@arm.com>
+ - Sudeep Holla <sudeep.holla@arm.com>
+
+description:
+ The Arm Live Firmware Activation (LFA) specification [1] describes a
+ firmware interface to activate an updated firmware at runtime, without
+ requiring a reboot. Updates might be supplied out-of-band, for instance
+ via a BMC, in which case the platform needs to notify an OS about pending
+ image updates.
+ [1] https://developer.arm.com/documentation/den0147/latest/
+
+properties:
+ compatible:
+ const: arm,lfa
+
+ interrupts:
+ maxItems: 1
+ description: notification interrupt for changed firmware image status
+
+required:
+ - compatible
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ firmware {
+ arm-lfa {
+ compatible = "arm,lfa";
+ interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+ };
+ };
+...
--
2.43.0
On Tue, Mar 17, 2026 at 11:33:27AM +0100, Andre Przywara wrote:
> The Arm Live Firmware Activation spec [1] describes updating firmware
A nit, subject: drop second/last, redundant "binding". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
> images during runtime, without requiring a reboot. Update images might
> be deployed out-of-band, for instance via a BMC, in this case the OS
> needs to be notified about the availability of a new image.
>
> This binding describes an interrupt that could be triggered by the
Describe hardware/firmware, not the binding.
> platform, to notify about any changes.
>
> [1] https://developer.arm.com/documentation/den0147/latest/
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
> .../devicetree/bindings/arm/arm,lfa.yaml | 45 +++++++++++++++++++
> 1 file changed, 45 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/arm/arm,lfa.yaml
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,lfa.yaml b/Documentation/devicetree/bindings/arm/arm,lfa.yaml
> new file mode 100644
> index 000000000000..92f0564fd672
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/arm,lfa.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/arm,lfa.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Arm Live Firmware Activation (LFA)
> +
> +maintainers:
> + - Andre Przywara <andre.przywara@arm.com>
> + - Sudeep Holla <sudeep.holla@arm.com>
> +
> +description:
> + The Arm Live Firmware Activation (LFA) specification [1] describes a
> + firmware interface to activate an updated firmware at runtime, without
> + requiring a reboot. Updates might be supplied out-of-band, for instance
> + via a BMC, in which case the platform needs to notify an OS about pending
> + image updates.
> + [1] https://developer.arm.com/documentation/den0147/latest/
> +
> +properties:
> + compatible:
> + const: arm,lfa
Does specification has a version? Does it support version discovery?
> +
> + interrupts:
> + maxItems: 1
> + description: notification interrupt for changed firmware image status
> +
> +required:
> + - compatible
> + - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + firmware {
> + arm-lfa {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).
arm-lfa is specific, so this could be as "fota" or "firmware-update"
Best regards,
Krzysztof
Hi,
On 3/18/26 09:04, Krzysztof Kozlowski wrote:
> On Tue, Mar 17, 2026 at 11:33:27AM +0100, Andre Przywara wrote:
>> The Arm Live Firmware Activation spec [1] describes updating firmware
>
> A nit, subject: drop second/last, redundant "binding". The
> "dt-bindings" prefix is already stating that these are bindings.
> See also:
> https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
Sure, will fix.
>> images during runtime, without requiring a reboot. Update images might
>> be deployed out-of-band, for instance via a BMC, in this case the OS
>> needs to be notified about the availability of a new image.
>>
>> This binding describes an interrupt that could be triggered by the
>
> Describe hardware/firmware, not the binding.
Right, sorry, this slipped through.
>> platform, to notify about any changes.
>>
>> [1] https://developer.arm.com/documentation/den0147/latest/
>>
>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>> ---
>> .../devicetree/bindings/arm/arm,lfa.yaml | 45 +++++++++++++++++++
>> 1 file changed, 45 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/arm/arm,lfa.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/arm/arm,lfa.yaml b/Documentation/devicetree/bindings/arm/arm,lfa.yaml
>> new file mode 100644
>> index 000000000000..92f0564fd672
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/arm/arm,lfa.yaml
>> @@ -0,0 +1,45 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/arm/arm,lfa.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Arm Live Firmware Activation (LFA)
>> +
>> +maintainers:
>> + - Andre Przywara <andre.przywara@arm.com>
>> + - Sudeep Holla <sudeep.holla@arm.com>
>> +
>> +description:
>> + The Arm Live Firmware Activation (LFA) specification [1] describes a
>> + firmware interface to activate an updated firmware at runtime, without
>> + requiring a reboot. Updates might be supplied out-of-band, for instance
>> + via a BMC, in which case the platform needs to notify an OS about pending
>> + image updates.
>> + [1] https://developer.arm.com/documentation/den0147/latest/
>> +
>> +properties:
>> + compatible:
>> + const: arm,lfa
>
> Does specification has a version? Does it support version discovery?
Yes and yes. there is a mandatory LFA_GET_VERSION call, with major and
minor version.
And please note that the discovery of the firmware functionality doesn't
rely on DT (or ACPI) at all - it uses discoverable SMCCC calls instead.
We just need this DT node to convey the (optional) platform specific
interrupt number.
>> +
>> + interrupts:
>> + maxItems: 1
>> + description: notification interrupt for changed firmware image status
>> +
>> +required:
>> + - compatible
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> + firmware {
>> + arm-lfa {
>
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> If you cannot find a name matching your device, please check in kernel
> sources for similar cases or you can grow the spec (via pull request to
> DT spec repo).
>
> arm-lfa is specific, so this could be as "fota" or "firmware-update"
OK, will try to come up with a good name.
Thanks for the review!
Cheers,
Andre
>
> Best regards,
> Krzysztof
>
© 2016 - 2026 Red Hat, Inc.