devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Implement vendor resets for PSCI SYSTEM_RESET2
@ 2024-04-14 19:30 Elliot Berman
  2024-04-14 19:30 ` [PATCH v2 1/4] dt-bindings: power: reset: Convert mode-.* properties to array Elliot Berman
                   ` (4 more replies)
  0 siblings, 5 replies; 23+ messages in thread
From: Elliot Berman @ 2024-04-14 19:30 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Sebastian Reichel, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Vinod Koul, Andy Yan,
	Lorenzo Pieralisi, Mark Rutland, Bartosz Golaszewski
  Cc: Satya Durga Srinivasu Prabhala, Melody Olvera, Shivendra Pratap,
	devicetree, linux-kernel, linux-arm-kernel, Florian Fainelli,
	linux-pm, linux-arm-msm, Elliot Berman

The PSCI SYSTEM_RESET2 call allows vendor firmware to define additional
reset types which could be mapped to the reboot argument.

Setting up reboot on Qualcomm devices can be inconsistent from chipset
to chipset.  Generally, there is a PMIC register that gets written to
decide the reboot type. There is also sometimes a cookie that can be
written to indicate that the bootloader should behave differently than a
regular boot. These knobs evolve over product generations and require 
more drivers. Qualcomm firmwares are beginning to expose vendor
SYSTEM_RESET2 types to simplify driver requirements from Linux.

Add support in PSCI to statically wire reboot mode commands from
userspace to a vendor reset and cookie value using the device tree. The
DT bindings are similar to reboot mode framework except that 2
integers are accepted (the type and cookie). Also, reboot mode framework
is intended to program, but not reboot, the host. PSCI SYSTEM_RESET2
does both. I've not added support for reading ACPI tables since I don't
have any device which provides them + firmware that supports vendor
SYSTEM_RESET2 types.

Previous discussions around SYSTEM_RESET2:
- https://lore.kernel.org/lkml/20230724223057.1208122-2-quic_eberman@quicinc.com/T/
- https://lore.kernel.org/all/4a679542-b48d-7e11-f33a-63535a5c68cb@quicinc.com/

Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
---
Changes in v2:
- Fixes to schema as suggested by Rob and Krzysztof
- Add qcm6490 idp as first Qualcomm device to support
- Link to v1: https://lore.kernel.org/r/20231117-arm-psci-system_reset2-vendor-reboots-v1-0-03c4612153e2@quicinc.com

Changes in v1:
- Reference reboot-mode bindings as suggeted by Rob.
- Link to RFC: https://lore.kernel.org/r/20231030-arm-psci-system_reset2-vendor-reboots-v1-0-dcdd63352ad1@quicinc.com

---
Elliot Berman (4):
      dt-bindings: power: reset: Convert mode-.* properties to array
      dt-bindings: arm: Document reboot mode magic
      firmware: psci: Read and use vendor reset types
      arm64: dts: qcom: Add PSCI SYSTEM_RESET2 types for qcm6490-idp

 Documentation/devicetree/bindings/arm/psci.yaml    | 38 ++++++++-
 .../bindings/power/reset/nvmem-reboot-mode.yaml    |  4 +
 .../devicetree/bindings/power/reset/qcom,pon.yaml  |  4 +
 .../bindings/power/reset/reboot-mode.yaml          | 12 ++-
 .../bindings/power/reset/syscon-reboot-mode.yaml   |  4 +
 arch/arm64/boot/dts/qcom/qcm6490-idp.dts           |  5 ++
 drivers/firmware/psci/psci.c                       | 90 ++++++++++++++++++++++
 7 files changed, 153 insertions(+), 4 deletions(-)
---
base-commit: b5d2afe8745bf3eef5a59a13313798d24f2af983
change-id: 20231016-arm-psci-system_reset2-vendor-reboots-cc3ad456c070

Best regards,
-- 
Elliot Berman <quic_eberman@quicinc.com>


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2024-05-02  2:21 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-14 19:30 [PATCH v2 0/4] Implement vendor resets for PSCI SYSTEM_RESET2 Elliot Berman
2024-04-14 19:30 ` [PATCH v2 1/4] dt-bindings: power: reset: Convert mode-.* properties to array Elliot Berman
2024-04-20  0:50   ` Krzysztof Kozlowski
2024-04-14 19:30 ` [PATCH v2 2/4] dt-bindings: arm: Document reboot mode magic Elliot Berman
2024-04-15 19:34   ` Konrad Dybcio
2024-04-16  9:30   ` Sudeep Holla
2024-04-16 12:32     ` Dmitry Baryshkov
2024-04-14 19:30 ` [PATCH v2 3/4] firmware: psci: Read and use vendor reset types Elliot Berman
2024-04-15 19:39   ` Konrad Dybcio
2024-04-14 19:30 ` [PATCH v2 4/4] arm64: dts: qcom: Add PSCI SYSTEM_RESET2 types for qcm6490-idp Elliot Berman
2024-04-14 23:13   ` Dmitry Baryshkov
2024-04-15  0:32     ` Elliot Berman
2024-04-15 19:42       ` Konrad Dybcio
2024-04-16  1:11         ` Elliot Berman
2024-04-16  9:35 ` [PATCH v2 0/4] Implement vendor resets for PSCI SYSTEM_RESET2 Sudeep Holla
2024-04-17 17:50   ` Florian Fainelli
2024-04-19 12:38     ` Sudeep Holla
2024-05-02  2:21       ` Elliot Berman
2024-04-17 21:54   ` Elliot Berman
2024-04-17 22:01     ` Florian Fainelli
2024-04-18 17:52       ` Elliot Berman
2024-04-19  8:53     ` Sudeep Holla
2024-04-19 23:31       ` Elliot Berman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).