lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 29 Sep 2014 17:34:44 -0700
From:	Bjorn Andersson <bjorn.andersson@...ymobile.com>
To:	Kumar Gala <galak@...eaurora.org>,
	Andy Gross <agross@...eaurora.org>,
	Arnd Bergmann <arnd@...db.de>,
	Grant Likely <grant.likely@...aro.org>,
	Ian Campbell <ijc+devicetree@...lion.org.uk>,
	Lee Jones <lee.jones@...aro.org>,
	Liam Girdwood <lgirdwood@...il.com>,
	Mark Brown <broonie@...nel.org>,
	Mark Rutland <mark.rutland@....com>,
	Pawel Moll <pawel.moll@....com>,
	Rob Herring <robh+dt@...nel.org>,
	Samuel Ortiz <sameo@...ux.intel.com>
CC:	<devicetree@...r.kernel.org>,
	<linux-arm-kernel@...ts.infradead.org>,
	<linux-arm-msm@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: [RFC 0/7] Qualcomm SMEM, SMD, RPM and regulators

All Qualcomm platforms implements a shared heap among the processors in the
SoC, used for sharing data with other parts of the system.

One consumer of items from this heap is the "Shared Memory Driver", a ring
buffer based point-to-point communication mechanism used to send either stream
or packet based data to remote processors.

Starting with 8x74 this system is used to talk to the Resource Power Manager
(RPM), a power efficient "coprocessor" with responsibility of aggregate votes
from the various systems in the SoC related to regulators, clocks and bus
frequencies.

The PMIC regulators and root clocks in these platforms are only accessible via
the RPM, so to get access to these we need the full chain of smem, smd, rpm and
a regulator driver implemented. And that is exactly what this series provides.


A key outstanding question is where in the tree we should put the
implementation, for now I dropped them in drivers/soc/qcom but that's only
because I don't know where to put it otherwise. I have not found any equivalent
of the SMEM driver, SMD resembles mailbox and rpmsg - but comments in that
patch on why it's neither.

RPM is a mfd and regulator is a regulator :)


Part from the rpm regulators I've tested this by hacking up a firmware loader
and making some adoptions to the wcn36xx WiFi driver and I can indeed
communicate with this system as well. Missing for that part is the coupling
with remoteproc to reset smd channels when a remote system goes down.  But that
is indeed a separate set of patches.

Bjorn Andersson (7):
  soc: qcom: Add device tree binding for SMEM
  soc: qcom: Add device tree binding for SMD
  mfd: devicetree: bindings: Add Qualcomm SMD based RPM DT binding
  soc: qcom: Add Shared Memory Manager driver
  soc: qcom: Add Shared Memory Driver
  mfd: qcom-smd-rpm: Driver for the Qualcomm RPM over SMD
  regulator: qcom-smd-rpm: Regulator driver for the Qualcomm RPM

 .../devicetree/bindings/mfd/qcom-rpm-smd.txt       |  122 +++
 .../devicetree/bindings/soc/qcom/qcom,smd.txt      |   82 ++
 .../devicetree/bindings/soc/qcom/qcom,smem.txt     |   34 +
 drivers/mfd/Kconfig                                |   14 +
 drivers/mfd/Makefile                               |    1 +
 drivers/mfd/qcom-smd-rpm.c                         |  299 ++++++
 drivers/regulator/Kconfig                          |   12 +
 drivers/regulator/Makefile                         |    1 +
 drivers/regulator/qcom_smd-regulator.c             |  229 +++++
 drivers/soc/qcom/Kconfig                           |   16 +
 drivers/soc/qcom/Makefile                          |    2 +
 drivers/soc/qcom/qcom_smd.c                        | 1043 ++++++++++++++++++++
 drivers/soc/qcom/qcom_smem.c                       |  328 ++++++
 include/dt-bindings/mfd/qcom-rpm.h                 |   36 +
 include/linux/mfd/qcom-smd-rpm.h                   |    9 +
 include/linux/soc/qcom/qcom_smd.h                  |   47 +
 include/linux/soc/qcom/qcom_smem.h                 |   14 +
 17 files changed, 2289 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smem.txt
 create mode 100644 drivers/mfd/qcom-smd-rpm.c
 create mode 100644 drivers/regulator/qcom_smd-regulator.c
 create mode 100644 drivers/soc/qcom/qcom_smd.c
 create mode 100644 drivers/soc/qcom/qcom_smem.c
 create mode 100644 include/linux/mfd/qcom-smd-rpm.h
 create mode 100644 include/linux/soc/qcom/qcom_smd.h
 create mode 100644 include/linux/soc/qcom/qcom_smem.h

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists