[PATCH 00/11] arm64: qcom: add and enable SHM Bridge support

From: Bartosz Golaszewski
Date: Mon Aug 28 2023 - 15:28:34 EST


SHM Bridge is a mechanism allowing to map limited areas of kernel's
virtual memory to physical addresses and share those with the
trustzone in order to not expose the entire RAM for SMC calls.

This series adds support for Qualcomm SHM Bridge in form of a platform
driver and library functions available to users. It enables SHM Bridge
support for three platforms and contains a bunch of cleanups for
qcom-scm.

Bartosz Golaszewski (11):
firmware: qcom-scm: drop unneeded 'extern' specifiers
firmware: qcom-scm: order includes alphabetically
firmware: qcom-scm: atomically assign and read the global __scm
pointer
firmware: qcom-scm: add support for SHM bridge operations
dt-bindings: document the Qualcomm TEE Shared Memory Bridge
firmware: qcom-shm-bridge: new driver
firmware: qcom-scm: use SHM bridge if available
arm64: defconfig: enable Qualcomm SHM bridge module
arm64: dts: qcom: sm8450: enable SHM bridge
arm64: dts: qcom: sa8775p: enable SHM bridge
arm64: dts: qcom: sm8150: enable SHM bridge

.../bindings/firmware/qcom,shm-bridge.yaml | 36 ++
arch/arm64/boot/dts/qcom/sa8775p.dtsi | 4 +
arch/arm64/boot/dts/qcom/sm8150.dtsi | 4 +
arch/arm64/boot/dts/qcom/sm8450.dtsi | 4 +
arch/arm64/configs/defconfig | 1 +
drivers/firmware/Kconfig | 8 +
drivers/firmware/Makefile | 1 +
drivers/firmware/qcom-shm-bridge.c | 452 ++++++++++++++++++
drivers/firmware/qcom_scm-smc.c | 20 +-
drivers/firmware/qcom_scm.c | 106 +++-
drivers/firmware/qcom_scm.h | 3 +
include/linux/firmware/qcom/qcom_scm.h | 109 +++--
include/linux/firmware/qcom/shm-bridge.h | 32 ++
13 files changed, 712 insertions(+), 68 deletions(-)
create mode 100644 Documentation/devicetree/bindings/firmware/qcom,shm-bridge.yaml
create mode 100644 drivers/firmware/qcom-shm-bridge.c
create mode 100644 include/linux/firmware/qcom/shm-bridge.h

--
2.39.2