From patchwork Wed May 15 23:09:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Elliot Berman X-Patchwork-Id: 13665586 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0A9A7C25B75 for ; Wed, 15 May 2024 23:10:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:CC:To:MIME-Version:Message-ID:Date: Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=ifzf/Rcant4pyOZVORkVMHCAYKRLB0CCl/KXuzChgQg=; b=iY3BRs9GHaz8qZ /3oZBUda+K0QKmL7EwKgup1vSMNl71ghA3pb2q/IGuk/uOZx+QMftb0jbRJP+rr31LQ3VVvwOs4Cq jn3/UzaKemh/utHDW57ZilbmOVz5JEb5a8jNXif34jmDyQpIqskZ22EFECYf9Vp87yqO7b1t873Nr ALnBn/5ZPN1OtibAXcgFfaU4nVsmYnTCaTryJjUKOZywxGS8DN/Sb2zR20qthszonLpfDwKRsAC1N 1hM+foskkIlE6foAutVke1CDzYDgmNeuTZ68HQyWtPfX88S5A3swoOpIdJaMrn6XpbzBBFxAKn4EV izjSS/WsNljVVVHas51w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s7NlZ-0000000373J-451M; Wed, 15 May 2024 23:10:33 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s7NlO-00000003716-0Xqq for linux-arm-kernel@lists.infradead.org; Wed, 15 May 2024 23:10:23 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 44FMIejX023142; Wed, 15 May 2024 23:10:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:subject:date:message-id:mime-version:content-type :content-transfer-encoding:to:cc; s=qcppdkim1; bh=zwxpOKX8sB506V Y50mheN5Ojaj4Hdm6oApG827r3OUY=; b=dVfpxxJ/D713JnaeXfnDsDeBYhP4aR npqPZxkG+djehRbXMLJ6UnRVXd26E0GS5/aPKWbw7AJd4R1MKG0hfiNFV2K/ReA3 EdmhxJA/OYSBhwifJ02QwZbcG5LDTYpb4VXyUwVEkyEdVJmXSZ8wtUuYPNgBQ76A Z+uopdzXm+ip13CZuRW2Qsr/ICYPi0VmYlOOJA26VnfcZ3zZn6p5NyhcX/hb2lHC TmMW4H39wrBQCp7YvibUVZ6BkYDynhiDAaCywi9DqSs8Rj3iUCMaBceNTczAfXFI WoUdA0K9FknxtSMREtv5dziFbqwBRkUo2kiYJQ6flg4JyYfqtch6liIg== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3y3j28puwd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 May 2024 23:10:15 +0000 (GMT) Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 44FNA5ha017979 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 May 2024 23:10:05 GMT Received: from hu-eberman-lv.qualcomm.com (10.49.16.6) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Wed, 15 May 2024 16:10:05 -0700 From: Elliot Berman Subject: [PATCH v3 0/4] Implement vendor resets for PSCI SYSTEM_RESET2 Date: Wed, 15 May 2024 16:09:43 -0700 Message-ID: <20240515-arm-psci-system_reset2-vendor-reboots-v3-0-16dd4f9c0ab4@quicinc.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIALdARWYC/5WQy24CMQxFfwVlXVd2XlNY9T9QVQXHlCxmQpMhK kLz752h7QKpC1heL8651xdVpSSparO6qCIt1ZSHOZinleJDGD4EUpyz0qgNIXkIpYdj5QT1XEf p34tUGTU0GWIuUGSX81iB2YRonWfsUM2sY5F9+rp6tm9zPqQ65nK+ahst11+DtncaGgECetp1H eOaLL5+nhKngZ8594vyh2fwEV7kGL0xTodI//KIuof6GbaeNDkj+oa3/KDpv90WLd29Wy89wzq gc8Hbl/0td5qmb/4wlRnUAQAA 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 , , , , Florian Fainelli , , , Elliot Berman X-Mailer: b4 0.13.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: R_qEtypiC21jyvLjrl_XrrgVtEpzLaYT X-Proofpoint-GUID: R_qEtypiC21jyvLjrl_XrrgVtEpzLaYT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-15_14,2024-05-15_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 impostorscore=0 malwarescore=0 phishscore=0 bulkscore=0 suspectscore=0 mlxscore=0 clxscore=1015 priorityscore=1501 mlxlogscore=999 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2405010000 definitions=main-2405150164 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240515_161022_348705_6F651005 X-CRM114-Status: GOOD ( 17.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 the cookies, but not actually 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 --- Changes in v3: - Limit outer number of items to 1 for mode-* properties - Move the reboot-mode for psci under a subnode "reset-types" - Fix the DT node in qcm6490-idp so it doesn't overwrite the one from sc7820.dtsi - Link to v2: https://lore.kernel.org/r/20240414-arm-psci-system_reset2-vendor-reboots-v2-0-da9a055a648f@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 | 43 +++++++++- .../bindings/power/reset/nvmem-reboot-mode.yaml | 4 + .../devicetree/bindings/power/reset/qcom,pon.yaml | 4 + .../bindings/power/reset/reboot-mode.yaml | 14 +++- .../bindings/power/reset/syscon-reboot-mode.yaml | 4 + arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 7 ++ arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +- drivers/firmware/psci/psci.c | 92 ++++++++++++++++++++++ 8 files changed, 165 insertions(+), 5 deletions(-) --- base-commit: b5d2afe8745bf3eef5a59a13313798d24f2af983 change-id: 20231016-arm-psci-system_reset2-vendor-reboots-cc3ad456c070 Best regards,