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