[PATCH v12 3/7] firmware: arm_rmm: Move RSI support out of arch/arm64

Catalin Marinas catalin.marinas at arm.com
Mon Sep 21 01:50:06 PDT 2026


On Mon, Sep 21, 2026 at 11:08:03AM +0530, Aneesh Kumar K.V (Arm) wrote:
> The RSI SMCCC function IDs describe a firmware ABI and are not arm64
> architecture specific definitions. Follow-up changes need to use them from
> non-arch code, including drivers/firmware/smccc and the Arm CCA guest
> driver.
> 
> Move the complete Realm Service Interface (RSI) implementation from
> arch/arm64 to drivers/firmware/arm_rmm. The RSI SMCCC definitions and
> command helpers are also moved to include/linux so they can be shared by
> architecture code and firmware or driver code. This also keeps the
> firmware interface outside architecture code, as requested [1].
> 
> [1] https://lore.kernel.org/all/agsNO9cc7H-b0H8L@willie-the-truck
> 
> Reviewed-by: Jonathan Cameron <jonathan.cameron at oss.qualcomm.com>
> Reviewed-by: Catalin Marinas <catalin.marinas at arm.com>
> Reviewed-by: Jason Gunthorpe <jgg at nvidia.com>
> Acked-by: Suzuki K Poulose <suzuki.poulose at arm.com>
> Signed-off-by: Aneesh Kumar K.V (Arm) <aneesh.kumar at kernel.org>
> ---
>  MAINTAINERS                                   |  2 +
>  arch/arm64/Kconfig                            |  1 +
>  arch/arm64/include/asm/io.h                   |  2 +-
>  arch/arm64/include/asm/mem_encrypt.h          |  2 +-
>  arch/arm64/include/asm/pgtable-prot.h         |  2 +-
>  arch/arm64/include/asm/rsi.h                  | 70 -----------------
>  arch/arm64/kernel/Makefile                    |  2 +-
>  arch/arm64/kernel/setup.c                     |  2 +-
>  arch/arm64/mm/init.c                          |  3 +-
>  drivers/firmware/Kconfig                      |  1 +
>  drivers/firmware/Makefile                     |  1 +
>  drivers/firmware/arm_rmm/Kconfig              | 17 ++++
>  drivers/firmware/arm_rmm/Makefile             |  2 +
>  .../kernel => drivers/firmware/arm_rmm}/rsi.c |  2 +-
>  drivers/virt/coco/arm-cca-guest/Kconfig       |  2 +-
>  .../virt/coco/arm-cca-guest/arm-cca-guest.c   |  5 +-
>  .../linux/arm-rsi-cmds.h                      | 77 +++++++++++++++++--
>  .../linux/arm-smccc-rsi.h                     |  6 +-
>  18 files changed, 110 insertions(+), 89 deletions(-)
>  delete mode 100644 arch/arm64/include/asm/rsi.h
>  create mode 100644 drivers/firmware/arm_rmm/Kconfig
>  create mode 100644 drivers/firmware/arm_rmm/Makefile
>  rename {arch/arm64/kernel => drivers/firmware/arm_rmm}/rsi.c (99%)
>  rename arch/arm64/include/asm/rsi_cmds.h => include/linux/arm-rsi-cmds.h (69%)
>  rename arch/arm64/include/asm/rsi_smc.h => include/linux/arm-smccc-rsi.h (98%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 42364c540f50..b867d537a579 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3953,6 +3953,8 @@ F:	Documentation/arch/arm64/
>  F:	arch/arm64/
>  F:	drivers/virt/coco/arm-cca-guest/
>  F:	drivers/virt/coco/pkvm-guest/
> +F:	include/linux/arm-rsi-cmds.h
> +F:	include/linux/arm-smccc-rsi.h
>  F:	tools/testing/selftests/arm64/
>  X:	arch/arm64/boot/dts/
>  X:	arch/arm64/configs/defconfig

Does it need drivers/firmware/arm_rmm/ as well?

-- 
Catalin



More information about the linux-arm-kernel mailing list