arm64: smccc: Add support for SMCCCv1.2 extended input/output registers
authorSudeep Holla <sudeep.holla@arm.com>
Tue, 18 May 2021 16:36:18 +0000 (17:36 +0100)
committerWill Deacon <will@kernel.org>
Wed, 26 May 2021 16:14:09 +0000 (17:14 +0100)
commit3fdc0cb59d97f87e2cc708d424f1538e31744286
treeae9d695494b9c66a9c6f6f67926ab26c32a1efd0
parent6efb943b8616ec53a5e444193dccf1af9ad627b5
arm64: smccc: Add support for SMCCCv1.2 extended input/output registers

SMCCC v1.2 allows x8-x17 to be used as parameter registers and x4—x17
to be used as result registers in SMC64/HVC64. Arm Firmware Framework
for Armv8-A specification makes use of x0-x7 as parameter and result
registers. There are other users like Hyper-V who intend to use beyond
x0-x7 as well.

Current SMCCC interface in the kernel just use x0-x7 as parameter and
x0-x3 as result registers as required by SMCCCv1.0. Let us add new
interface to support this extended set of input/output registers namely
x0-x17 as both parameter and result registers.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210518163618.43950-1-sudeep.holla@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/asm-offsets.c
arch/arm64/kernel/smccc-call.S
include/linux/arm-smccc.h