On Mon, 28 Aug 2023 at 23:24, Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> wrote: > > On Mon, 28 Aug 2023 at 22:29, Bartosz Golaszewski > <bartosz.golaszewski@xxxxxxxxxx> wrote: > > > > 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. > > Which users do you expect for this API? > This series adds a single user: the SCM driver. We have another user almost ready for upstream in the form of the scminvoke driver and I learned today, I can already convert another user upstream right now that I will try to get ready for v2. > Also, could you please describe your design a bit more? Why have you > implemented the shm-bridge as a separate driver rather than a part of > the SCM driver? > It's self-contained enough to be put into a separate module and not all platforms support it so in order to avoid unnecessary ifdeffery in the scm driver, I made it separate. Bart > > > > 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 > > > > > -- > With best wishes > Dmitry