These changes propose helper functions and macros to consolidate choice of the conduit method among devices communicating with an secure world that complies with SMCCC v1.0 but not SMCCC v1.1 or later. The new helper functions mimic arm_smccc_1_1_*() function but for SMCCC v1.0 compliant firmwares.
This series of changes updates several firmware drivers that each define a conduit method whereas kernel drivers are expected to use the very same conduit. This series obviously does not enforce these drivers to apply the proposed changes but the interest of the first patch is this series is that at least the PSCI driver upgrades as it will allow new drivers to benefit from the early initialized PSCI conduit method.
Etienne Carriere (6): firmware: helper functions for SMCCC v1.0 invocation conduit firmware: psci: set SMCCC v1.0 conduit and use helpers functions tee: optee: use SMCCC v1.0 helper functions firmware: arm_sdei: use SMCCC v1.0 helper functions firmware: stratix10: use SMCCC v1.0 helper functions firmware: zynqmp: use SMCCC v1.0 helper functions
drivers/firmware/Makefile | 1 + drivers/firmware/arm_sdei.c | 79 +++++--------- drivers/firmware/arm_smccc_conduit.c | 147 +++++++++++++++++++++++++++ drivers/firmware/psci/psci.c | 60 ++--------- drivers/firmware/stratix10-svc.c | 97 ++---------------- drivers/firmware/xilinx/zynqmp.c | 87 ++-------------- drivers/tee/optee/call.c | 14 +-- drivers/tee/optee/core.c | 85 ++++------------ drivers/tee/optee/optee_private.h | 4 +- include/linux/arm-smccc.h | 106 +++++++++++++++++++ include/linux/psci.h | 1 - 11 files changed, 337 insertions(+), 344 deletions(-) create mode 100644 drivers/firmware/arm_smccc_conduit.c