Received: by 2002:ab2:69cc:0:b0:1f4:be93:e15a with SMTP id n12csp1067374lqp; Sun, 14 Apr 2024 12:32:43 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXIbG+IHCKR6bTmVA7akWodWuU2jJgioQAnIHIJtsX+W+CDJXepFotmUrTJGAfMTAWqcWWIGDjoYiMnheGjdu35eeUi/2TmlIfDI9grDA== X-Google-Smtp-Source: AGHT+IECYkRq1Z6hlOXxKeoeSkiBI8fGXfIMPn8g1rDwC1xQegWU+jdn1Y0odc1sS6deo2eXj+o4 X-Received: by 2002:a17:906:66d5:b0:a51:dc1f:a3b1 with SMTP id k21-20020a17090666d500b00a51dc1fa3b1mr4918236ejp.39.1713123163291; Sun, 14 Apr 2024 12:32:43 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713123163; cv=pass; d=google.com; s=arc-20160816; b=AA5tgB1Ta8A1gO4tN+anGeMjsDrA3A585XMYN4+b2guA7lLKGOnJtg49kBab786el+ FZ6KU4V/mStEplxIunejvo/QU0bbvx+F/cPWw6nt2MgXO8hplpEpf/EtV7ohpTi9NpNt UTI9FOtKRNVqDGVNC4idDrBu3TTbf8p1vUU3UXYvXYFMKEvpQ/QzkpPKDWcqHYFphZPb Fii2cWRCFw+HPuyTJnm5vDd4Hi0yK4+uXQNn07iLqMJn7qD9Txg8pV0B4xiH9pcjKk6K aeFUcjv+7Uvu74L3JW3RlOizZR1rsU9mgSDJcmp+ygrL9xA5al7puSfehKLQaa9ua8Ua RYqw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:from :dkim-signature; bh=HEkEWqXU9HyoEZ1EXeA+w0WswwWoARenxErZN6nxiXA=; fh=ix7oY1LSj/n36FUeysCayGOg+CG4pcJk9TDVV8Oeehg=; b=KykiMUOhIJad2LTS3LCfxg4pX/8P6LQLcZDvyn5eM7YXxYMuS16TYONC5QSGzP+Uwb iOKKQDNSEUlwa0RbQfEZfjm4Jp49EsKBrgF0VMCWVuaGrubAvoNT3IdqyOTE6NxWBH7q I+zdzGnOgBfMVPM2F0KzsQfXwJYXFNynREhEgUU0/EJGzqkEB9lX0TyWoBoOnATa7s0C 6l2I4/3N5NDaTmteHOwtPbrPbw2S+3aI/edWxuPc9V36rgRzUnwoJj5VqLI+1BeJa0WJ RSclC9hCy8KgkqSV80GC6i0nt4CRtQDheBWnrCWAuIznT5znwgA7iFxB3xinyogKMSfW Fe1Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="jj/ysOKE"; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-144355-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-144355-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id k7-20020a17090646c700b00a474ef5ecc7si3762494ejs.428.2024.04.14.12.32.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Apr 2024 12:32:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-144355-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="jj/ysOKE"; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-144355-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-144355-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id CE6611F2139B for ; Sun, 14 Apr 2024 19:32:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 166D3136E3D; Sun, 14 Apr 2024 19:32:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="jj/ysOKE" Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8B8D136652; Sun, 14 Apr 2024 19:32:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713123124; cv=none; b=R0LFOi/6DA70IhVQL8dXITZUhFqGi+a4nzip7SmCPy9rqSYK9KufAQ1vh0Ne2p6yReYpNPef8WKXgs8sGDvhI5J+Shfl+MHWYp1C0l6a2ecERwvmEdp3Dju8xuvA5EPzvkvSO49FW/Igqnoeiz39/ssLgbT8iDaCaPeEP4FqiRc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713123124; c=relaxed/simple; bh=4qi9K81fBTQFNUBuQvIz2uLcfeMp8NME1IBqS4x5PpA=; h=From:Subject:Date:Message-ID:MIME-Version:Content-Type:To:CC; b=CYvAFiIq08jyy+7HN6yhlzQdvykcBY9TbgdBcypXV4DoqY8Xu7r3AQnKNoCsDU/qSZJzzN27feQrrQifJ4hjZaj6ws4GlhaJsGwpRv+p7zUWg4+z8r6uavYGmaEiuO9AuWnPctGZU7M1SACRogsXZkclMqgCRpGqDB9PzPm5ONU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=jj/ysOKE; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 43EJVeWR002957; Sun, 14 Apr 2024 19:31:40 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=HEkEWqXU9HyoEZ 1EXeA+w0WswwWoARenxErZN6nxiXA=; b=jj/ysOKENEkBXsLqKxkOnaA//u3iNz 7jsLMjd4WD2RdvMwlk0VOlJ4DOlI8rqDtdPYRBqzQshuOnO3ZFsJWAWaMhN9cS40 yiOMhzNawjHRq/B4pjmRnUkijRfQ1XUPZHCJpsWm33qww0rtfI5AvUrlmATArN9E +gT9kGO62GkiQeRjwr6xoJSSkvUnxa7v6PaSTy88YnxOhp++AYx0kj7fNxsqe+f3 5ZiMlFvlU5ch1hPl/xtrRoMw6+LzI9aIWSXq/RrW2wTesE1Ec8zSd+DP/RJaHUlA Bwr7lufJABV0gPXOVNRw+7INx5rS0VqucoHF+H+HP878i1TWuxco94rA== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3xfk7q25r4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 14 Apr 2024 19:31:40 +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 43EJVc7s023182 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 14 Apr 2024 19:31:39 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; Sun, 14 Apr 2024 12:30:29 -0700 From: Elliot Berman Subject: [PATCH v2 0/4] Implement vendor resets for PSCI SYSTEM_RESET2 Date: Sun, 14 Apr 2024 12:30:23 -0700 Message-ID: <20240414-arm-psci-system_reset2-vendor-reboots-v2-0-da9a055a648f@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAM8uHGYC/5WOQW7CQAxFr4JmjSt7JpmorLhHhVDwmOJFMjBOI xDK3RtoN0gsYPn+4r1/dSZFxdxqcXVFRjXN/Qx+uXB8aPtvAU0zO48+EFKEtnRwNFawiw3SbYu YDB5G6VMuUGSX82DAHNpU1ZGxQTe7jkX2er53vjYzH9SGXC737Ei39b/gqxcLIwECRto1DeMnV bg+/Shrzx+cu1vyzxfwHV/ilGIItW8TPfURNW/9C1xF8lQH8Q++zTRNv87HLft8AQAA 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.12.4 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-GUID: kg2BFjUc4jt8afvcNHaVvokvjVTadHNp X-Proofpoint-ORIG-GUID: kg2BFjUc4jt8afvcNHaVvokvjVTadHNp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-04-14_08,2024-04-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2404010003 definitions=main-2404140142 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 --- 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