From patchwork Mon Oct 30 21:31:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Elliot Berman X-Patchwork-Id: 16067 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:d641:0:b0:403:3b70:6f57 with SMTP id cy1csp2517232vqb; Mon, 30 Oct 2023 14:32:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH9SjRScU2fQwsFDYG1JPI/Gy2CBFsERE1PpQ91pwTAILgYkos6txZC20BiTgouX9mX5gew X-Received: by 2002:a17:903:187:b0:1cc:50ea:d5c5 with SMTP id z7-20020a170903018700b001cc50ead5c5mr3203847plg.24.1698701572276; Mon, 30 Oct 2023 14:32:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698701572; cv=none; d=google.com; s=arc-20160816; b=cdA9nA7Oz8GmD7UMlF4UUhdw1AynB2SNK4fd1C7V2Uww2+y58w3XFw+woDukdCtMS5 Xt6fj126rsB2/GN52L/lWnF+gmz2OoSwadOskiw2ody4zhOAHGXy9LvtEByRAll1IlTt hJqsETS1p7L3JGafKsJN4QimDnwS5PquF/AWevuivH/hs8QQX5VovOSADwjE1fEShVEV 17Cy0Ahi1zxTYJjfDlPWC41cVSTRv5NzaKHVu3l2Z+2WNRlvdt9KUxpmHKhulpwZ3iWy aiASmGjaceEBiONH62ibIBF00F+4Vu9sl3IN/d0RDFteiH1gPhhVaw4BissW0j2v02Jk Q3NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:content-transfer-encoding:mime-version :message-id:date:subject:from:dkim-signature; bh=PKPLpEmu3bSIQ05Y3PAuzbbTWkoBfmxS7boEVntcA80=; fh=hSqztiRBLPxJl4bBUOWDgSdeKGW5GNzk3N7GGirJHIY=; b=dpq6FLC7fyRNwTTVVuf4+qbBZr+WiqjXBXEYMfq67jh2IiJMKyoYvgdZ6bMVQtOQxg NjsRao6cE+39qVcgfkxifA1wW/qIg3b/sGwLcRALsLirMju9+wmZ9SZLDGHqkZlYT69E yjDx9wM5FvKVBModA+bcGNKKmDkaXX8yxa5PncW0kPrhgqJ7Er3UEUYIsIrBOt34ESab FwSFsyILFLvkL4RsrJnWYX3CEgl9pCDvO8uFU3isjJ3HPE33s1x92Sb4XOh0VSNrDAfg SjgjcpY48jy6G7ew1q4pE6CElhoOkaZDoB40oEKgMjIkV/CDNzEUqxp+xphy193WRb6d r1dA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=GngQwqwP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id l6-20020a170903120600b001cc0d2e97f8si5754105plh.575.2023.10.30.14.32.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 14:32:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=GngQwqwP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id EE4A88047D4D; Mon, 30 Oct 2023 14:32:48 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232089AbjJ3Vca (ORCPT + 32 others); Mon, 30 Oct 2023 17:32:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231989AbjJ3VcY (ORCPT ); Mon, 30 Oct 2023 17:32:24 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF431129; Mon, 30 Oct 2023 14:32:14 -0700 (PDT) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39UKJgQu004489; Mon, 30 Oct 2023 21:31:56 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=PKPLpEmu3bSIQ05Y3PAuzbbTWkoBfmxS7boEVntcA80=; b=GngQwqwP3Xki62VVNO3XdZPzxs6FQqn2wFf07xrfHK1N5eWPfzkiWJlXR8SdJ8BRE0BF 3BEEUQV4/gWIhpaxP18DW9cSfaikTl941MBw3ejwk6XUgjMOh9WA2cniRkc8nrJCE6xO DuvESMdQmDMk9DcawdjMoAgXFNGeISSBDQnmwOGt4Ai72WOxiB8kdB0dzRkoiccu5qGT Mw9k79lN5c8tKHZwCoJOIkHEkpc2V4CxN6ngA2jigoZi3iIoQ0P/nEIL70K4ydTAIQ4T HkhqaTP4L1to1Rr0hu/e73VjLLhqxFSdTajqabDjytk2ubVWI0J5AN3ajO42UQj/fx41 pg== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3u0sw7w13h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 30 Oct 2023 21:31:56 +0000 Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 39ULVtLF021815 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 30 Oct 2023 21:31:55 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.1118.39; Mon, 30 Oct 2023 14:31:54 -0700 From: Elliot Berman Subject: [PATCH RFC 0/2] Implement vendor resets for PSCI SYSTEM_RESET2 Date: Mon, 30 Oct 2023 14:31:32 -0700 Message-ID: <20231030-arm-psci-system_reset2-vendor-reboots-v1-0-dcdd63352ad1@quicinc.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIALQgQGUC/43N0QqCQBAF0F+ReW5iV02ppyDoA3oNCR2nmgd3b WeTRPz3xH6gx3sv3DOBchBWOCQTBB5Exbsl2E0C9Kzdg1HaJUNq0swaW2AdOuyVBHXUyN0tsHJ McWDX+oCBG++jIlFWt/muIFMaWL76wHf5rM4VLucTVEv5FI0+jKs92HX6MWn+JzNYNGgK25Qlm b3NzfH1FhJHW/IdVPM8fwEbkar34QAAAA== To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Mark Rutland CC: Satya Durga Srinivasu Prabhala , Melody Olvera , , , , Florian Fainelli , Elliot Berman X-Mailer: b4 0.13-dev X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) 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: kqHzloOp2CuJnR2kmU4V27W7PMCy_8Yh X-Proofpoint-GUID: kqHzloOp2CuJnR2kmU4V27W7PMCy_8Yh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-30_13,2023-10-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=727 clxscore=1015 phishscore=0 lowpriorityscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 impostorscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2310300168 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 30 Oct 2023 14:32:49 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781217700013358297 X-GMAIL-MSGID: 1781217700013358297 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/ This RFC approach differs from the one sent in July by: - Not using the reboot mode framework - Added support to control both reset type and cookie - Implicitly dropped "normal" reboot command, which is always just SYSTEM_RESET anyway. Signed-off-by: Elliot Berman --- Elliot Berman (2): dt-bindings: arm: Document reboot mode magic firmware: psci: Read and use vendor reset types Documentation/devicetree/bindings/arm/psci.yaml | 13 ++++ drivers/firmware/psci/psci.c | 87 ++++++++++++++++++++++++- 2 files changed, 99 insertions(+), 1 deletion(-) --- base-commit: 22e877699642285c47f5d7d83b2d59815c29ebe8 change-id: 20231016-arm-psci-system_reset2-vendor-reboots-cc3ad456c070 Best regards,