[RFC PATCH v2 0/6] firmware: conduit method helpers for SMCCC v1.0 calls

From: Etienne Carriere
Date: Tue Apr 21 2020 - 12:39:16 EST


V2:
Fix several build issues reported by kbuild test robot:
- patch 1/6: fix erroneous ';' in inline functions;
- patch 5/6: fix bad function label used;
- patch 6/6: fix bad function label used.
Reported-by: kbuild test robot <lkp@xxxxxxxxx>
Fix function stubs to return -ENXIO not -EINVAL when SMCCC is not supported.
Few rephrasing in commit message for all patches of the series.
Add an empty line between a trace and a return instruction in patch 1/6.
Add argument label in arm_smccc_1_0_set_conduit() prototype in patch 1/6.
Fix typo in inline description comments in patch 1/6.

These changes propose helper functions and macros to consolidate choice of
the conduit method among devices communicating with a 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 | 148 +++++++++++++++++++++++++++
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, 338 insertions(+), 344 deletions(-)
create mode 100644 drivers/firmware/arm_smccc_conduit.c

--
2.17.1