* Re: [PATCH v2] firmware: arm: Group interface drivers under arm/
2026-11-06 11:50 [PATCH v2] firmware: arm: Group interface drivers under arm/ Sudeep Holla
@ 2026-11-06 11:56 ` Yeoreum Yun
2026-11-06 14:07 ` Suzuki K Poulose
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Yeoreum Yun @ 2026-11-06 11:56 UTC (permalink / raw)
To: Sudeep Holla
Cc: Arnd Bergmann, linux-arm-kernel, Mark Rutland, Lorenzo Pieralisi,
Catalin Marinas, Will Deacon, James Morse, Cristian Marussi,
Suzuki K Poulose, Yeoreum Yun, Arnd Bergmann, Andre Przywara
LGTM. Thanks!
Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com>
On Fri, Nov 06, 2026 at 11:50:45AM +0000, Sudeep Holla wrote:
> Arm firmware interface drivers currently live directly under
> drivers/firmware/. Some use an arm_ prefix while others use generic
> names. More Arm firmware interface drivers, such as:
>
> 1. Live Firmware Activation (LFA) [1]
> 2. Firmware Interfaces for Realm Management Extension (FIRME) [2]
>
> expected soon, which would further crowd the top-level directory.
>
> There are couple of other possible arm specific firmware interfaces
> that may need to reside there.
>
> Create drivers/firmware/arm/ as the common home for Arm firmware
> interface drivers. Move FF-A, PSCI, RMM, SCMI, SCPI, SDEI, and SMCCC
> under it, drop the redundant arm_ prefix from the some directory/file
> names. Update the Kconfig, Kbuild, maintainer and documentation paths.
>
> The resulting hierarchy provides room for upcoming interfaces without
> continuing to add Arm-specific directories at the firmware root.
>
> [1] https://lore.kernel.org/all/20261102165421.3651202-1-andre.przywara@arm.com/
> [2] https://lore.kernel.org/all/20261019-firme_interface-v1-0-27895c9cebaa@arm.com/
>
> Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
> ---
>
> v1[1]->v2:
> - Rebased on v7.4-rc1
> - Fixed missing rmm folder movement in Kconfig and Makefile
>
> [1] https://lore.kernel.org/all/20261022090003.3083557-1-sudeep.holla@kernel.org/
>
> Documentation/tee/ts-tee.rst | 2 +-
> MAINTAINERS | 18 +++---
> drivers/firmware/Kconfig | 55 +-----------------
> drivers/firmware/Makefile | 9 +--
> drivers/firmware/arm/Kconfig | 56 +++++++++++++++++++
> drivers/firmware/arm/Makefile | 11 ++++
> drivers/firmware/{arm_ffa => arm/ffa}/Kconfig | 0
> .../firmware/{arm_ffa => arm/ffa}/Makefile | 0
> drivers/firmware/{arm_ffa => arm/ffa}/bus.c | 0
> .../firmware/{arm_ffa => arm/ffa}/common.h | 0
> .../firmware/{arm_ffa => arm/ffa}/driver.c | 0
> drivers/firmware/{arm_ffa => arm/ffa}/smccc.c | 0
> drivers/firmware/{ => arm}/psci/Kconfig | 0
> drivers/firmware/{ => arm}/psci/Makefile | 0
> drivers/firmware/{ => arm}/psci/psci.c | 0
> .../firmware/{ => arm}/psci/psci_checker.c | 0
> drivers/firmware/{arm_rmm => arm/rmm}/Kconfig | 0
> .../firmware/{arm_rmm => arm/rmm}/Makefile | 0
> drivers/firmware/{arm_rmm => arm/rmm}/rmi.c | 0
> drivers/firmware/{arm_rmm => arm/rmm}/rsi.c | 0
> .../firmware/{arm_scmi => arm/scmi}/Kconfig | 4 +-
> .../firmware/{arm_scmi => arm/scmi}/Makefile | 0
> .../firmware/{arm_scmi => arm/scmi}/base.c | 0
> drivers/firmware/{arm_scmi => arm/scmi}/bus.c | 0
> .../firmware/{arm_scmi => arm/scmi}/clock.c | 0
> .../firmware/{arm_scmi => arm/scmi}/common.h | 0
> .../firmware/{arm_scmi => arm/scmi}/driver.c | 0
> drivers/firmware/{arm_scmi => arm/scmi}/msg.c | 0
> .../firmware/{arm_scmi => arm/scmi}/notify.c | 0
> .../firmware/{arm_scmi => arm/scmi}/notify.h | 0
> .../firmware/{arm_scmi => arm/scmi}/perf.c | 0
> .../firmware/{arm_scmi => arm/scmi}/pinctrl.c | 0
> .../firmware/{arm_scmi => arm/scmi}/power.c | 0
> .../{arm_scmi => arm/scmi}/powercap.c | 0
> .../{arm_scmi => arm/scmi}/protocols.h | 0
> .../firmware/{arm_scmi => arm/scmi}/quirks.c | 0
> .../firmware/{arm_scmi => arm/scmi}/quirks.h | 0
> .../{arm_scmi => arm/scmi}/raw_mode.c | 0
> .../{arm_scmi => arm/scmi}/raw_mode.h | 0
> .../firmware/{arm_scmi => arm/scmi}/reset.c | 0
> .../scmi}/scmi_power_control.c | 0
> .../firmware/{arm_scmi => arm/scmi}/sensors.c | 0
> .../firmware/{arm_scmi => arm/scmi}/shmem.c | 0
> .../firmware/{arm_scmi => arm/scmi}/system.c | 0
> .../{arm_scmi => arm/scmi}/transports/Kconfig | 0
> .../scmi}/transports/Makefile | 0
> .../scmi}/transports/mailbox.c | 0
> .../{arm_scmi => arm/scmi}/transports/optee.c | 0
> .../{arm_scmi => arm/scmi}/transports/pcc.c | 0
> .../{arm_scmi => arm/scmi}/transports/smc.c | 0
> .../scmi}/transports/virtio.c | 0
> .../scmi}/vendors/imx/Kconfig | 0
> .../scmi}/vendors/imx/Makefile | 0
> .../scmi}/vendors/imx/imx-sm-bbm.c | 0
> .../scmi}/vendors/imx/imx-sm-cpu.c | 0
> .../scmi}/vendors/imx/imx-sm-lmm.c | 0
> .../scmi}/vendors/imx/imx-sm-misc.c | 0
> .../scmi}/vendors/imx/imx95.rst | 0
> .../firmware/{arm_scmi => arm/scmi}/voltage.c | 0
> drivers/firmware/{arm_scpi.c => arm/scpi.c} | 0
> drivers/firmware/{arm_sdei.c => arm/sdei.c} | 0
> .../{arm_sdei_nmi.c => arm/sdei_nmi.c} | 0
> drivers/firmware/{ => arm}/smccc/Kconfig | 0
> drivers/firmware/{ => arm}/smccc/Makefile | 0
> drivers/firmware/{ => arm}/smccc/bus.c | 0
> drivers/firmware/{ => arm}/smccc/kvm_guest.c | 0
> drivers/firmware/{ => arm}/smccc/smccc.c | 0
> drivers/firmware/{ => arm}/smccc/soc_id.c | 0
> 68 files changed, 81 insertions(+), 74 deletions(-)
> create mode 100644 drivers/firmware/arm/Kconfig
> create mode 100644 drivers/firmware/arm/Makefile
> rename drivers/firmware/{arm_ffa => arm/ffa}/Kconfig (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/Makefile (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/bus.c (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/common.h (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/driver.c (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/smccc.c (100%)
> rename drivers/firmware/{ => arm}/psci/Kconfig (100%)
> rename drivers/firmware/{ => arm}/psci/Makefile (100%)
> rename drivers/firmware/{ => arm}/psci/psci.c (100%)
> rename drivers/firmware/{ => arm}/psci/psci_checker.c (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/Kconfig (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/Makefile (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/rmi.c (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/rsi.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/Kconfig (97%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/base.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/bus.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/clock.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/common.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/driver.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/msg.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/notify.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/notify.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/perf.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/pinctrl.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/power.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/powercap.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/protocols.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/quirks.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/quirks.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/raw_mode.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/raw_mode.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/reset.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/scmi_power_control.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/sensors.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/shmem.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/system.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/Kconfig (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/mailbox.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/optee.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/pcc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/smc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/virtio.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/Kconfig (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-bbm.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-cpu.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-lmm.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-misc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx95.rst (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/voltage.c (100%)
> rename drivers/firmware/{arm_scpi.c => arm/scpi.c} (100%)
> rename drivers/firmware/{arm_sdei.c => arm/sdei.c} (100%)
> rename drivers/firmware/{arm_sdei_nmi.c => arm/sdei_nmi.c} (100%)
> rename drivers/firmware/{ => arm}/smccc/Kconfig (100%)
> rename drivers/firmware/{ => arm}/smccc/Makefile (100%)
> rename drivers/firmware/{ => arm}/smccc/bus.c (100%)
> rename drivers/firmware/{ => arm}/smccc/kvm_guest.c (100%)
> rename drivers/firmware/{ => arm}/smccc/smccc.c (100%)
> rename drivers/firmware/{ => arm}/smccc/soc_id.c (100%)
>
> diff --git a/Documentation/tee/ts-tee.rst b/Documentation/tee/ts-tee.rst
> index 843e34422648..0999d0e0d859 100644
> --- a/Documentation/tee/ts-tee.rst
> +++ b/Documentation/tee/ts-tee.rst
> @@ -62,7 +62,7 @@ References
>
> [3] https://www.arm.com/architecture/security-features/platform-security
>
> -[4] drivers/firmware/arm_ffa/
> +[4] drivers/firmware/arm/ffa/
>
> [5] https://trusted-services.readthedocs.io/en/v1.0.0/developer/service-access-protocols.html#abi
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 93abbb315065..550863200d44 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4040,7 +4040,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
> F: Documentation/ABI/testing/sysfs-firmware-cca
> F: Documentation/arch/arm64/
> F: arch/arm64/
> -F: drivers/firmware/arm_rmm/
> +F: drivers/firmware/arm/rmm/
> F: drivers/virt/coco/arm-cca-guest/
> F: drivers/virt/coco/pkvm-guest/
> F: include/linux/arm-rmi-cmds.h
> @@ -10462,7 +10462,7 @@ FIRMWARE FRAMEWORK FOR ARMV8-A
> M: Sudeep Holla <sudeep.holla@kernel.org>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> -F: drivers/firmware/arm_ffa/
> +F: drivers/firmware/arm/ffa/
> F: include/linux/arm_ffa.h
>
> FIRMWARE LOADER (request_firmware)
> @@ -22265,7 +22265,7 @@ M: Lorenzo Pieralisi <lpieralisi@kernel.org>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: Documentation/devicetree/bindings/arm/psci.yaml
> -F: drivers/firmware/psci/
> +F: drivers/firmware/arm/psci/
> F: include/linux/psci.h
> F: include/uapi/linux/psci.h
>
> @@ -25374,9 +25374,9 @@ M: Lorenzo Pieralisi <lpieralisi@kernel.org>
> M: Sudeep Holla <sudeep.holla@kernel.org>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> -F: drivers/firmware/smccc/
> -F: include/linux/arm-smccc-bus.h
> +F: drivers/firmware/arm/smccc/
> F: include/linux/arm-smccc.h
> +F: include/linux/arm-smccc-bus.h
> F: include/linux/device-id/arm_smccc.h
>
> SECURITY CONTACT
> @@ -26000,7 +26000,7 @@ M: James Morse <james.morse@arm.com>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: Documentation/devicetree/bindings/arm/firmware/sdei.txt
> -F: drivers/firmware/arm_sdei*
> +F: drivers/firmware/arm/sdei*
> F: include/linux/arm_sdei.h
> F: include/uapi/linux/arm_sdei.h
>
> @@ -27262,8 +27262,8 @@ S: Maintained
> F: Documentation/devicetree/bindings/firmware/arm,sc[mp]i.yaml
> F: drivers/clk/clk-sc[mp]i.c
> F: drivers/cpufreq/sc[mp]i-cpufreq.c
> -F: drivers/firmware/arm_scmi/
> -F: drivers/firmware/arm_scpi.c
> +F: drivers/firmware/arm/scmi/
> +F: drivers/firmware/arm/scpi.c
> F: drivers/hwmon/scmi-hwmon.c
> F: drivers/pinctrl/pinctrl-scmi.c
> F: drivers/pmdomain/arm/
> @@ -27282,7 +27282,7 @@ L: imx@lists.linux.dev
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: Documentation/devicetree/bindings/firmware/nxp,*scmi.yaml
> -F: drivers/firmware/arm_scmi/vendors/imx/
> +F: drivers/firmware/arm/scmi/vendors/imx/
>
> SYSTEM RESET/SHUTDOWN DRIVERS
> M: Sebastian Reichel <sre@kernel.org>
> diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
> index 43e2e2a64594..2097547850e7 100644
> --- a/drivers/firmware/Kconfig
> +++ b/drivers/firmware/Kconfig
> @@ -6,60 +6,11 @@
>
> menu "Firmware Drivers"
>
> -source "drivers/firmware/arm_scmi/Kconfig"
> +source "drivers/firmware/arm/Kconfig"
>
> config FW_ATTR_CLASS
> tristate
>
> -config ARM_SCPI_PROTOCOL
> - tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
> - depends on ARM || ARM64 || COMPILE_TEST
> - depends on MAILBOX
> - help
> - System Control and Power Interface (SCPI) Message Protocol is
> - defined for the purpose of communication between the Application
> - Cores(AP) and the System Control Processor(SCP). The MHU peripheral
> - provides a mechanism for inter-processor communication between SCP
> - and AP.
> -
> - SCP controls most of the power management on the Application
> - Processors. It offers control and management of: the core/cluster
> - power states, various power domain DVFS including the core/cluster,
> - certain system clocks configuration, thermal sensors and many
> - others.
> -
> - This protocol library provides interface for all the client drivers
> - making use of the features offered by the SCP.
> -
> -config ARM_SDE_INTERFACE
> - bool "ARM Software Delegated Exception Interface (SDEI)"
> - depends on ARM64
> - help
> - The Software Delegated Exception Interface (SDEI) is an ARM
> - standard for registering callbacks from the platform firmware
> - into the OS. This is typically used to implement RAS notifications.
> -
> -config ARM_SDEI_NMI
> - bool "SDEI-based cross-CPU NMI service (arm64)"
> - depends on ARM_SDE_INTERFACE
> - help
> - Provides SDEI-based cross-CPU NMI delivery for hooks that need
> - to reach interrupt-masked CPUs on silicon that lacks FEAT_NMI:
> -
> - - arch_trigger_cpumask_backtrace() (sysrq-l, RCU stalls,
> - hardlockup_all_cpu_backtrace, soft-lockup secondary dumps,
> - hung-task auxiliary dumps)
> - - smp_send_stop() escalation (reboot/halt and the
> - panic / kdump crash stop)
> -
> - The driver registers a handler for the SDEI software-signalled
> - event (event 0) and reaches a target CPU by signalling it with
> - SDEI_EVENT_SIGNAL. Firmware delivers the event out of EL3
> - regardless of the target's PSTATE.DAIF -- forced delivery into a
> - CPU wedged with interrupts locally masked.
> -
> - If unsure, say N.
> -
> config EDD
> tristate "BIOS Enhanced Disk Drive calls determine boot disk"
> depends on X86
> @@ -299,8 +250,6 @@ config TURRIS_MOX_RWTM_KEYCTL
>
> endif # TURRIS_MOX_RWTM
>
> -source "drivers/firmware/arm_ffa/Kconfig"
> -source "drivers/firmware/arm_rmm/Kconfig"
> source "drivers/firmware/broadcom/Kconfig"
> source "drivers/firmware/cirrus/Kconfig"
> source "drivers/firmware/coreboot/Kconfig"
> @@ -308,10 +257,8 @@ source "drivers/firmware/efi/Kconfig"
> source "drivers/firmware/imx/Kconfig"
> source "drivers/firmware/meson/Kconfig"
> source "drivers/firmware/microchip/Kconfig"
> -source "drivers/firmware/psci/Kconfig"
> source "drivers/firmware/qcom/Kconfig"
> source "drivers/firmware/samsung/Kconfig"
> -source "drivers/firmware/smccc/Kconfig"
> source "drivers/firmware/tegra/Kconfig"
> source "drivers/firmware/xilinx/Kconfig"
>
> diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile
> index 50b338313152..f347328e0a0c 100644
> --- a/drivers/firmware/Makefile
> +++ b/drivers/firmware/Makefile
> @@ -2,9 +2,6 @@
> #
> # Makefile for the linux kernel.
> #
> -obj-$(CONFIG_ARM_SCPI_PROTOCOL) += arm_scpi.o
> -obj-$(CONFIG_ARM_SDE_INTERFACE) += arm_sdei.o
> -obj-$(CONFIG_ARM_SDEI_NMI) += arm_sdei_nmi.o
> obj-$(CONFIG_DMI) += dmi_scan.o
> obj-$(CONFIG_DMI_SYSFS) += dmi-sysfs.o
> obj-$(CONFIG_EDD) += edd.o
> @@ -25,9 +22,7 @@ obj-$(CONFIG_TI_SCI_PROTOCOL) += ti_sci.o
> obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
> obj-$(CONFIG_TURRIS_MOX_RWTM) += turris-mox-rwtm.o
>
> -obj-y += arm_ffa/
> -obj-y += arm_rmm/
> -obj-y += arm_scmi/
> +obj-y += arm/
> obj-y += broadcom/
> obj-y += cirrus/
> obj-y += meson/
> @@ -35,9 +30,7 @@ obj-y += microchip/
> obj-$(CONFIG_COREBOOT_FIRMWARE) += coreboot/
> obj-y += efi/
> obj-y += imx/
> -obj-y += psci/
> obj-y += qcom/
> obj-y += samsung/
> -obj-y += smccc/
> obj-y += tegra/
> obj-y += xilinx/
> diff --git a/drivers/firmware/arm/Kconfig b/drivers/firmware/arm/Kconfig
> new file mode 100644
> index 000000000000..c980a847f233
> --- /dev/null
> +++ b/drivers/firmware/arm/Kconfig
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +source "drivers/firmware/arm/ffa/Kconfig"
> +source "drivers/firmware/arm/psci/Kconfig"
> +source "drivers/firmware/arm/rmm/Kconfig"
> +source "drivers/firmware/arm/scmi/Kconfig"
> +source "drivers/firmware/arm/smccc/Kconfig"
> +
> +config ARM_SCPI_PROTOCOL
> + tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
> + depends on ARM || ARM64 || COMPILE_TEST
> + depends on MAILBOX
> + help
> + System Control and Power Interface (SCPI) Message Protocol is
> + defined for the purpose of communication between the Application
> + Cores(AP) and the System Control Processor(SCP). The MHU peripheral
> + provides a mechanism for inter-processor communication between SCP
> + and AP.
> +
> + SCP controls most of the power management on the Application
> + Processors. It offers control and management of: the core/cluster
> + power states, various power domain DVFS including the core/cluster,
> + certain system clocks configuration, thermal sensors and many
> + others.
> +
> + This protocol library provides interface for all the client drivers
> + making use of the features offered by the SCP.
> +
> +config ARM_SDE_INTERFACE
> + bool "ARM Software Delegated Exception Interface (SDEI)"
> + depends on ARM64
> + help
> + The Software Delegated Exception Interface (SDEI) is an ARM
> + standard for registering callbacks from the platform firmware
> + into the OS. This is typically used to implement RAS notifications.
> +
> +config ARM_SDEI_NMI
> + bool "SDEI-based cross-CPU NMI service (arm64)"
> + depends on ARM_SDE_INTERFACE
> + help
> + Provides SDEI-based cross-CPU NMI delivery for hooks that need
> + to reach interrupt-masked CPUs on silicon that lacks FEAT_NMI:
> +
> + - arch_trigger_cpumask_backtrace() (sysrq-l, RCU stalls,
> + hardlockup_all_cpu_backtrace, soft-lockup secondary dumps,
> + hung-task auxiliary dumps)
> + - smp_send_stop() escalation (reboot/halt and the
> + panic / kdump crash stop)
> +
> + The driver registers a handler for the SDEI software-signalled
> + event (event 0) and reaches a target CPU by signalling it with
> + SDEI_EVENT_SIGNAL. Firmware delivers the event out of EL3
> + regardless of the target's PSTATE.DAIF -- forced delivery into a
> + CPU wedged with interrupts locally masked.
> +
> + If unsure, say N.
> diff --git a/drivers/firmware/arm/Makefile b/drivers/firmware/arm/Makefile
> new file mode 100644
> index 000000000000..5e90380a0666
> --- /dev/null
> +++ b/drivers/firmware/arm/Makefile
> @@ -0,0 +1,11 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_ARM_SCPI_PROTOCOL) += scpi.o
> +obj-$(CONFIG_ARM_SDE_INTERFACE) += sdei.o
> +obj-$(CONFIG_ARM_SDEI_NMI) += sdei_nmi.o
> +
> +obj-y += ffa/
> +obj-y += psci/
> +obj-y += rmm/
> +obj-y += scmi/
> +obj-y += smccc/
> diff --git a/drivers/firmware/arm_ffa/Kconfig b/drivers/firmware/arm/ffa/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_ffa/Kconfig
> rename to drivers/firmware/arm/ffa/Kconfig
> diff --git a/drivers/firmware/arm_ffa/Makefile b/drivers/firmware/arm/ffa/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_ffa/Makefile
> rename to drivers/firmware/arm/ffa/Makefile
> diff --git a/drivers/firmware/arm_ffa/bus.c b/drivers/firmware/arm/ffa/bus.c
> similarity index 100%
> rename from drivers/firmware/arm_ffa/bus.c
> rename to drivers/firmware/arm/ffa/bus.c
> diff --git a/drivers/firmware/arm_ffa/common.h b/drivers/firmware/arm/ffa/common.h
> similarity index 100%
> rename from drivers/firmware/arm_ffa/common.h
> rename to drivers/firmware/arm/ffa/common.h
> diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm/ffa/driver.c
> similarity index 100%
> rename from drivers/firmware/arm_ffa/driver.c
> rename to drivers/firmware/arm/ffa/driver.c
> diff --git a/drivers/firmware/arm_ffa/smccc.c b/drivers/firmware/arm/ffa/smccc.c
> similarity index 100%
> rename from drivers/firmware/arm_ffa/smccc.c
> rename to drivers/firmware/arm/ffa/smccc.c
> diff --git a/drivers/firmware/psci/Kconfig b/drivers/firmware/arm/psci/Kconfig
> similarity index 100%
> rename from drivers/firmware/psci/Kconfig
> rename to drivers/firmware/arm/psci/Kconfig
> diff --git a/drivers/firmware/psci/Makefile b/drivers/firmware/arm/psci/Makefile
> similarity index 100%
> rename from drivers/firmware/psci/Makefile
> rename to drivers/firmware/arm/psci/Makefile
> diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/arm/psci/psci.c
> similarity index 100%
> rename from drivers/firmware/psci/psci.c
> rename to drivers/firmware/arm/psci/psci.c
> diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/arm/psci/psci_checker.c
> similarity index 100%
> rename from drivers/firmware/psci/psci_checker.c
> rename to drivers/firmware/arm/psci/psci_checker.c
> diff --git a/drivers/firmware/arm_rmm/Kconfig b/drivers/firmware/arm/rmm/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_rmm/Kconfig
> rename to drivers/firmware/arm/rmm/Kconfig
> diff --git a/drivers/firmware/arm_rmm/Makefile b/drivers/firmware/arm/rmm/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_rmm/Makefile
> rename to drivers/firmware/arm/rmm/Makefile
> diff --git a/drivers/firmware/arm_rmm/rmi.c b/drivers/firmware/arm/rmm/rmi.c
> similarity index 100%
> rename from drivers/firmware/arm_rmm/rmi.c
> rename to drivers/firmware/arm/rmm/rmi.c
> diff --git a/drivers/firmware/arm_rmm/rsi.c b/drivers/firmware/arm/rmm/rsi.c
> similarity index 100%
> rename from drivers/firmware/arm_rmm/rsi.c
> rename to drivers/firmware/arm/rmm/rsi.c
> diff --git a/drivers/firmware/arm_scmi/Kconfig b/drivers/firmware/arm/scmi/Kconfig
> similarity index 97%
> rename from drivers/firmware/arm_scmi/Kconfig
> rename to drivers/firmware/arm/scmi/Kconfig
> index 9f6241efd592..2b62679598ea 100644
> --- a/drivers/firmware/arm_scmi/Kconfig
> +++ b/drivers/firmware/arm/scmi/Kconfig
> @@ -82,8 +82,8 @@ config ARM_SCMI_QUIRKS
> depending on the SCMI firmware advertised versions and/or machine
> compatibles.
>
> -source "drivers/firmware/arm_scmi/transports/Kconfig"
> -source "drivers/firmware/arm_scmi/vendors/imx/Kconfig"
> +source "drivers/firmware/arm/scmi/transports/Kconfig"
> +source "drivers/firmware/arm/scmi/vendors/imx/Kconfig"
>
> endif #ARM_SCMI_PROTOCOL
>
> diff --git a/drivers/firmware/arm_scmi/Makefile b/drivers/firmware/arm/scmi/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_scmi/Makefile
> rename to drivers/firmware/arm/scmi/Makefile
> diff --git a/drivers/firmware/arm_scmi/base.c b/drivers/firmware/arm/scmi/base.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/base.c
> rename to drivers/firmware/arm/scmi/base.c
> diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm/scmi/bus.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/bus.c
> rename to drivers/firmware/arm/scmi/bus.c
> diff --git a/drivers/firmware/arm_scmi/clock.c b/drivers/firmware/arm/scmi/clock.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/clock.c
> rename to drivers/firmware/arm/scmi/clock.c
> diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm/scmi/common.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/common.h
> rename to drivers/firmware/arm/scmi/common.h
> diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm/scmi/driver.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/driver.c
> rename to drivers/firmware/arm/scmi/driver.c
> diff --git a/drivers/firmware/arm_scmi/msg.c b/drivers/firmware/arm/scmi/msg.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/msg.c
> rename to drivers/firmware/arm/scmi/msg.c
> diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm/scmi/notify.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/notify.c
> rename to drivers/firmware/arm/scmi/notify.c
> diff --git a/drivers/firmware/arm_scmi/notify.h b/drivers/firmware/arm/scmi/notify.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/notify.h
> rename to drivers/firmware/arm/scmi/notify.h
> diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm/scmi/perf.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/perf.c
> rename to drivers/firmware/arm/scmi/perf.c
> diff --git a/drivers/firmware/arm_scmi/pinctrl.c b/drivers/firmware/arm/scmi/pinctrl.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/pinctrl.c
> rename to drivers/firmware/arm/scmi/pinctrl.c
> diff --git a/drivers/firmware/arm_scmi/power.c b/drivers/firmware/arm/scmi/power.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/power.c
> rename to drivers/firmware/arm/scmi/power.c
> diff --git a/drivers/firmware/arm_scmi/powercap.c b/drivers/firmware/arm/scmi/powercap.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/powercap.c
> rename to drivers/firmware/arm/scmi/powercap.c
> diff --git a/drivers/firmware/arm_scmi/protocols.h b/drivers/firmware/arm/scmi/protocols.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/protocols.h
> rename to drivers/firmware/arm/scmi/protocols.h
> diff --git a/drivers/firmware/arm_scmi/quirks.c b/drivers/firmware/arm/scmi/quirks.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/quirks.c
> rename to drivers/firmware/arm/scmi/quirks.c
> diff --git a/drivers/firmware/arm_scmi/quirks.h b/drivers/firmware/arm/scmi/quirks.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/quirks.h
> rename to drivers/firmware/arm/scmi/quirks.h
> diff --git a/drivers/firmware/arm_scmi/raw_mode.c b/drivers/firmware/arm/scmi/raw_mode.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/raw_mode.c
> rename to drivers/firmware/arm/scmi/raw_mode.c
> diff --git a/drivers/firmware/arm_scmi/raw_mode.h b/drivers/firmware/arm/scmi/raw_mode.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/raw_mode.h
> rename to drivers/firmware/arm/scmi/raw_mode.h
> diff --git a/drivers/firmware/arm_scmi/reset.c b/drivers/firmware/arm/scmi/reset.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/reset.c
> rename to drivers/firmware/arm/scmi/reset.c
> diff --git a/drivers/firmware/arm_scmi/scmi_power_control.c b/drivers/firmware/arm/scmi/scmi_power_control.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/scmi_power_control.c
> rename to drivers/firmware/arm/scmi/scmi_power_control.c
> diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm/scmi/sensors.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/sensors.c
> rename to drivers/firmware/arm/scmi/sensors.c
> diff --git a/drivers/firmware/arm_scmi/shmem.c b/drivers/firmware/arm/scmi/shmem.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/shmem.c
> rename to drivers/firmware/arm/scmi/shmem.c
> diff --git a/drivers/firmware/arm_scmi/system.c b/drivers/firmware/arm/scmi/system.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/system.c
> rename to drivers/firmware/arm/scmi/system.c
> diff --git a/drivers/firmware/arm_scmi/transports/Kconfig b/drivers/firmware/arm/scmi/transports/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/Kconfig
> rename to drivers/firmware/arm/scmi/transports/Kconfig
> diff --git a/drivers/firmware/arm_scmi/transports/Makefile b/drivers/firmware/arm/scmi/transports/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/Makefile
> rename to drivers/firmware/arm/scmi/transports/Makefile
> diff --git a/drivers/firmware/arm_scmi/transports/mailbox.c b/drivers/firmware/arm/scmi/transports/mailbox.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/mailbox.c
> rename to drivers/firmware/arm/scmi/transports/mailbox.c
> diff --git a/drivers/firmware/arm_scmi/transports/optee.c b/drivers/firmware/arm/scmi/transports/optee.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/optee.c
> rename to drivers/firmware/arm/scmi/transports/optee.c
> diff --git a/drivers/firmware/arm_scmi/transports/pcc.c b/drivers/firmware/arm/scmi/transports/pcc.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/pcc.c
> rename to drivers/firmware/arm/scmi/transports/pcc.c
> diff --git a/drivers/firmware/arm_scmi/transports/smc.c b/drivers/firmware/arm/scmi/transports/smc.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/smc.c
> rename to drivers/firmware/arm/scmi/transports/smc.c
> diff --git a/drivers/firmware/arm_scmi/transports/virtio.c b/drivers/firmware/arm/scmi/transports/virtio.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/virtio.c
> rename to drivers/firmware/arm/scmi/transports/virtio.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/Kconfig b/drivers/firmware/arm/scmi/vendors/imx/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/Kconfig
> rename to drivers/firmware/arm/scmi/vendors/imx/Kconfig
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/Makefile b/drivers/firmware/arm/scmi/vendors/imx/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/Makefile
> rename to drivers/firmware/arm/scmi/vendors/imx/Makefile
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-bbm.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-bbm.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-cpu.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-cpu.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-lmm.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-lmm.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-misc.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-misc.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm/scmi/vendors/imx/imx95.rst
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx95.rst
> rename to drivers/firmware/arm/scmi/vendors/imx/imx95.rst
> diff --git a/drivers/firmware/arm_scmi/voltage.c b/drivers/firmware/arm/scmi/voltage.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/voltage.c
> rename to drivers/firmware/arm/scmi/voltage.c
> diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm/scpi.c
> similarity index 100%
> rename from drivers/firmware/arm_scpi.c
> rename to drivers/firmware/arm/scpi.c
> diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm/sdei.c
> similarity index 100%
> rename from drivers/firmware/arm_sdei.c
> rename to drivers/firmware/arm/sdei.c
> diff --git a/drivers/firmware/arm_sdei_nmi.c b/drivers/firmware/arm/sdei_nmi.c
> similarity index 100%
> rename from drivers/firmware/arm_sdei_nmi.c
> rename to drivers/firmware/arm/sdei_nmi.c
> diff --git a/drivers/firmware/smccc/Kconfig b/drivers/firmware/arm/smccc/Kconfig
> similarity index 100%
> rename from drivers/firmware/smccc/Kconfig
> rename to drivers/firmware/arm/smccc/Kconfig
> diff --git a/drivers/firmware/smccc/Makefile b/drivers/firmware/arm/smccc/Makefile
> similarity index 100%
> rename from drivers/firmware/smccc/Makefile
> rename to drivers/firmware/arm/smccc/Makefile
> diff --git a/drivers/firmware/smccc/bus.c b/drivers/firmware/arm/smccc/bus.c
> similarity index 100%
> rename from drivers/firmware/smccc/bus.c
> rename to drivers/firmware/arm/smccc/bus.c
> diff --git a/drivers/firmware/smccc/kvm_guest.c b/drivers/firmware/arm/smccc/kvm_guest.c
> similarity index 100%
> rename from drivers/firmware/smccc/kvm_guest.c
> rename to drivers/firmware/arm/smccc/kvm_guest.c
> diff --git a/drivers/firmware/smccc/smccc.c b/drivers/firmware/arm/smccc/smccc.c
> similarity index 100%
> rename from drivers/firmware/smccc/smccc.c
> rename to drivers/firmware/arm/smccc/smccc.c
> diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/arm/smccc/soc_id.c
> similarity index 100%
> rename from drivers/firmware/smccc/soc_id.c
> rename to drivers/firmware/arm/smccc/soc_id.c
> --
> 2.43.0
>
--
Sincerely,
Yeoreum Yun
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2] firmware: arm: Group interface drivers under arm/
2026-11-06 11:50 [PATCH v2] firmware: arm: Group interface drivers under arm/ Sudeep Holla
2026-11-06 11:56 ` Yeoreum Yun
@ 2026-11-06 14:07 ` Suzuki K Poulose
2026-11-10 3:27 ` Gavin Shan
2026-11-10 23:40 ` Gavin Shan
3 siblings, 0 replies; 6+ messages in thread
From: Suzuki K Poulose @ 2026-11-06 14:07 UTC (permalink / raw)
To: Sudeep Holla, Arnd Bergmann, linux-arm-kernel
Cc: Mark Rutland, Lorenzo Pieralisi, Catalin Marinas, Will Deacon,
James Morse, Cristian Marussi, Yeoreum Yun, Arnd Bergmann,
Andre Przywara
On 06/11/2026 11:50, Sudeep Holla wrote:
> Arm firmware interface drivers currently live directly under
> drivers/firmware/. Some use an arm_ prefix while others use generic
> names. More Arm firmware interface drivers, such as:
>
> 1. Live Firmware Activation (LFA) [1]
> 2. Firmware Interfaces for Realm Management Extension (FIRME) [2]
>
> expected soon, which would further crowd the top-level directory.
>
> There are couple of other possible arm specific firmware interfaces
> that may need to reside there.
>
> Create drivers/firmware/arm/ as the common home for Arm firmware
> interface drivers. Move FF-A, PSCI, RMM, SCMI, SCPI, SDEI, and SMCCC
> under it, drop the redundant arm_ prefix from the some directory/file
> names. Update the Kconfig, Kbuild, maintainer and documentation paths.
>
> The resulting hierarchy provides room for upcoming interfaces without
> continuing to add Arm-specific directories at the firmware root.
>
> [1] https://lore.kernel.org/all/20261102165421.3651202-1-andre.przywara@arm.com/
> [2] https://lore.kernel.org/all/20261019-firme_interface-v1-0-27895c9cebaa@arm.com/
>
> Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
Thanks! This is a nice cleanup.
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] firmware: arm: Group interface drivers under arm/
2026-11-06 11:50 [PATCH v2] firmware: arm: Group interface drivers under arm/ Sudeep Holla
2026-11-06 11:56 ` Yeoreum Yun
2026-11-06 14:07 ` Suzuki K Poulose
@ 2026-11-10 3:27 ` Gavin Shan
2026-11-10 7:53 ` Sudeep Holla
2026-11-10 23:40 ` Gavin Shan
3 siblings, 1 reply; 6+ messages in thread
From: Gavin Shan @ 2026-11-10 3:27 UTC (permalink / raw)
To: Sudeep Holla, Arnd Bergmann, linux-arm-kernel
Cc: Mark Rutland, Lorenzo Pieralisi, Catalin Marinas, Will Deacon,
James Morse, Cristian Marussi, Suzuki K Poulose, Yeoreum Yun,
Arnd Bergmann, Andre Przywara
Hi Sudeep,
On 11/6/26 9:50 PM, Sudeep Holla wrote:
> Arm firmware interface drivers currently live directly under
> drivers/firmware/. Some use an arm_ prefix while others use generic
> names. More Arm firmware interface drivers, such as:
>
> 1. Live Firmware Activation (LFA) [1]
> 2. Firmware Interfaces for Realm Management Extension (FIRME) [2]
>
> expected soon, which would further crowd the top-level directory.
>
> There are couple of other possible arm specific firmware interfaces
> that may need to reside there.
>
> Create drivers/firmware/arm/ as the common home for Arm firmware
> interface drivers. Move FF-A, PSCI, RMM, SCMI, SCPI, SDEI, and SMCCC
> under it, drop the redundant arm_ prefix from the some directory/file
> names. Update the Kconfig, Kbuild, maintainer and documentation paths.
>
> The resulting hierarchy provides room for upcoming interfaces without
> continuing to add Arm-specific directories at the firmware root.
>
> [1] https://lore.kernel.org/all/20261102165421.3651202-1-andre.przywara@arm.com/
> [2] https://lore.kernel.org/all/20261019-firme_interface-v1-0-27895c9cebaa@arm.com/
>
> Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
> ---
>
> v1[1]->v2:
> - Rebased on v7.4-rc1
> - Fixed missing rmm folder movement in Kconfig and Makefile
>
> [1] https://lore.kernel.org/all/20261022090003.3083557-1-sudeep.holla@kernel.org/
>
> Documentation/tee/ts-tee.rst | 2 +-
> MAINTAINERS | 18 +++---
> drivers/firmware/Kconfig | 55 +-----------------
> drivers/firmware/Makefile | 9 +--
> drivers/firmware/arm/Kconfig | 56 +++++++++++++++++++
> drivers/firmware/arm/Makefile | 11 ++++
> drivers/firmware/{arm_ffa => arm/ffa}/Kconfig | 0
> .../firmware/{arm_ffa => arm/ffa}/Makefile | 0
> drivers/firmware/{arm_ffa => arm/ffa}/bus.c | 0
> .../firmware/{arm_ffa => arm/ffa}/common.h | 0
> .../firmware/{arm_ffa => arm/ffa}/driver.c | 0
> drivers/firmware/{arm_ffa => arm/ffa}/smccc.c | 0
> drivers/firmware/{ => arm}/psci/Kconfig | 0
> drivers/firmware/{ => arm}/psci/Makefile | 0
> drivers/firmware/{ => arm}/psci/psci.c | 0
> .../firmware/{ => arm}/psci/psci_checker.c | 0
> drivers/firmware/{arm_rmm => arm/rmm}/Kconfig | 0
> .../firmware/{arm_rmm => arm/rmm}/Makefile | 0
> drivers/firmware/{arm_rmm => arm/rmm}/rmi.c | 0
> drivers/firmware/{arm_rmm => arm/rmm}/rsi.c | 0
> .../firmware/{arm_scmi => arm/scmi}/Kconfig | 4 +-
> .../firmware/{arm_scmi => arm/scmi}/Makefile | 0
> .../firmware/{arm_scmi => arm/scmi}/base.c | 0
> drivers/firmware/{arm_scmi => arm/scmi}/bus.c | 0
> .../firmware/{arm_scmi => arm/scmi}/clock.c | 0
> .../firmware/{arm_scmi => arm/scmi}/common.h | 0
> .../firmware/{arm_scmi => arm/scmi}/driver.c | 0
> drivers/firmware/{arm_scmi => arm/scmi}/msg.c | 0
> .../firmware/{arm_scmi => arm/scmi}/notify.c | 0
> .../firmware/{arm_scmi => arm/scmi}/notify.h | 0
> .../firmware/{arm_scmi => arm/scmi}/perf.c | 0
> .../firmware/{arm_scmi => arm/scmi}/pinctrl.c | 0
> .../firmware/{arm_scmi => arm/scmi}/power.c | 0
> .../{arm_scmi => arm/scmi}/powercap.c | 0
> .../{arm_scmi => arm/scmi}/protocols.h | 0
> .../firmware/{arm_scmi => arm/scmi}/quirks.c | 0
> .../firmware/{arm_scmi => arm/scmi}/quirks.h | 0
> .../{arm_scmi => arm/scmi}/raw_mode.c | 0
> .../{arm_scmi => arm/scmi}/raw_mode.h | 0
> .../firmware/{arm_scmi => arm/scmi}/reset.c | 0
> .../scmi}/scmi_power_control.c | 0
> .../firmware/{arm_scmi => arm/scmi}/sensors.c | 0
> .../firmware/{arm_scmi => arm/scmi}/shmem.c | 0
> .../firmware/{arm_scmi => arm/scmi}/system.c | 0
> .../{arm_scmi => arm/scmi}/transports/Kconfig | 0
> .../scmi}/transports/Makefile | 0
> .../scmi}/transports/mailbox.c | 0
> .../{arm_scmi => arm/scmi}/transports/optee.c | 0
> .../{arm_scmi => arm/scmi}/transports/pcc.c | 0
> .../{arm_scmi => arm/scmi}/transports/smc.c | 0
> .../scmi}/transports/virtio.c | 0
> .../scmi}/vendors/imx/Kconfig | 0
> .../scmi}/vendors/imx/Makefile | 0
> .../scmi}/vendors/imx/imx-sm-bbm.c | 0
> .../scmi}/vendors/imx/imx-sm-cpu.c | 0
> .../scmi}/vendors/imx/imx-sm-lmm.c | 0
> .../scmi}/vendors/imx/imx-sm-misc.c | 0
> .../scmi}/vendors/imx/imx95.rst | 0
> .../firmware/{arm_scmi => arm/scmi}/voltage.c | 0
> drivers/firmware/{arm_scpi.c => arm/scpi.c} | 0
> drivers/firmware/{arm_sdei.c => arm/sdei.c} | 0
> .../{arm_sdei_nmi.c => arm/sdei_nmi.c} | 0
> drivers/firmware/{ => arm}/smccc/Kconfig | 0
> drivers/firmware/{ => arm}/smccc/Makefile | 0
> drivers/firmware/{ => arm}/smccc/bus.c | 0
> drivers/firmware/{ => arm}/smccc/kvm_guest.c | 0
> drivers/firmware/{ => arm}/smccc/smccc.c | 0
> drivers/firmware/{ => arm}/smccc/soc_id.c | 0
> 68 files changed, 81 insertions(+), 74 deletions(-)
> create mode 100644 drivers/firmware/arm/Kconfig
> create mode 100644 drivers/firmware/arm/Makefile
> rename drivers/firmware/{arm_ffa => arm/ffa}/Kconfig (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/Makefile (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/bus.c (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/common.h (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/driver.c (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/smccc.c (100%)
> rename drivers/firmware/{ => arm}/psci/Kconfig (100%)
> rename drivers/firmware/{ => arm}/psci/Makefile (100%)
> rename drivers/firmware/{ => arm}/psci/psci.c (100%)
> rename drivers/firmware/{ => arm}/psci/psci_checker.c (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/Kconfig (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/Makefile (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/rmi.c (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/rsi.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/Kconfig (97%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/base.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/bus.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/clock.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/common.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/driver.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/msg.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/notify.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/notify.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/perf.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/pinctrl.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/power.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/powercap.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/protocols.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/quirks.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/quirks.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/raw_mode.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/raw_mode.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/reset.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/scmi_power_control.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/sensors.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/shmem.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/system.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/Kconfig (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/mailbox.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/optee.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/pcc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/smc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/virtio.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/Kconfig (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-bbm.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-cpu.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-lmm.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-misc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx95.rst (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/voltage.c (100%)
> rename drivers/firmware/{arm_scpi.c => arm/scpi.c} (100%)
> rename drivers/firmware/{arm_sdei.c => arm/sdei.c} (100%)
> rename drivers/firmware/{arm_sdei_nmi.c => arm/sdei_nmi.c} (100%)
> rename drivers/firmware/{ => arm}/smccc/Kconfig (100%)
> rename drivers/firmware/{ => arm}/smccc/Makefile (100%)
> rename drivers/firmware/{ => arm}/smccc/bus.c (100%)
> rename drivers/firmware/{ => arm}/smccc/kvm_guest.c (100%)
> rename drivers/firmware/{ => arm}/smccc/smccc.c (100%)
> rename drivers/firmware/{ => arm}/smccc/soc_id.c (100%)
>
> diff --git a/Documentation/tee/ts-tee.rst b/Documentation/tee/ts-tee.rst
> index 843e34422648..0999d0e0d859 100644
> --- a/Documentation/tee/ts-tee.rst
> +++ b/Documentation/tee/ts-tee.rst
> @@ -62,7 +62,7 @@ References
>
> [3] https://www.arm.com/architecture/security-features/platform-security
>
> -[4] drivers/firmware/arm_ffa/
> +[4] drivers/firmware/arm/ffa/
>
> [5] https://trusted-services.readthedocs.io/en/v1.0.0/developer/service-access-protocols.html#abi
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 93abbb315065..550863200d44 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4040,7 +4040,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
> F: Documentation/ABI/testing/sysfs-firmware-cca
> F: Documentation/arch/arm64/
> F: arch/arm64/
> -F: drivers/firmware/arm_rmm/
> +F: drivers/firmware/arm/rmm/
> F: drivers/virt/coco/arm-cca-guest/
> F: drivers/virt/coco/pkvm-guest/
> F: include/linux/arm-rmi-cmds.h
> @@ -10462,7 +10462,7 @@ FIRMWARE FRAMEWORK FOR ARMV8-A
> M: Sudeep Holla <sudeep.holla@kernel.org>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> -F: drivers/firmware/arm_ffa/
> +F: drivers/firmware/arm/ffa/
> F: include/linux/arm_ffa.h
>
> FIRMWARE LOADER (request_firmware)
> @@ -22265,7 +22265,7 @@ M: Lorenzo Pieralisi <lpieralisi@kernel.org>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: Documentation/devicetree/bindings/arm/psci.yaml
> -F: drivers/firmware/psci/
> +F: drivers/firmware/arm/psci/
> F: include/linux/psci.h
> F: include/uapi/linux/psci.h
>
> @@ -25374,9 +25374,9 @@ M: Lorenzo Pieralisi <lpieralisi@kernel.org>
> M: Sudeep Holla <sudeep.holla@kernel.org>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> -F: drivers/firmware/smccc/
> -F: include/linux/arm-smccc-bus.h
> +F: drivers/firmware/arm/smccc/
> F: include/linux/arm-smccc.h
> +F: include/linux/arm-smccc-bus.h
> F: include/linux/device-id/arm_smccc.h
>
> SECURITY CONTACT
> @@ -26000,7 +26000,7 @@ M: James Morse <james.morse@arm.com>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: Documentation/devicetree/bindings/arm/firmware/sdei.txt
> -F: drivers/firmware/arm_sdei*
> +F: drivers/firmware/arm/sdei*
> F: include/linux/arm_sdei.h
> F: include/uapi/linux/arm_sdei.h
>
> @@ -27262,8 +27262,8 @@ S: Maintained
> F: Documentation/devicetree/bindings/firmware/arm,sc[mp]i.yaml
> F: drivers/clk/clk-sc[mp]i.c
> F: drivers/cpufreq/sc[mp]i-cpufreq.c
> -F: drivers/firmware/arm_scmi/
> -F: drivers/firmware/arm_scpi.c
> +F: drivers/firmware/arm/scmi/
> +F: drivers/firmware/arm/scpi.c
> F: drivers/hwmon/scmi-hwmon.c
> F: drivers/pinctrl/pinctrl-scmi.c
> F: drivers/pmdomain/arm/
> @@ -27282,7 +27282,7 @@ L: imx@lists.linux.dev
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: Documentation/devicetree/bindings/firmware/nxp,*scmi.yaml
> -F: drivers/firmware/arm_scmi/vendors/imx/
> +F: drivers/firmware/arm/scmi/vendors/imx/
>
> SYSTEM RESET/SHUTDOWN DRIVERS
> M: Sebastian Reichel <sre@kernel.org>
> diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
> index 43e2e2a64594..2097547850e7 100644
> --- a/drivers/firmware/Kconfig
> +++ b/drivers/firmware/Kconfig
> @@ -6,60 +6,11 @@
>
> menu "Firmware Drivers"
>
> -source "drivers/firmware/arm_scmi/Kconfig"
> +source "drivers/firmware/arm/Kconfig"
>
> config FW_ATTR_CLASS
> tristate
>
> -config ARM_SCPI_PROTOCOL
> - tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
> - depends on ARM || ARM64 || COMPILE_TEST
> - depends on MAILBOX
> - help
> - System Control and Power Interface (SCPI) Message Protocol is
> - defined for the purpose of communication between the Application
> - Cores(AP) and the System Control Processor(SCP). The MHU peripheral
> - provides a mechanism for inter-processor communication between SCP
> - and AP.
> -
> - SCP controls most of the power management on the Application
> - Processors. It offers control and management of: the core/cluster
> - power states, various power domain DVFS including the core/cluster,
> - certain system clocks configuration, thermal sensors and many
> - others.
> -
> - This protocol library provides interface for all the client drivers
> - making use of the features offered by the SCP.
> -
> -config ARM_SDE_INTERFACE
> - bool "ARM Software Delegated Exception Interface (SDEI)"
> - depends on ARM64
> - help
> - The Software Delegated Exception Interface (SDEI) is an ARM
> - standard for registering callbacks from the platform firmware
> - into the OS. This is typically used to implement RAS notifications.
> -
> -config ARM_SDEI_NMI
> - bool "SDEI-based cross-CPU NMI service (arm64)"
> - depends on ARM_SDE_INTERFACE
> - help
> - Provides SDEI-based cross-CPU NMI delivery for hooks that need
> - to reach interrupt-masked CPUs on silicon that lacks FEAT_NMI:
> -
> - - arch_trigger_cpumask_backtrace() (sysrq-l, RCU stalls,
> - hardlockup_all_cpu_backtrace, soft-lockup secondary dumps,
> - hung-task auxiliary dumps)
> - - smp_send_stop() escalation (reboot/halt and the
> - panic / kdump crash stop)
> -
> - The driver registers a handler for the SDEI software-signalled
> - event (event 0) and reaches a target CPU by signalling it with
> - SDEI_EVENT_SIGNAL. Firmware delivers the event out of EL3
> - regardless of the target's PSTATE.DAIF -- forced delivery into a
> - CPU wedged with interrupts locally masked.
> -
> - If unsure, say N.
> -
> config EDD
> tristate "BIOS Enhanced Disk Drive calls determine boot disk"
> depends on X86
> @@ -299,8 +250,6 @@ config TURRIS_MOX_RWTM_KEYCTL
>
> endif # TURRIS_MOX_RWTM
>
> -source "drivers/firmware/arm_ffa/Kconfig"
> -source "drivers/firmware/arm_rmm/Kconfig"
> source "drivers/firmware/broadcom/Kconfig"
> source "drivers/firmware/cirrus/Kconfig"
> source "drivers/firmware/coreboot/Kconfig"
> @@ -308,10 +257,8 @@ source "drivers/firmware/efi/Kconfig"
> source "drivers/firmware/imx/Kconfig"
> source "drivers/firmware/meson/Kconfig"
> source "drivers/firmware/microchip/Kconfig"
> -source "drivers/firmware/psci/Kconfig"
> source "drivers/firmware/qcom/Kconfig"
> source "drivers/firmware/samsung/Kconfig"
> -source "drivers/firmware/smccc/Kconfig"
> source "drivers/firmware/tegra/Kconfig"
> source "drivers/firmware/xilinx/Kconfig"
>
> diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile
> index 50b338313152..f347328e0a0c 100644
> --- a/drivers/firmware/Makefile
> +++ b/drivers/firmware/Makefile
> @@ -2,9 +2,6 @@
> #
> # Makefile for the linux kernel.
> #
> -obj-$(CONFIG_ARM_SCPI_PROTOCOL) += arm_scpi.o
> -obj-$(CONFIG_ARM_SDE_INTERFACE) += arm_sdei.o
> -obj-$(CONFIG_ARM_SDEI_NMI) += arm_sdei_nmi.o
> obj-$(CONFIG_DMI) += dmi_scan.o
> obj-$(CONFIG_DMI_SYSFS) += dmi-sysfs.o
> obj-$(CONFIG_EDD) += edd.o
> @@ -25,9 +22,7 @@ obj-$(CONFIG_TI_SCI_PROTOCOL) += ti_sci.o
> obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
> obj-$(CONFIG_TURRIS_MOX_RWTM) += turris-mox-rwtm.o
>
> -obj-y += arm_ffa/
> -obj-y += arm_rmm/
> -obj-y += arm_scmi/
> +obj-y += arm/
> obj-y += broadcom/
> obj-y += cirrus/
> obj-y += meson/
> @@ -35,9 +30,7 @@ obj-y += microchip/
> obj-$(CONFIG_COREBOOT_FIRMWARE) += coreboot/
> obj-y += efi/
> obj-y += imx/
> -obj-y += psci/
> obj-y += qcom/
> obj-y += samsung/
> -obj-y += smccc/
> obj-y += tegra/
> obj-y += xilinx/
> diff --git a/drivers/firmware/arm/Kconfig b/drivers/firmware/arm/Kconfig
> new file mode 100644
> index 000000000000..c980a847f233
> --- /dev/null
> +++ b/drivers/firmware/arm/Kconfig
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +source "drivers/firmware/arm/ffa/Kconfig"
> +source "drivers/firmware/arm/psci/Kconfig"
> +source "drivers/firmware/arm/rmm/Kconfig"
> +source "drivers/firmware/arm/scmi/Kconfig"
> +source "drivers/firmware/arm/smccc/Kconfig"
> +
> +config ARM_SCPI_PROTOCOL
> + tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
> + depends on ARM || ARM64 || COMPILE_TEST
> + depends on MAILBOX
> + help
> + System Control and Power Interface (SCPI) Message Protocol is
> + defined for the purpose of communication between the Application
> + Cores(AP) and the System Control Processor(SCP). The MHU peripheral
> + provides a mechanism for inter-processor communication between SCP
> + and AP.
> +
> + SCP controls most of the power management on the Application
> + Processors. It offers control and management of: the core/cluster
> + power states, various power domain DVFS including the core/cluster,
> + certain system clocks configuration, thermal sensors and many
> + others.
> +
> + This protocol library provides interface for all the client drivers
> + making use of the features offered by the SCP.
> +
> +config ARM_SDE_INTERFACE
> + bool "ARM Software Delegated Exception Interface (SDEI)"
> + depends on ARM64
> + help
> + The Software Delegated Exception Interface (SDEI) is an ARM
> + standard for registering callbacks from the platform firmware
> + into the OS. This is typically used to implement RAS notifications.
> +
> +config ARM_SDEI_NMI
> + bool "SDEI-based cross-CPU NMI service (arm64)"
> + depends on ARM_SDE_INTERFACE
> + help
> + Provides SDEI-based cross-CPU NMI delivery for hooks that need
> + to reach interrupt-masked CPUs on silicon that lacks FEAT_NMI:
> +
> + - arch_trigger_cpumask_backtrace() (sysrq-l, RCU stalls,
> + hardlockup_all_cpu_backtrace, soft-lockup secondary dumps,
> + hung-task auxiliary dumps)
> + - smp_send_stop() escalation (reboot/halt and the
> + panic / kdump crash stop)
> +
> + The driver registers a handler for the SDEI software-signalled
> + event (event 0) and reaches a target CPU by signalling it with
> + SDEI_EVENT_SIGNAL. Firmware delivers the event out of EL3
> + regardless of the target's PSTATE.DAIF -- forced delivery into a
> + CPU wedged with interrupts locally masked.
> +
> + If unsure, say N.
> diff --git a/drivers/firmware/arm/Makefile b/drivers/firmware/arm/Makefile
> new file mode 100644
> index 000000000000..5e90380a0666
> --- /dev/null
> +++ b/drivers/firmware/arm/Makefile
> @@ -0,0 +1,11 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_ARM_SCPI_PROTOCOL) += scpi.o
> +obj-$(CONFIG_ARM_SDE_INTERFACE) += sdei.o
> +obj-$(CONFIG_ARM_SDEI_NMI) += sdei_nmi.o
> +
> +obj-y += ffa/
> +obj-y += psci/
> +obj-y += rmm/
> +obj-y += scmi/
> +obj-y += smccc/
> diff --git a/drivers/firmware/arm_ffa/Kconfig b/drivers/firmware/arm/ffa/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_ffa/Kconfig
> rename to drivers/firmware/arm/ffa/Kconfig
> diff --git a/drivers/firmware/arm_ffa/Makefile b/drivers/firmware/arm/ffa/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_ffa/Makefile
> rename to drivers/firmware/arm/ffa/Makefile
> diff --git a/drivers/firmware/arm_ffa/bus.c b/drivers/firmware/arm/ffa/bus.c
> similarity index 100%
> rename from drivers/firmware/arm_ffa/bus.c
> rename to drivers/firmware/arm/ffa/bus.c
> diff --git a/drivers/firmware/arm_ffa/common.h b/drivers/firmware/arm/ffa/common.h
> similarity index 100%
> rename from drivers/firmware/arm_ffa/common.h
> rename to drivers/firmware/arm/ffa/common.h
> diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm/ffa/driver.c
> similarity index 100%
> rename from drivers/firmware/arm_ffa/driver.c
> rename to drivers/firmware/arm/ffa/driver.c
> diff --git a/drivers/firmware/arm_ffa/smccc.c b/drivers/firmware/arm/ffa/smccc.c
> similarity index 100%
> rename from drivers/firmware/arm_ffa/smccc.c
> rename to drivers/firmware/arm/ffa/smccc.c
> diff --git a/drivers/firmware/psci/Kconfig b/drivers/firmware/arm/psci/Kconfig
> similarity index 100%
> rename from drivers/firmware/psci/Kconfig
> rename to drivers/firmware/arm/psci/Kconfig
> diff --git a/drivers/firmware/psci/Makefile b/drivers/firmware/arm/psci/Makefile
> similarity index 100%
> rename from drivers/firmware/psci/Makefile
> rename to drivers/firmware/arm/psci/Makefile
> diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/arm/psci/psci.c
> similarity index 100%
> rename from drivers/firmware/psci/psci.c
> rename to drivers/firmware/arm/psci/psci.c
> diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/arm/psci/psci_checker.c
> similarity index 100%
> rename from drivers/firmware/psci/psci_checker.c
> rename to drivers/firmware/arm/psci/psci_checker.c
> diff --git a/drivers/firmware/arm_rmm/Kconfig b/drivers/firmware/arm/rmm/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_rmm/Kconfig
> rename to drivers/firmware/arm/rmm/Kconfig
> diff --git a/drivers/firmware/arm_rmm/Makefile b/drivers/firmware/arm/rmm/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_rmm/Makefile
> rename to drivers/firmware/arm/rmm/Makefile
> diff --git a/drivers/firmware/arm_rmm/rmi.c b/drivers/firmware/arm/rmm/rmi.c
> similarity index 100%
> rename from drivers/firmware/arm_rmm/rmi.c
> rename to drivers/firmware/arm/rmm/rmi.c
> diff --git a/drivers/firmware/arm_rmm/rsi.c b/drivers/firmware/arm/rmm/rsi.c
> similarity index 100%
> rename from drivers/firmware/arm_rmm/rsi.c
> rename to drivers/firmware/arm/rmm/rsi.c
> diff --git a/drivers/firmware/arm_scmi/Kconfig b/drivers/firmware/arm/scmi/Kconfig
> similarity index 97%
> rename from drivers/firmware/arm_scmi/Kconfig
> rename to drivers/firmware/arm/scmi/Kconfig
> index 9f6241efd592..2b62679598ea 100644
> --- a/drivers/firmware/arm_scmi/Kconfig
> +++ b/drivers/firmware/arm/scmi/Kconfig
> @@ -82,8 +82,8 @@ config ARM_SCMI_QUIRKS
> depending on the SCMI firmware advertised versions and/or machine
> compatibles.
>
> -source "drivers/firmware/arm_scmi/transports/Kconfig"
> -source "drivers/firmware/arm_scmi/vendors/imx/Kconfig"
> +source "drivers/firmware/arm/scmi/transports/Kconfig"
> +source "drivers/firmware/arm/scmi/vendors/imx/Kconfig"
>
> endif #ARM_SCMI_PROTOCOL
>
> diff --git a/drivers/firmware/arm_scmi/Makefile b/drivers/firmware/arm/scmi/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_scmi/Makefile
> rename to drivers/firmware/arm/scmi/Makefile
> diff --git a/drivers/firmware/arm_scmi/base.c b/drivers/firmware/arm/scmi/base.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/base.c
> rename to drivers/firmware/arm/scmi/base.c
> diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm/scmi/bus.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/bus.c
> rename to drivers/firmware/arm/scmi/bus.c
> diff --git a/drivers/firmware/arm_scmi/clock.c b/drivers/firmware/arm/scmi/clock.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/clock.c
> rename to drivers/firmware/arm/scmi/clock.c
> diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm/scmi/common.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/common.h
> rename to drivers/firmware/arm/scmi/common.h
> diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm/scmi/driver.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/driver.c
> rename to drivers/firmware/arm/scmi/driver.c
> diff --git a/drivers/firmware/arm_scmi/msg.c b/drivers/firmware/arm/scmi/msg.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/msg.c
> rename to drivers/firmware/arm/scmi/msg.c
> diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm/scmi/notify.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/notify.c
> rename to drivers/firmware/arm/scmi/notify.c
> diff --git a/drivers/firmware/arm_scmi/notify.h b/drivers/firmware/arm/scmi/notify.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/notify.h
> rename to drivers/firmware/arm/scmi/notify.h
> diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm/scmi/perf.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/perf.c
> rename to drivers/firmware/arm/scmi/perf.c
> diff --git a/drivers/firmware/arm_scmi/pinctrl.c b/drivers/firmware/arm/scmi/pinctrl.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/pinctrl.c
> rename to drivers/firmware/arm/scmi/pinctrl.c
> diff --git a/drivers/firmware/arm_scmi/power.c b/drivers/firmware/arm/scmi/power.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/power.c
> rename to drivers/firmware/arm/scmi/power.c
> diff --git a/drivers/firmware/arm_scmi/powercap.c b/drivers/firmware/arm/scmi/powercap.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/powercap.c
> rename to drivers/firmware/arm/scmi/powercap.c
> diff --git a/drivers/firmware/arm_scmi/protocols.h b/drivers/firmware/arm/scmi/protocols.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/protocols.h
> rename to drivers/firmware/arm/scmi/protocols.h
> diff --git a/drivers/firmware/arm_scmi/quirks.c b/drivers/firmware/arm/scmi/quirks.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/quirks.c
> rename to drivers/firmware/arm/scmi/quirks.c
> diff --git a/drivers/firmware/arm_scmi/quirks.h b/drivers/firmware/arm/scmi/quirks.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/quirks.h
> rename to drivers/firmware/arm/scmi/quirks.h
> diff --git a/drivers/firmware/arm_scmi/raw_mode.c b/drivers/firmware/arm/scmi/raw_mode.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/raw_mode.c
> rename to drivers/firmware/arm/scmi/raw_mode.c
> diff --git a/drivers/firmware/arm_scmi/raw_mode.h b/drivers/firmware/arm/scmi/raw_mode.h
> similarity index 100%
> rename from drivers/firmware/arm_scmi/raw_mode.h
> rename to drivers/firmware/arm/scmi/raw_mode.h
> diff --git a/drivers/firmware/arm_scmi/reset.c b/drivers/firmware/arm/scmi/reset.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/reset.c
> rename to drivers/firmware/arm/scmi/reset.c
> diff --git a/drivers/firmware/arm_scmi/scmi_power_control.c b/drivers/firmware/arm/scmi/scmi_power_control.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/scmi_power_control.c
> rename to drivers/firmware/arm/scmi/scmi_power_control.c
> diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm/scmi/sensors.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/sensors.c
> rename to drivers/firmware/arm/scmi/sensors.c
> diff --git a/drivers/firmware/arm_scmi/shmem.c b/drivers/firmware/arm/scmi/shmem.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/shmem.c
> rename to drivers/firmware/arm/scmi/shmem.c
> diff --git a/drivers/firmware/arm_scmi/system.c b/drivers/firmware/arm/scmi/system.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/system.c
> rename to drivers/firmware/arm/scmi/system.c
> diff --git a/drivers/firmware/arm_scmi/transports/Kconfig b/drivers/firmware/arm/scmi/transports/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/Kconfig
> rename to drivers/firmware/arm/scmi/transports/Kconfig
> diff --git a/drivers/firmware/arm_scmi/transports/Makefile b/drivers/firmware/arm/scmi/transports/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/Makefile
> rename to drivers/firmware/arm/scmi/transports/Makefile
> diff --git a/drivers/firmware/arm_scmi/transports/mailbox.c b/drivers/firmware/arm/scmi/transports/mailbox.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/mailbox.c
> rename to drivers/firmware/arm/scmi/transports/mailbox.c
> diff --git a/drivers/firmware/arm_scmi/transports/optee.c b/drivers/firmware/arm/scmi/transports/optee.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/optee.c
> rename to drivers/firmware/arm/scmi/transports/optee.c
> diff --git a/drivers/firmware/arm_scmi/transports/pcc.c b/drivers/firmware/arm/scmi/transports/pcc.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/pcc.c
> rename to drivers/firmware/arm/scmi/transports/pcc.c
> diff --git a/drivers/firmware/arm_scmi/transports/smc.c b/drivers/firmware/arm/scmi/transports/smc.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/smc.c
> rename to drivers/firmware/arm/scmi/transports/smc.c
> diff --git a/drivers/firmware/arm_scmi/transports/virtio.c b/drivers/firmware/arm/scmi/transports/virtio.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/transports/virtio.c
> rename to drivers/firmware/arm/scmi/transports/virtio.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/Kconfig b/drivers/firmware/arm/scmi/vendors/imx/Kconfig
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/Kconfig
> rename to drivers/firmware/arm/scmi/vendors/imx/Kconfig
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/Makefile b/drivers/firmware/arm/scmi/vendors/imx/Makefile
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/Makefile
> rename to drivers/firmware/arm/scmi/vendors/imx/Makefile
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-bbm.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-bbm.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-cpu.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-cpu.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-lmm.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-lmm.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c b/drivers/firmware/arm/scmi/vendors/imx/imx-sm-misc.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c
> rename to drivers/firmware/arm/scmi/vendors/imx/imx-sm-misc.c
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm/scmi/vendors/imx/imx95.rst
> similarity index 100%
> rename from drivers/firmware/arm_scmi/vendors/imx/imx95.rst
> rename to drivers/firmware/arm/scmi/vendors/imx/imx95.rst
> diff --git a/drivers/firmware/arm_scmi/voltage.c b/drivers/firmware/arm/scmi/voltage.c
> similarity index 100%
> rename from drivers/firmware/arm_scmi/voltage.c
> rename to drivers/firmware/arm/scmi/voltage.c
> diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm/scpi.c
> similarity index 100%
> rename from drivers/firmware/arm_scpi.c
> rename to drivers/firmware/arm/scpi.c
> diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm/sdei.c
> similarity index 100%
> rename from drivers/firmware/arm_sdei.c
> rename to drivers/firmware/arm/sdei.c
> diff --git a/drivers/firmware/arm_sdei_nmi.c b/drivers/firmware/arm/sdei_nmi.c
> similarity index 100%
> rename from drivers/firmware/arm_sdei_nmi.c
> rename to drivers/firmware/arm/sdei_nmi.c
There are other two source files where updates are needed to reflect the
renaming (drivers/firmware/arm_sdei_nmi.c -> drivers/firmware/arm/sdei_nmi.c).
gshan@gshan-thinkpadx1nanogen2:~/sandbox/l$ git grep arm_sdei_nmi\.c
arch/arm64/include/asm/nmi.h: * drivers/firmware/arm_sdei_nmi.c implements them when active; a future
arch/arm64/kernel/smp.c: * - the SDEI cross-CPU NMI handler (drivers/firmware/arm_sdei_nmi.c),
> diff --git a/drivers/firmware/smccc/Kconfig b/drivers/firmware/arm/smccc/Kconfig
> similarity index 100%
> rename from drivers/firmware/smccc/Kconfig
> rename to drivers/firmware/arm/smccc/Kconfig
> diff --git a/drivers/firmware/smccc/Makefile b/drivers/firmware/arm/smccc/Makefile
> similarity index 100%
> rename from drivers/firmware/smccc/Makefile
> rename to drivers/firmware/arm/smccc/Makefile
> diff --git a/drivers/firmware/smccc/bus.c b/drivers/firmware/arm/smccc/bus.c
> similarity index 100%
> rename from drivers/firmware/smccc/bus.c
> rename to drivers/firmware/arm/smccc/bus.c
> diff --git a/drivers/firmware/smccc/kvm_guest.c b/drivers/firmware/arm/smccc/kvm_guest.c
> similarity index 100%
> rename from drivers/firmware/smccc/kvm_guest.c
> rename to drivers/firmware/arm/smccc/kvm_guest.c
> diff --git a/drivers/firmware/smccc/smccc.c b/drivers/firmware/arm/smccc/smccc.c
> similarity index 100%
> rename from drivers/firmware/smccc/smccc.c
> rename to drivers/firmware/arm/smccc/smccc.c
> diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/arm/smccc/soc_id.c
> similarity index 100%
> rename from drivers/firmware/smccc/soc_id.c
> rename to drivers/firmware/arm/smccc/soc_id.c
Thanks,
Gavin
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2] firmware: arm: Group interface drivers under arm/
2026-11-10 3:27 ` Gavin Shan
@ 2026-11-10 7:53 ` Sudeep Holla
0 siblings, 0 replies; 6+ messages in thread
From: Sudeep Holla @ 2026-11-10 7:53 UTC (permalink / raw)
To: Gavin Shan
Cc: Arnd Bergmann, linux-arm-kernel, Sudeep Holla, Mark Rutland,
Lorenzo Pieralisi, Catalin Marinas, Will Deacon, James Morse,
Cristian Marussi, Suzuki K Poulose, Yeoreum Yun, Arnd Bergmann,
Andre Przywara
On Tue, Nov 10, 2026 at 01:27:24PM +1000, Gavin Shan wrote:
> Hi Sudeep,
>
> On 11/6/26 9:50 PM, Sudeep Holla wrote:
> > Arm firmware interface drivers currently live directly under
> > drivers/firmware/. Some use an arm_ prefix while others use generic
> > names. More Arm firmware interface drivers, such as:
> >
> > 1. Live Firmware Activation (LFA) [1]
> > 2. Firmware Interfaces for Realm Management Extension (FIRME) [2]
> >
> > expected soon, which would further crowd the top-level directory.
> >
> > There are couple of other possible arm specific firmware interfaces
> > that may need to reside there.
> >
> > Create drivers/firmware/arm/ as the common home for Arm firmware
> > interface drivers. Move FF-A, PSCI, RMM, SCMI, SCPI, SDEI, and SMCCC
> > under it, drop the redundant arm_ prefix from the some directory/file
> > names. Update the Kconfig, Kbuild, maintainer and documentation paths.
> >
> > The resulting hierarchy provides room for upcoming interfaces without
> > continuing to add Arm-specific directories at the firmware root.
> >
> > [1] https://lore.kernel.org/all/20261102165421.3651202-1-andre.przywara@arm.com/
> > [2] https://lore.kernel.org/all/20261019-firme_interface-v1-0-27895c9cebaa@arm.com/
> >
> > Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
> > ---
> >
> > v1[1]->v2:
> > - Rebased on v7.4-rc1
> > - Fixed missing rmm folder movement in Kconfig and Makefile
> >
> > [1] https://lore.kernel.org/all/20261022090003.3083557-1-sudeep.holla@kernel.org/
> >
[...]
> > rename from drivers/firmware/arm_sdei.c
> > rename to drivers/firmware/arm/sdei.c
> > diff --git a/drivers/firmware/arm_sdei_nmi.c b/drivers/firmware/arm/sdei_nmi.c
> > similarity index 100%
> > rename from drivers/firmware/arm_sdei_nmi.c
> > rename to drivers/firmware/arm/sdei_nmi.c
>
> There are other two source files where updates are needed to reflect the
> renaming (drivers/firmware/arm_sdei_nmi.c -> drivers/firmware/arm/sdei_nmi.c).
>
> gshan@gshan-thinkpadx1nanogen2:~/sandbox/l$ git grep arm_sdei_nmi\.c
> arch/arm64/include/asm/nmi.h: * drivers/firmware/arm_sdei_nmi.c implements them when active; a future
> arch/arm64/kernel/smp.c: * - the SDEI cross-CPU NMI handler (drivers/firmware/arm_sdei_nmi.c),
>
Indeed, I have a patch that I plan to send as a fix once this lands in
the upstream to avoid unnecessary dependency/conflicts across tree for
such silly thing.
Regards,
Sudeep
-->8
From 60c25986d81c86b0e966159715cf982d63308422 Mon Sep 17 00:00:00 2001
From: Sudeep Holla <sudeep.holla@kernel.org>
Date: Fri, 6 Nov 2026 13:49:13 +0000
Subject: [PATCH] arm64: Update stale path references to sdei_nmi.c
Commit ceb90a70d571 ("firmware: arm: Group interface drivers under
arm/") moved drivers/firmware/arm_sdei_nmi.c to
drivers/firmware/arm/sdei_nmi.c but left two comment references
pointing to the old path.
Update the comments in nmi.h and smp.c to reflect the new location.
Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
---
arch/arm64/include/asm/nmi.h | 2 +-
arch/arm64/kernel/smp.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/include/asm/nmi.h b/arch/arm64/include/asm/nmi.h
index 2e8974ff8d63..e2956b24b627 100644
--- a/arch/arm64/include/asm/nmi.h
+++ b/arch/arm64/include/asm/nmi.h
@@ -9,7 +9,7 @@ struct pt_regs;
/*
* Cross-CPU NMI provider hooks, consulted by the arm64 arch code before
* its regular-IRQ / pseudo-NMI IPI paths. The SDEI provider in
- * drivers/firmware/arm_sdei_nmi.c implements them when active; a future
+ * drivers/firmware/arm/sdei_nmi.c implements them when active; a future
* FEAT_NMI provider could slot in here too. The stubs let callers stay
* unconditional when ARM_SDEI_NMI is off.
*
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 014b163ce658..18e117fea1fc 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -881,7 +881,7 @@ void arch_irq_work_raise(void)
*
* - the regular IPI_CPU_STOP and pseudo-NMI IPI_CPU_STOP_NMI handlers;
* - panic_smp_self_stop(), a CPU parking itself on a parallel panic();
- * - the SDEI cross-CPU NMI handler (drivers/firmware/arm_sdei_nmi.c),
+ * - the SDEI cross-CPU NMI handler (drivers/firmware/arm/sdei_nmi.c),
* which reaches CPUs the stop IPIs could not.
*
* The IPI stop handlers pass @die_on_crash true. The SDEI handler and
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] firmware: arm: Group interface drivers under arm/
2026-11-06 11:50 [PATCH v2] firmware: arm: Group interface drivers under arm/ Sudeep Holla
` (2 preceding siblings ...)
2026-11-10 3:27 ` Gavin Shan
@ 2026-11-10 23:40 ` Gavin Shan
3 siblings, 0 replies; 6+ messages in thread
From: Gavin Shan @ 2026-11-10 23:40 UTC (permalink / raw)
To: Sudeep Holla, Arnd Bergmann, linux-arm-kernel
Cc: Mark Rutland, Lorenzo Pieralisi, Catalin Marinas, Will Deacon,
James Morse, Cristian Marussi, Suzuki K Poulose, Yeoreum Yun,
Arnd Bergmann, Andre Przywara
On 11/6/26 9:50 PM, Sudeep Holla wrote:
> Arm firmware interface drivers currently live directly under
> drivers/firmware/. Some use an arm_ prefix while others use generic
> names. More Arm firmware interface drivers, such as:
>
> 1. Live Firmware Activation (LFA) [1]
> 2. Firmware Interfaces for Realm Management Extension (FIRME) [2]
>
> expected soon, which would further crowd the top-level directory.
>
> There are couple of other possible arm specific firmware interfaces
> that may need to reside there.
>
> Create drivers/firmware/arm/ as the common home for Arm firmware
> interface drivers. Move FF-A, PSCI, RMM, SCMI, SCPI, SDEI, and SMCCC
> under it, drop the redundant arm_ prefix from the some directory/file
> names. Update the Kconfig, Kbuild, maintainer and documentation paths.
>
> The resulting hierarchy provides room for upcoming interfaces without
> continuing to add Arm-specific directories at the firmware root.
>
> [1] https://lore.kernel.org/all/20261102165421.3651202-1-andre.przywara@arm.com/
> [2] https://lore.kernel.org/all/20261019-firme_interface-v1-0-27895c9cebaa@arm.com/
>
> Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
> ---
>
> v1[1]->v2:
> - Rebased on v7.4-rc1
> - Fixed missing rmm folder movement in Kconfig and Makefile
>
> [1] https://lore.kernel.org/all/20261022090003.3083557-1-sudeep.holla@kernel.org/
>
> Documentation/tee/ts-tee.rst | 2 +-
> MAINTAINERS | 18 +++---
> drivers/firmware/Kconfig | 55 +-----------------
> drivers/firmware/Makefile | 9 +--
> drivers/firmware/arm/Kconfig | 56 +++++++++++++++++++
> drivers/firmware/arm/Makefile | 11 ++++
> drivers/firmware/{arm_ffa => arm/ffa}/Kconfig | 0
> .../firmware/{arm_ffa => arm/ffa}/Makefile | 0
> drivers/firmware/{arm_ffa => arm/ffa}/bus.c | 0
> .../firmware/{arm_ffa => arm/ffa}/common.h | 0
> .../firmware/{arm_ffa => arm/ffa}/driver.c | 0
> drivers/firmware/{arm_ffa => arm/ffa}/smccc.c | 0
> drivers/firmware/{ => arm}/psci/Kconfig | 0
> drivers/firmware/{ => arm}/psci/Makefile | 0
> drivers/firmware/{ => arm}/psci/psci.c | 0
> .../firmware/{ => arm}/psci/psci_checker.c | 0
> drivers/firmware/{arm_rmm => arm/rmm}/Kconfig | 0
> .../firmware/{arm_rmm => arm/rmm}/Makefile | 0
> drivers/firmware/{arm_rmm => arm/rmm}/rmi.c | 0
> drivers/firmware/{arm_rmm => arm/rmm}/rsi.c | 0
> .../firmware/{arm_scmi => arm/scmi}/Kconfig | 4 +-
> .../firmware/{arm_scmi => arm/scmi}/Makefile | 0
> .../firmware/{arm_scmi => arm/scmi}/base.c | 0
> drivers/firmware/{arm_scmi => arm/scmi}/bus.c | 0
> .../firmware/{arm_scmi => arm/scmi}/clock.c | 0
> .../firmware/{arm_scmi => arm/scmi}/common.h | 0
> .../firmware/{arm_scmi => arm/scmi}/driver.c | 0
> drivers/firmware/{arm_scmi => arm/scmi}/msg.c | 0
> .../firmware/{arm_scmi => arm/scmi}/notify.c | 0
> .../firmware/{arm_scmi => arm/scmi}/notify.h | 0
> .../firmware/{arm_scmi => arm/scmi}/perf.c | 0
> .../firmware/{arm_scmi => arm/scmi}/pinctrl.c | 0
> .../firmware/{arm_scmi => arm/scmi}/power.c | 0
> .../{arm_scmi => arm/scmi}/powercap.c | 0
> .../{arm_scmi => arm/scmi}/protocols.h | 0
> .../firmware/{arm_scmi => arm/scmi}/quirks.c | 0
> .../firmware/{arm_scmi => arm/scmi}/quirks.h | 0
> .../{arm_scmi => arm/scmi}/raw_mode.c | 0
> .../{arm_scmi => arm/scmi}/raw_mode.h | 0
> .../firmware/{arm_scmi => arm/scmi}/reset.c | 0
> .../scmi}/scmi_power_control.c | 0
> .../firmware/{arm_scmi => arm/scmi}/sensors.c | 0
> .../firmware/{arm_scmi => arm/scmi}/shmem.c | 0
> .../firmware/{arm_scmi => arm/scmi}/system.c | 0
> .../{arm_scmi => arm/scmi}/transports/Kconfig | 0
> .../scmi}/transports/Makefile | 0
> .../scmi}/transports/mailbox.c | 0
> .../{arm_scmi => arm/scmi}/transports/optee.c | 0
> .../{arm_scmi => arm/scmi}/transports/pcc.c | 0
> .../{arm_scmi => arm/scmi}/transports/smc.c | 0
> .../scmi}/transports/virtio.c | 0
> .../scmi}/vendors/imx/Kconfig | 0
> .../scmi}/vendors/imx/Makefile | 0
> .../scmi}/vendors/imx/imx-sm-bbm.c | 0
> .../scmi}/vendors/imx/imx-sm-cpu.c | 0
> .../scmi}/vendors/imx/imx-sm-lmm.c | 0
> .../scmi}/vendors/imx/imx-sm-misc.c | 0
> .../scmi}/vendors/imx/imx95.rst | 0
> .../firmware/{arm_scmi => arm/scmi}/voltage.c | 0
> drivers/firmware/{arm_scpi.c => arm/scpi.c} | 0
> drivers/firmware/{arm_sdei.c => arm/sdei.c} | 0
> .../{arm_sdei_nmi.c => arm/sdei_nmi.c} | 0
> drivers/firmware/{ => arm}/smccc/Kconfig | 0
> drivers/firmware/{ => arm}/smccc/Makefile | 0
> drivers/firmware/{ => arm}/smccc/bus.c | 0
> drivers/firmware/{ => arm}/smccc/kvm_guest.c | 0
> drivers/firmware/{ => arm}/smccc/smccc.c | 0
> drivers/firmware/{ => arm}/smccc/soc_id.c | 0
> 68 files changed, 81 insertions(+), 74 deletions(-)
> create mode 100644 drivers/firmware/arm/Kconfig
> create mode 100644 drivers/firmware/arm/Makefile
> rename drivers/firmware/{arm_ffa => arm/ffa}/Kconfig (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/Makefile (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/bus.c (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/common.h (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/driver.c (100%)
> rename drivers/firmware/{arm_ffa => arm/ffa}/smccc.c (100%)
> rename drivers/firmware/{ => arm}/psci/Kconfig (100%)
> rename drivers/firmware/{ => arm}/psci/Makefile (100%)
> rename drivers/firmware/{ => arm}/psci/psci.c (100%)
> rename drivers/firmware/{ => arm}/psci/psci_checker.c (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/Kconfig (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/Makefile (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/rmi.c (100%)
> rename drivers/firmware/{arm_rmm => arm/rmm}/rsi.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/Kconfig (97%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/base.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/bus.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/clock.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/common.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/driver.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/msg.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/notify.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/notify.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/perf.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/pinctrl.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/power.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/powercap.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/protocols.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/quirks.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/quirks.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/raw_mode.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/raw_mode.h (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/reset.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/scmi_power_control.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/sensors.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/shmem.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/system.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/Kconfig (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/mailbox.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/optee.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/pcc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/smc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/transports/virtio.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/Kconfig (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/Makefile (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-bbm.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-cpu.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-lmm.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx-sm-misc.c (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/vendors/imx/imx95.rst (100%)
> rename drivers/firmware/{arm_scmi => arm/scmi}/voltage.c (100%)
> rename drivers/firmware/{arm_scpi.c => arm/scpi.c} (100%)
> rename drivers/firmware/{arm_sdei.c => arm/sdei.c} (100%)
> rename drivers/firmware/{arm_sdei_nmi.c => arm/sdei_nmi.c} (100%)
> rename drivers/firmware/{ => arm}/smccc/Kconfig (100%)
> rename drivers/firmware/{ => arm}/smccc/Makefile (100%)
> rename drivers/firmware/{ => arm}/smccc/bus.c (100%)
> rename drivers/firmware/{ => arm}/smccc/kvm_guest.c (100%)
> rename drivers/firmware/{ => arm}/smccc/smccc.c (100%)
> rename drivers/firmware/{ => arm}/smccc/soc_id.c (100%)
>
Reviewed-by: Gavin Shan <gshan@redhat.com>
^ permalink raw reply [flat|nested] 6+ messages in thread