From patchwork Tue Jun 24 02:13:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899502 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 98C1C221299 for ; Tue, 24 Jun 2025 02:14:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731248; cv=none; b=A3TYfJYkdr6lM5/qZPZNRtARs2nFLFwMwQu3CYIVZRfwQpKkFp7VDGhG0zEslyYkN1nkK7hNJuodLIwk0WFrXJlxF/10a32jE+mnDDBEgEK1sl2UcYVOOuyTIOPfe/nxBSEBMxQA9MHCupeEd32Vn13Fjt+741Uv3aX6VRR7eSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731248; c=relaxed/simple; bh=0ZB/tSQJTgO/V9bw25UKkVrXHkwPDk176SMtQVZy7AQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ABwLzCinuzQFPfIyu4UGFTGhBhC17wdkQ5i1Qz4hT8GcxeCL8lOILAdWrIMbTnwYduBHS7f/3iAZYeRYJ5ENEVX/ma0pAmYTwPlBMD+QvLHK8II83itUzPzfXdrdYEZ39cexeNSVFSHhd9btkPixbyHwLbzvNZdI1CvME4yfXnk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=VKY3KZmf; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VKY3KZmf" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55NHfS7r027698 for ; Tue, 24 Jun 2025 02:14:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AmT60A9lLQ9BuGQyHbamKb2liQFhTaf9+85rsO1JS60=; b=VKY3KZmfKORozMEd g6Uevva+FWVhlZwL8faIPGLO2lXyItKoexwRQFwnbN+1+Wy04GxrcevaBolvZmLJ MWhmzWWMTo96c47/3DFEDBoL5rEqHedbyvg2SfC/QRzuNWwzy3qNUMUaBJyL0kPl V6p46X+WPf0QSxJGGt1ulHSpmjzhHW6wyLkyUqPqKaK8FO8D3cf3efQiEBNc3eF8 Pn3lH1eZpFLvT+QhR+JscCck40xIX6QDZ8KcsAEAcjGI4/JWqrnWDeF15chbcTcT xCsFFt6j09a7wE9c6Vz61+xCbYaw/nZ6RcWS+L4rL0ygUmgS3svMPCm3/7j2Pxlt IKcIUw== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47fbhqgy48-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 02:14:05 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7d40185a630so662696685a.2 for ; Mon, 23 Jun 2025 19:14:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750731244; x=1751336044; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AmT60A9lLQ9BuGQyHbamKb2liQFhTaf9+85rsO1JS60=; b=Af1NMTzEqNYx3tcm9PB6sAzkrSaj/g03VhxL02EY/91tLvsrjsmwXJLu9kaoVG81Eu zKKZfk0YVBhCQQz1gg1rbN5zcP5hH7K3WSzw63hIsRTCFVVY8FWrncHifBvuM6WG814l bYlvfb/t5M8sIyVC5JQo2gNtp5HeyULPPex6X4i27cQbDNlUTupcLmHKRtDFy0M/HSqz vj0nJrwVhPHkKLmhD81nwsf6Oj4HCstIMSvI2nNTXckH9j9SFyRnvDbh7UuZMzYYIt1R bU4wIrL64UpWd8+dpcwTird2cIgKYsYmb27LaMOkE364aq0rB70EE4cp8Uk5oIeOoyGm 0HiQ== X-Forwarded-Encrypted: i=1; AJvYcCXQ7JLUbVsoLCWN7lXjq2M9eBgUTJILsl7OiUs7z1mEalRpIUuUinaJfuP31hOX7r4tvk3ljcWiNKjb6BOg@vger.kernel.org X-Gm-Message-State: AOJu0Yw0HpaL8erfwtNCqQLO/KvEGgQWzS/uISaTA0v36Mxpl7PBOpwQ j1+by5e4v0ej1UdCCf1v6ZbGATsnXzA5oeecGiurDIJ7xvBBZhKczlKTScCmPGy5y/+ne2gUb7l tZ7XW68eDtaJ/SuAE6Wmd6Mi7M2+ki9tZof/NlGroVgOaHAvwn0oDGazO224zElRpb/Uk X-Gm-Gg: ASbGnct6/U56f2hVLfqsX6LCsRE+IkSB/+zE3DuUcv52Ii83avOEnHUrcow+fCasIUc kVSMH9USbhGxFg/fwl19+Am1KkWpxNv5FsEwYapPX7+sEsJIlCVwjL8V6kZAX+Q38nTyfeb1tLg Fa6iRctq07fENXDdIuEWQW1xdlTkDoehfpNjGSQdXmMRackt6koTtztvfNHNcgve77biiL/Piq/ Z+aJjbVYYaThYd2cgN9CTIJmxhVOTmea3ZGG02dbnUTtoohL17hU5/VkEKoQwsweKS5hDtV8Ag7 P7w38KUX2S2/CTEUQoB1v8hs6R0fqpZkFhD7LofwUq6zfb7+62HlM+USDDfhLNOsoNVWb1iPL73 tY/wc5k3UXzDQfk2JLvKkbmfnjTi93MKG5N8= X-Received: by 2002:a05:620a:4392:b0:7c5:5a51:d2d1 with SMTP id af79cd13be357-7d3f995f1c7mr2572886585a.55.1750731244563; Mon, 23 Jun 2025 19:14:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFYIL4+l3frydW5f5l5oqZb7/2v7MXWN/9Lgrqu/VuEHi7B++dwsM5L4Gh5qOtGXS/DiuKkOg== X-Received: by 2002:a05:620a:4392:b0:7c5:5a51:d2d1 with SMTP id af79cd13be357-7d3f995f1c7mr2572882785a.55.1750731244164; Mon, 23 Jun 2025 19:14:04 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-553e41446e2sm1637764e87.32.2025.06.23.19.14.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jun 2025 19:14:03 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 24 Jun 2025 05:13:53 +0300 Subject: [PATCH v3 2/8] firmware: qcom: scm: allow specifying quirks for QSEECOM implementations Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250624-more-qseecom-v3-2-95205cd88cc2@oss.qualcomm.com> References: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> In-Reply-To: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> To: Bjorn Andersson , Maximilian Luz , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ard Biesheuvel , Konrad Dybcio Cc: Johan Hovold , Steev Klimaszewski , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-efi@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4148; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=0ZB/tSQJTgO/V9bw25UKkVrXHkwPDk176SMtQVZy7AQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoWgnlffFPCByp4RKefp3ZNXphmsBnCnVx4XS1R V5Q1j07lkCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFoJ5QAKCRCLPIo+Aiko 1aeYCACWko1A2fakj7OHXikH01sxkD5jypkMNfkD+er9snZS8sOBHOyRBA5xSXFrDKYldT1vpES oGdMf5oDThzf9XSVunYVT0tJ4KdkuEmnAznWz9CTByqnEIStF0BB+nfqQYtvg7+GCrbTdX9x4gZ 6q2ialmgnWIRTX9Yf2eLw/vE0kOemOH69Ip7ABWh2b80cmazsNbfqQ+Qke3v8ZI7M1M2QVBK35i EnVVYASvUZ120xd0DrxuJ4mQJN7sLgQ5mpa8oZrIXltYqU5ovk2Omwjegf/+QF9Oq3Yjx7LFVws pe14dBhueJpOTLsPi1XNk9D1DFzknFvgWfE+6LtXAWhZ2f2V X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: 9Hrmpi25maF1XFhUXwzfrfviUCCsmj5P X-Authority-Analysis: v=2.4 cv=Id+HWXqa c=1 sm=1 tr=0 ts=685a09ed cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=EUspDBNiAAAA:8 a=wTlJEWXFZO-q-0qxHBMA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: 9Hrmpi25maF1XFhUXwzfrfviUCCsmj5P X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDAxNyBTYWx0ZWRfX5m74+75artx4 2OwD3aAs++jpPOznqnzS6L96trk3XhNksWG/4xYCa0/qL6lYYSn6yQ1/vuh7O8FVYgQ3NH8OLy+ EX4thx71cplQ8ftbavMbEvulV9LdqxztuVc7opOVQorL38BClIYXgnx4bylQr6mlZN0W8Rt6bXQ giaHcj8UEPGc0zbqQaojvgBoJwH3nIDqkLZiFx4xVI5aP7l1evS1LoGb43mndcrIAHgcShXS5do /pF4DjHGAVBsMOPc+Ugz6uX/ivLgu0am3v5+XJ/1LaR/Tp39VxdFS3/IxCtps8z+OhEyM1NJ726 cCZCqnv5Jr054kkEj/GzhSV+f9BY/wi+FyHKRzqIl7W+QDk2gQ/Ts8fRsXhaciiFIx2487wR67H qfiMNoU6HGPb94mHSZupKQcEpSYL/Se/VODqaZJTujDi5v6Cj4vDMrVsL6I7PELAKmA3KALM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-24_01,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 mlxlogscore=999 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 mlxscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 adultscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240017 Some of QSEECOM implementations might need additional quirks (e.g. some of the platforms don't (yet) support read-write UEFI variables access). Pass the quirks to the QSEECOM driver and down to individual app drivers. Signed-off-by: Dmitry Baryshkov --- drivers/firmware/qcom/qcom_qseecom.c | 6 +++++- drivers/firmware/qcom/qcom_scm.c | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/drivers/firmware/qcom/qcom_qseecom.c b/drivers/firmware/qcom/qcom_qseecom.c index 731e6d5719f9e3e9e698f5de0117540f51ebab63..aab0d61f0420c4f3d6c1a73e384195b9513f3ef9 100644 --- a/drivers/firmware/qcom/qcom_qseecom.c +++ b/drivers/firmware/qcom/qcom_qseecom.c @@ -36,6 +36,7 @@ static void qseecom_client_remove(void *data) } static int qseecom_client_register(struct platform_device *qseecom_dev, + void *data, const struct qseecom_app_desc *desc) { struct qseecom_client *client; @@ -56,6 +57,7 @@ static int qseecom_client_register(struct platform_device *qseecom_dev, client->aux_dev.name = desc->dev_name; client->aux_dev.dev.parent = &qseecom_dev->dev; + client->aux_dev.dev.platform_data = data; client->aux_dev.dev.release = qseecom_client_release; client->app_id = app_id; @@ -89,12 +91,14 @@ static const struct qseecom_app_desc qcom_qseecom_apps[] = { static int qcom_qseecom_probe(struct platform_device *qseecom_dev) { + void *data = dev_get_platdata(&qseecom_dev->dev); int ret; int i; /* Set up client devices for each base application */ for (i = 0; i < ARRAY_SIZE(qcom_qseecom_apps); i++) { - ret = qseecom_client_register(qseecom_dev, &qcom_qseecom_apps[i]); + ret = qseecom_client_register(qseecom_dev, data, + &qcom_qseecom_apps[i]); if (ret) return ret; } diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c index f63b716be5b027550ae3a987e784f0814ea6d678..fc2ed02dbd30b389b5058f5cac70c184df7ca873 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -2008,10 +2008,10 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = { { } }; -static bool qcom_scm_qseecom_machine_is_allowed(void) +static bool qcom_scm_qseecom_machine_is_allowed(unsigned long *quirks) { + const struct of_device_id *match; struct device_node *np; - bool match; np = of_find_node_by_path("/"); if (!np) @@ -2020,6 +2020,11 @@ static bool qcom_scm_qseecom_machine_is_allowed(void) match = of_match_node(qcom_scm_qseecom_allowlist, np); of_node_put(np); + if (match && match->data) + *quirks = *(unsigned long *)(match->data); + else + *quirks = 0; + return match; } @@ -2034,6 +2039,7 @@ static void qcom_scm_qseecom_free(void *data) static int qcom_scm_qseecom_init(struct qcom_scm *scm) { struct platform_device *qseecom_dev; + unsigned long quirks; u32 version; int ret; @@ -2054,7 +2060,7 @@ static int qcom_scm_qseecom_init(struct qcom_scm *scm) dev_info(scm->dev, "qseecom: found qseecom with version 0x%x\n", version); - if (!qcom_scm_qseecom_machine_is_allowed()) { + if (!qcom_scm_qseecom_machine_is_allowed(&quirks)) { dev_info(scm->dev, "qseecom: untested machine, skipping\n"); return 0; } @@ -2063,17 +2069,11 @@ static int qcom_scm_qseecom_init(struct qcom_scm *scm) * Set up QSEECOM interface device. All application clients will be * set up and managed by the corresponding driver for it. */ - qseecom_dev = platform_device_alloc("qcom_qseecom", -1); - if (!qseecom_dev) - return -ENOMEM; - - qseecom_dev->dev.parent = scm->dev; - - ret = platform_device_add(qseecom_dev); - if (ret) { - platform_device_put(qseecom_dev); - return ret; - } + qseecom_dev = platform_device_register_data(scm->dev, + "qcom_qseecom", -1, + &quirks, sizeof(quirks)); + if (IS_ERR(qseecom_dev)) + return PTR_ERR(qseecom_dev); return devm_add_action_or_reset(scm->dev, qcom_scm_qseecom_free, qseecom_dev); } From patchwork Tue Jun 24 02:13:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899501 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 CF67C22B8D9 for ; Tue, 24 Jun 2025 02:14:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731253; cv=none; b=XmATRMzYj/3MeCbCz+daws5VfOibgP5hS+UJzUHYkMF27sTJdP1DbSyaS6ti1bN1PmHwYz7xg17Wspx+Dp+w6SdWBJfo0OmuqPqLpJE2nJb2gT9TGmXwFQka6fCZUk2biD+OTXkLmHJJSWnZNWnGI79MAdlgXBejBCql4uWDLOk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731253; c=relaxed/simple; bh=v3Son85QFIExU23XS9BqES7WnyoRqHF3ETTCsPhCxq4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CXxmHY+LYmCjrxm0C3nyB0FQ0P/UthztwgwyjUJDNzbFrgnDhbH4kSsxvOO2UtNnh/7jBNExwGOKBaFPaGtWnd9STZJOw8WAHg89SnYE+QOrnieJxWqxEcixD20TkgUKAsExRmButPlG61MuJ/rv6uoaa9gHUl2U+Dtksk+JZxs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=L+OJCMA2; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="L+OJCMA2" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55NH3NYx005791 for ; Tue, 24 Jun 2025 02:14:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= i5QrZxszEjgpMGIfh5fARAtG0+hpGYQPrZxwwktP520=; b=L+OJCMA2bzzxfTu/ T2KN4PKx4LDls5LRt0MDzBtb9r12kbNertfiuH0viP/9SRgdjA8ThK0GmsRLrAVe 5sZMWHdatnTFxU5icLoFxIPWVOWrJB1ndZIoG3aIlo0XzdK/EWt1LC4/7HbtmBWU jLwvpLdAYodPVa/WQTu0SMvjVTLA2ai6Mo/RRQjsJbeEXQgaz1mIRq93oxAUnGO8 XN/JgF5s9UGqvYwqHt2woHfxL5uK9ngs2a0hN8mfbiLymyI6caO3l9V+HpQ3yqxa hHPtJ9wnHfmuZecBTt/qgXBDpAx9yOqXkfERbbdlVLP9Ape4W/oiIO5/j37bUAVq bBfJow== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47f3bgahdp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 02:14:10 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7d099c1779dso687967785a.0 for ; Mon, 23 Jun 2025 19:14:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750731250; x=1751336050; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i5QrZxszEjgpMGIfh5fARAtG0+hpGYQPrZxwwktP520=; b=qg9aew1U6Q3NnOTUfg7KiIBLL5cTnKOeTEibjyX+d4Q33l16dtYZr/0eS8FSjsnscF 80an6RIt56LVZX0GyyIbeMz28kaQgsmAiL6snoMl/UVEbwNSA/qwPxAw0g7ny1Auj/9w vZB5RTRdWMtTSgotULF7xoV44ulj/m4H2QrGGs43aEO0BZafpONOlj7aZzH0/C2iZcjA syTsySMg3mATpBVNGRxe/e4DbsMB64iwt6uVPVJ5H5gOLL+rsx41AUxpIkQb8UpovMoh ef4TtFAbnZhj6/6FqVJg3owql4/JEbnX1RF4nJpogw7HLucKp+ivHet9aYTRm+j+O1BA wH4w== X-Forwarded-Encrypted: i=1; AJvYcCVkbt9CreA4KLUVmAfrWX2azsoYWSO4v8RkyScgFZX2NchgCxyv/lg//QDOppxMlSHFMUeq/tAfW34A2xkB@vger.kernel.org X-Gm-Message-State: AOJu0YwGxSUUUTMDgAKHvCjg72nC8bMp12eIcPnw7glhj7N+HLdqcmKg hxqwNexhPbdtugxPTMmCLjMwbiSFG4OB1yerj6Se1K45Jno8Je2Re3LEaLrt0zL9G4RlzrzjEM0 mlHdIYdPaut2Uc5uYL3OUWKpgJUU8g4lzH8YaSDHuJzoxZTUg3nRul0IDXCKcEWmhhZLm X-Gm-Gg: ASbGncu1SZQVZs3J9uGm4tKCNytoItP3D5TO2CRmlxi2AXL+R/C+BG8P1viCysp4qO3 9T9sdGUVWmkEWyi3NcndDucngGhNVJxtsaATXRxSZ8rlQXbXQ1SGzjmhieNFvtyuaugchswuagK DEij8A4Rk5P/imMYtLFQ9daqjvtWgehMKXoxkutSbsLFDQxryr3XLmy23KWRUrSrfMmgzPjvwb8 XLucizLKtEXaXvj3G7LhLwYu2wJT307CBYaKnajrw+OraTE8/8/I8yEJ34sqDJ9AnPlPgCcBkTc WiXyCo07hwC1qxeJ6suL3BW2AjTk6iCl9QpuYgvnPpC7whMn5tyLtAePrrNsw1CxDn3dfbGjtYa q/Ly6KAk0cvljTJWDg4LXyfz3IBsHjgzAv2w= X-Received: by 2002:a05:620a:1a86:b0:7d3:e710:1d3 with SMTP id af79cd13be357-7d3f98c3369mr2225927885a.7.1750731249954; Mon, 23 Jun 2025 19:14:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEKmXoiRtPNEWmHEBmeQERxK7vDC1NSMXXW/JftGSNVpwOb7nUvzFKFHDL4r99WBj53u5KU3A== X-Received: by 2002:a05:620a:1a86:b0:7d3:e710:1d3 with SMTP id af79cd13be357-7d3f98c3369mr2225925485a.7.1750731249530; Mon, 23 Jun 2025 19:14:09 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-553e41446e2sm1637764e87.32.2025.06.23.19.14.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jun 2025 19:14:07 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 24 Jun 2025 05:13:55 +0300 Subject: [PATCH v3 4/8] firmware: qcom: enable QSEECOM on Lenovo Yoga C630 Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250624-more-qseecom-v3-4-95205cd88cc2@oss.qualcomm.com> References: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> In-Reply-To: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> To: Bjorn Andersson , Maximilian Luz , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ard Biesheuvel , Konrad Dybcio Cc: Johan Hovold , Steev Klimaszewski , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-efi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1983; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=v3Son85QFIExU23XS9BqES7WnyoRqHF3ETTCsPhCxq4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoWgnm3R9FHErq2BcU8gbUjr0GQ+28hQ1zTQF2F 7xwmaXb9xyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFoJ5gAKCRCLPIo+Aiko 1eKrB/94cDUgCnfyhIrD3o/4vYyVA6SWxvaGs1Y0Qpy5Nel7viljJpaPK9rV2HF0DYE/Hk5yHjP E6ssnHmeaqqYEN9y2L0MkmW58T5Zy2PP9V9lFhK5M1t9uHOd9JuNGgb7bK7R+5tDpiI07Vf6j3y qg1JZ/riJqhUQkm1m/JUo9jGbNGd0cWlpOXOyp3LLNd2g6DrAtyGjb/wtEeTyizJ33y3E0YfLYA v+MNANaqIwSI9pj1uANbqb9zvgUFyCS1pMrSnkxyvWD4U/JKBzHOaYVdBL4rku9ynEOL3gkBeAj 7Fx/tf0R8J7cPqTv0qTuBwWKUaVPY4RnRJj5Pisaspm/7p1e X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: CHF9-HqS-n2BaBK3fJX2sk1jqvRnVz2O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDAxNyBTYWx0ZWRfX1I1ULB6PkKWu YBJStZSieDg56ZirIXFy2QxV0pGirYLFv9PphHVj0vZTYv51ZgWLn1Dw2qTS1ICe5O7BGAWtuUX Ugc8coN8eOxdCBxSbR34BZXxh1Z6nwQ7JV2a9MybAJRS3K1G06caCoo9nfp0DKcOk1fVlOMAHGB MhBuq110unCBHwdRuOANNwItRvJOqFpPh9kZ+G0oNv3/7ULq0qdL7LhBF+T0QFiJlnmbVCV9V3e e8LT37Wq2SQ5Th8IfX2RxFclJItpPgp1Jpizdn0gVfSuEnxs9DFn6OyGfBNPHo3gyfHTniPJebu /IH3/+B0BwKKuF6bZwm7exNO9Aup/Ecg6FwzVS8ZO4v7i0o6IrycKNquxdduC0SThhZHAeSZUBo OH/AIlyHL8csCqn5V2GdF+3JGhyQi2bI+h1+whTEXiTaVfB0QACiW6prZ5aHcx1+dt9oiXZI X-Authority-Analysis: v=2.4 cv=L4kdQ/T8 c=1 sm=1 tr=0 ts=685a09f2 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=EUspDBNiAAAA:8 a=WOWBbpsv7UBti09GJWYA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: CHF9-HqS-n2BaBK3fJX2sk1jqvRnVz2O X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-24_01,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0 bulkscore=0 clxscore=1015 suspectscore=0 adultscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 spamscore=0 phishscore=0 mlxlogscore=999 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240017 QSEECOM driver end UEFI vars access works on the Lenovo Yoga C630. This platform has only one storage (UFS) shared between Linux and SecureOS world, uefisecapp can not update variables directly. It requires some additional steps in order to update variables, which are not yet reverse engineered. Enable the QSEECOM device on that laptop and set up a quirk, making UEFI vars read-only. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/firmware/qcom/qcom_scm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c index fc2ed02dbd30b389b5058f5cac70c184df7ca873..dbb77c3f69ddaa931e7faa73911207a83634bda1 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1980,6 +1981,8 @@ int qcom_scm_qseecom_app_send(u32 app_id, void *req, size_t req_size, } EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_send); +static unsigned long qcom_qseecom_ro_uefi = QCOM_QSEECOM_QUIRK_RO_UEFIVARS; + /* * We do not yet support re-entrant calls via the qseecom interface. To prevent + any potential issues with this, only allow validated machines for now. @@ -1995,6 +1998,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = { { .compatible = "lenovo,flex-5g" }, { .compatible = "lenovo,thinkpad-t14s" }, { .compatible = "lenovo,thinkpad-x13s", }, + { .compatible = "lenovo,yoga-c630", .data = &qcom_qseecom_ro_uefi, }, { .compatible = "lenovo,yoga-slim7x" }, { .compatible = "microsoft,arcata", }, { .compatible = "microsoft,blackrock" }, From patchwork Tue Jun 24 02:13:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 D729A23BCE7 for ; Tue, 24 Jun 2025 02:14:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731260; cv=none; b=Vf8+grBoMlWWNJRywqiDQcF5xZxPTyxML4VKNrFMBtJwa68Dudd5Sf4sv5eZnaBG1d94WvIoGqbV8B2il2A950rzKbTSTasZra9DQaOeZKZoho8D7R8zr3NUPeFjV15q/SlpS62p3VVY5a1Oi+sDRFdM954l1+PHp61aleR71h0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731260; c=relaxed/simple; bh=s2o+RnAnwuuTYdNz0c1fk/UXp0JDkRHvl3NhwSnxORg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kfmB5knlmhu0ruU6mjoQt98G3OB0uyJmoBU/qmIwALpknBFzzu9BQnkJGAzZXMKBKRcSTi4RY8sniLm7/0HyNZDgUoMpZfXdVoJKLSBZQ8l01zCDVOPmzcLVLYsTEJGESiBqjs5K3g7ICqXgblnxwjCrOLUC8FQIziRgHfxse70= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=mTbTcNjo; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="mTbTcNjo" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55NH3NZ0005791 for ; Tue, 24 Jun 2025 02:14:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rXsS7jxuGefUn2n4a2PcfVZg4ooOKFqRyiTGh+plE6Q=; b=mTbTcNjoFIMpupY3 M9nf6M0iO7jrbBzOGCTzmv3I2kNdXddeHZRe0dd0S5f+z8qnJv1CHG0J8AoxAZk7 IOrfelL6P9VYacCnzrgEJgoXHNMv60fcBq+41/cSO47ZY6TS8TcW/FkmPBPfEErX kVaX4UR9oF/IDnupDcV3/1+gtp+UheDaCCwSjESMwRiDOY2DrEJHP6R8r4wMgNrw N+lqT1YympUowDsgf7W9iGveMmU5bISNygHLS0U9i9vV5K7nN4e4j1zXhXUSNgEn 3tvuiPf8En5fSQZmNmtewgJaiGNpuqB8HZU/eaMW/NOaiXxSn17UROsd53gXvhFs M7DviA== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47f3bgahe6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 02:14:16 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7c5e2872e57so745968985a.0 for ; Mon, 23 Jun 2025 19:14:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750731255; x=1751336055; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rXsS7jxuGefUn2n4a2PcfVZg4ooOKFqRyiTGh+plE6Q=; b=GA91Rs8nLQvVAow6l7ce3RObhQ2Wmq1mmLmjCsmFrS1FQD+5rotLQiHfABiSc5wEeO YHfpB0/NOG/JC4lSKp2LHlKU1FQ/MGUSW8beNGIxjVCFRvp9OO23MPUjTynJPfkgyP7P QbdQWJWhg6sFIEm36ladmJVh6XawgQYBYtYV6TbEOK7Qq2+UPu+T8sjnj8sIbzhAgM2C shHwS+U2YIiAqlptAICTOCR3OSJO4StAED4y8wOlIsQdBr2BmCFVQfE1HthRNCBv6E+Y wnkj8HWW31OrdY2Liwu/eeHl7ifXv8u8cmFD+X62cV/cLDn8+0Rc0AUtTrdmyCqwNqzs TOEA== X-Forwarded-Encrypted: i=1; AJvYcCWNiY7BP3RSiCNNSsHYui3aZOzAV3/YZxf4Mt4tIsS/ULsYgVLrYxK5rYFJqhrAlsIIj1D7DZIMPYvU6vS9@vger.kernel.org X-Gm-Message-State: AOJu0Ywn21/u8SF/ErQnClnQaPhVEHmatn41QVZuu16/Rtly0ilsucMR ur0W4WXRRTIr0Zadk/03SCIYvEowQVNhtOwhJqmi7fF4ThTTJrMmo/IftypUJn4oUw8RB6BKJXA 7Ccz/5oPlweLihajy70sMXgPVasetS9y9pfspiGvSYbJfwzaO6dkrSQH8pLmvTMIzjrpBcoaLxY 7h5i0= X-Gm-Gg: ASbGncsvOI23Z4y9VSoQOIywubvGmfEJ6TPgLtdoCnnt29iz+vMtKlnNukZnpb9rqla ckwyOo9UPHnfLu8xLZlJVt6vMEwWcUE9/VUv9rfdj9ePDrXifXSGg7UFUOyvl91yhnxZJwA03V+ v8xZhOJ5Z2w+De9UAxHJ0gRKDltIWJK7Qs6LqicGiw0/qGnt2qk4if9VmU7MnbWEcHM3kv6a3Sf apjwEsW8KHObkz4B3Skr8TqvyEIyxLVHMSKtuumRgvkVhcyYbzvgl0iSxrVnoxKzqKqEYmzPTEX lRpph8CNYVyvuLpgS2uEPDvr6k9e9cPxN54A9MZpNguUJkAiqvIy9unmFYqhETGoc33Yf93tRHf lbp3106Br2I3R8uwf31P6QLRKMLZYns8cGhQ= X-Received: by 2002:a05:620a:1922:b0:7cd:331d:bb3e with SMTP id af79cd13be357-7d3f9935e7emr2022904585a.32.1750731254915; Mon, 23 Jun 2025 19:14:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHPRQEcxIl/1tKf9CY1/kqMs19qtzRY7gdh2XwyltdEkmnKpY5wXHxxDtB4ZK5neoLM+qrbsg== X-Received: by 2002:a05:620a:1922:b0:7cd:331d:bb3e with SMTP id af79cd13be357-7d3f9935e7emr2022901985a.32.1750731254441; Mon, 23 Jun 2025 19:14:14 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-553e41446e2sm1637764e87.32.2025.06.23.19.14.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jun 2025 19:14:12 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 24 Jun 2025 05:13:57 +0300 Subject: [PATCH v3 6/8] firmware: qcom: scm: add modparam to control QSEECOM enablement Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250624-more-qseecom-v3-6-95205cd88cc2@oss.qualcomm.com> References: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> In-Reply-To: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> To: Bjorn Andersson , Maximilian Luz , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ard Biesheuvel , Konrad Dybcio Cc: Johan Hovold , Steev Klimaszewski , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-efi@vger.kernel.org, Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3235; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=l/2vDz7zeLnp6OwntquJZV6YAtUYQ1dSv5z/W2j9Xfw=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ0YU57MOZyPTF/dlmU/ODlc/cNRYcel5y538c/YknT9vr KZ4qP5cJ6MxCwMjF4OsmCKLT0HL1JhNyWEfdkythxnEygQyhYGLUwAmMp+N/Z+NbJ3txjX7GioD /sdFlzMbu/ieiEotK///rsihPOJijY/1k4+bL22pOzPdPkiM629qs5+N0VG7X2tSfUulSiPflqZ l7tml6dJ9Pn+Hw/IeuSOn+H79nNe0ZEbNWen5n+/GKUcEJi0X/JI+J65Ecb4ot0yh4AH7om8MtU FLD0yNbcuQ3OVw/OSG8ss3Dbse90spqpXvPqpZsJl54b7bTpXSonahWyZ9Yr7Tk9fNl/M8vU1a4 TVzTVb+f6bLM9Y3bUyV1I3eU51z1b/0v873JzHz/t/VSBSU2NTxYbXVtB/3/qlMaS1hWcYgv7lb Uu6nROf8g5y5jA+N2ZSKU/WvfTy1k7m34nP1nQsHFNIcAQ== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: f774o-yTb3We2aqcLZh90DWY9cD0uIr_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDAxNyBTYWx0ZWRfX/8oBNoxoAlZH 0X6O8IxE4ZCKXvb+N0VF3ZyMAX2A4S3f6GWudHOUU/zZB3iogDnDK8xys3DjBpoUF5hS2MYM0cN GdUgt6nJRh0MfpAP/0/wyuYy9InMyCzeVjTKsWPYQ475Y2wfvo2P3q3QYe1CLplLH7s91nr2asc G9fZcjE2d8rPX6AXTUBcaZM1cUMfs+lOppv+DgcwxClSdtEw079bGILsiQm6t5T1R4izTuDhiSz SkpYvUVV/T8tM6LBWfXHckCKppDYLHamz16B2fOEdcspJH6pRXrTOuu5hwd/MX5RBK1MHeaRbE+ Kr4mzGRs65yeqzvpi0Upnd14w2iCxNX3RJjLjMovMouEBneRj8zOaT0fqKN4Qak61fQLZDMlEoD K/zpZPn/mmk5cyGG/xTzJ7ErWiMb/0i/8E6GiOqeZ6UYjlycHZuWr6ZeItqXbMT2zTxjdBzt X-Authority-Analysis: v=2.4 cv=L4kdQ/T8 c=1 sm=1 tr=0 ts=685a09f8 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=JMKUWE_9wimnfyHsXasA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: f774o-yTb3We2aqcLZh90DWY9cD0uIr_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-24_01,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0 bulkscore=0 clxscore=1015 suspectscore=0 adultscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 spamscore=0 phishscore=0 mlxlogscore=999 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240017 From: Dmitry Baryshkov In preparation to enabling QSEECOM for the platforms rather than individual machines provide a mechanism for the user to override default selection. Allow users to use qcom_scm.qseecom modparam. Setting it to 'force' will enable QSEECOM even if it disabled or not handled by the allowlist. Setting it to 'off' will forcibly disable the QSEECOM interface, allowing incompatible machines to function. Setting it to 'roefivars' will enable the QSEECOM interface, making UEFI variables read-only. All other values mean 'auto', trusting the allowlist in the module. Signed-off-by: Dmitry Baryshkov Signed-off-by: Dmitry Baryshkov --- drivers/firmware/qcom/qcom_scm.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c index 27ef2497089e11b5a902d949de2e16b7443a2ca4..5bf59eba2a863ba16e59df7fa2de1c50b0a218d0 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -1983,9 +1983,14 @@ EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_send); static unsigned long qcom_qseecom_ro_uefi = QCOM_QSEECOM_QUIRK_RO_UEFIVARS; +static char *qseecom = "auto"; +MODULE_PARM_DESC(qseecom, "Enable QSEECOM interface (force | roefivars | off | auto)"); +module_param(qseecom, charp, 0); + /* * We do not yet support re-entrant calls via the qseecom interface. To prevent - + any potential issues with this, only allow validated machines for now. + * any potential issues with this, only allow validated machines for now. Users + * still can manually enable or disable it via the qcom_scm.qseecom modparam. */ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = { { .compatible = "asus,vivobook-s15" }, @@ -2013,11 +2018,27 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = { { } }; -static bool qcom_scm_qseecom_machine_is_allowed(unsigned long *quirks) +static bool qcom_scm_qseecom_machine_is_allowed(struct device *scm_dev, + unsigned long *quirks) { const struct of_device_id *match; struct device_node *np; + if (!strcmp(qseecom, "off")) { + dev_info(scm_dev, "qseecom: disabled by modparam\n"); + return false; + } else if (!strcmp(qseecom, "force")) { + dev_info(scm_dev, "qseecom: forcibly enabled\n"); + *quirks = 0; + return true; + } else if (!strcmp(qseecom, "roefivars")) { + dev_info(scm_dev, "qseecom: enabling with R/O UEFI variables\n"); + *quirks = QCOM_QSEECOM_QUIRK_RO_UEFIVARS; + return true; + } else if (strcmp(qseecom, "auto")) { + dev_warn(scm_dev, "qseecom: invalid value for the modparam, ignoring\n"); + } + np = of_find_node_by_path("/"); if (!np) return false; @@ -2065,7 +2086,7 @@ static int qcom_scm_qseecom_init(struct qcom_scm *scm) dev_info(scm->dev, "qseecom: found qseecom with version 0x%x\n", version); - if (!qcom_scm_qseecom_machine_is_allowed(&quirks)) { + if (!qcom_scm_qseecom_machine_is_allowed(scm->dev, &quirks)) { dev_info(scm->dev, "qseecom: untested machine, skipping\n"); return 0; } From patchwork Tue Jun 24 02:13:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899499 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 EF21D24293F for ; Tue, 24 Jun 2025 02:14:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731262; cv=none; b=Sx9S1Meo4IJD0JFBh0uf4H2ES9QudpjhnH1yr7PehF0sPKW6e0kdBUo88alkRg9DtXuxclFB3C4YkWWyb5MZDjpm2bZ7bVbVXw477D1kc4U8A+fYu+R++qR6QNDXbgV+bmmlKAZhJjWp7+WTGLwBgIojmOQCEypcfy/4P6rLcqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750731262; c=relaxed/simple; bh=wwPgZquGtv5ruN02X/fEQJ5qyMWldQS8yZQEL7GHlMM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Sb180DxvoYWhxdg9Kz9ym52vGTsfPCbjv6lK1Ruymc/QrscKxQ2H4Cjj9tc+XWvH+dDP+MizkY8UuqCWX2P5t2Z9tqcoV3nL3ucpLBB9Pvo4gvKEAlkvYd0C9hC+VbmoWsjccdfrdXb0ylWI/ycklQx/aA1fgygPDh2ZqjKlAZs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=RhIrK496; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="RhIrK496" 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 55NKmV2r009499 for ; Tue, 24 Jun 2025 02:14:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tyyvulGuGpaTaUXvNlB8/sd2dCkHRiL8Dbbs2iTh6WI=; b=RhIrK496DGvoc9Wq TQqdEOsYTafZ1lXbcNr9n7kduseRDUEh9YBoZy+lFrygL8hAip0xcWtLTWBmPxTO 2j1DZdgbzxPJFL84zRGE/kDitfLPpPnb89DkYBndni+JCeQ/DPz8n69v8s0yQiya /AQiMFSK8ciEP4WfRiZ2tvzu6e7InG/du1GtHvGxWmgzjQG4imYKsk/vNRBU01S7 2CQ9LQ9kc+lYv8c/LAUPsNrinSBs7UnHEH5ng1+kp+YkBrxoIJrFU909NGzD07SO iBKARZA98YVixRxXxZyoE9bpkoDIpCrUR1v+NZ8kHoPA9FzIHr+rXSzBbzR0uF6D iYelgA== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47f7ttspwn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 02:14:20 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7d399070cecso889341085a.3 for ; Mon, 23 Jun 2025 19:14:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750731259; x=1751336059; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tyyvulGuGpaTaUXvNlB8/sd2dCkHRiL8Dbbs2iTh6WI=; b=YNO2w6K47pQ6ptRgtyVgav5o1IngX6xFXV9ZjFkuUJVRZq3eJOFaysZIk/P15l226/ 1IZ2lpzfQsUJ+cIPO+LEqeUspxksMVpfgVBrzQC4CVpoUKqi1fAWDxYbpzduXIHnEvZl Bf3BaHilX33OvU2MhEI7WpaPR0DSujJLYBjVgap4QKvlWTqxgswXhg0UK+Vb+uEhBFw+ u60oEElIUQdXRwCP++t4aCEAVmce7lxxYArYD1i+AcpnwxSAe4nmB1H6aFAjvNvoPGAj W7oQ7mQMFy8VyKXByt9JvK+qUNP/qd1pjKxHJzbnIej6C9p3W3R2NvNyYNJEr4OT6fpW DgRw== X-Forwarded-Encrypted: i=1; AJvYcCUMfE5Ve3dvOOT4bjXlCyMJaWUfB2pQNvhcwd4NFmqSDTQ8v4LxJyyiFl6ISY7gR6mrGggrNNe/uvQKrQg1@vger.kernel.org X-Gm-Message-State: AOJu0YztBZSsXHaHlo/zzxGjmqschp0pji31VRGn86GWKluvKCWIWvOy JhrfdXTbVnfIUV2mDuDnqftrriWWhuTlv/D3/shyxvE+qt57tDkqV547rI69qnI+QBqMAkDN/rT IHlj9OkNRQ6tiY0S+VPDurxGpYm9RXFH10/Y+vhj6NfkFa22v2FdxgtSaJcTTIbjPFFwu X-Gm-Gg: ASbGncvyeAp7DHdwiQALQScdXmIRtK90kOYKo0cS+eCpeKRe2rYF1v4l0k7BFU1+zVm WwWA2OCQ0cSFsNil04pbuqeT3hvR/puQPu7Y2KSrkEVvAVTizxo698WuX+UenKeFk8VOuPlLISN v4z7UvFZgowXkwqHHqkbUXEh5s9hMET0y/gGIP0YvRalhDX5KWqkQBpGZ7ssPK7toG5IB2fdHJg OF8h9CZyuIWp/Z3Ab3bklvIdmAAou7JMtpfEU9S1fzNzWJavDYT2K8PknG/we5//dFPB9AIFsAH 8ywbUIMWOYBPv7XrBfFkQOMzJfdtEx5HqKGRLa9834I01yLZBuBnnqkbkJ9L3gOHQKveBQaNQ5C ZMf9cApaSSK2F/Ked9v+FrSd7JsdiH0Cu55A= X-Received: by 2002:a05:620a:c4a:b0:7d0:a096:cf80 with SMTP id af79cd13be357-7d3f9932d64mr2264381285a.31.1750731259204; Mon, 23 Jun 2025 19:14:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEA55butSic+ng2eWxkWHewC/1gHyAW1PqwPfZPRr+TsnW2sMpp6SRzI1+0SpA8shvosX3lrw== X-Received: by 2002:a05:620a:c4a:b0:7d0:a096:cf80 with SMTP id af79cd13be357-7d3f9932d64mr2264378685a.31.1750731258714; Mon, 23 Jun 2025 19:14:18 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-553e41446e2sm1637764e87.32.2025.06.23.19.14.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jun 2025 19:14:17 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 24 Jun 2025 05:13:59 +0300 Subject: [PATCH v3 8/8] arm64: dts: qcom: sdm850-lenovo-yoga-c630: fix RTC offset info Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250624-more-qseecom-v3-8-95205cd88cc2@oss.qualcomm.com> References: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> In-Reply-To: <20250624-more-qseecom-v3-0-95205cd88cc2@oss.qualcomm.com> To: Bjorn Andersson , Maximilian Luz , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ard Biesheuvel , Konrad Dybcio Cc: Johan Hovold , Steev Klimaszewski , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-efi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1628; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=wwPgZquGtv5ruN02X/fEQJ5qyMWldQS8yZQEL7GHlMM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoWgnmG1HaZB/YzzH63NYrvRaoUuv8/0tpXEBpI iEyvwE9gBqJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFoJ5gAKCRCLPIo+Aiko 1YhKB/9SkuLIh9Eh2/Cyz3LLhzdaEGoxyryhuSqprotgQQyo4Emt0TqpBt5aW0XKf96gbkh9iRD CTE2U3rM+DE9TtfBW8fAFWuZSNSRlagYb1kUoqgcT/ZDbN/Av7r2eUgUuc/5twxpbSzrzIpNMJO uiDsAbHRd3euOJmD8zyDjBmQcg+/l9Bl9WsQNbW8EQwop8GXOnjBv2cij9GOv9PURcJ/ylFfKU+ ZrWP3Djdnb1iC9UAry83VRNtpJIP2DC9aQvv2zpUECjFZf682RYwQUqPYfea9oml2Io2eiUMFbz GYh2tX2XCvtFpT0YdWbxSw9Oc/hv6CFOCRe1G1mOyJkTb1/E X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=QINoRhLL c=1 sm=1 tr=0 ts=685a09fc cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=EUspDBNiAAAA:8 a=lpcYNmPcDvg0ODyLRbEA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: yTLEhOv4nHa50zd-eH5jMTWWhUlKBMcn X-Proofpoint-GUID: yTLEhOv4nHa50zd-eH5jMTWWhUlKBMcn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDAxNiBTYWx0ZWRfX0tsLU9f/6Gey ju2E1KJ9L2oEAPi9JT+vVg5oWCAEmgRxxhcfFYhYIw1uIU1GmBCn4DbDUZMo1Je61RHJn8dUyb0 HwFXIIT7bAlQBOQvuE5SQrIvNwVgMZE4Ac4gBgKjFxMgTpzwRH1P13p38SPcNwCyd48g6aDf1+F GSuVLp5aP8Yy+V4lIsKpB1u+6KeIZQyd9YFrJ1XXUtyEPbSyXhEQ1F6VggVVmlabcSNL5n30+Nb rpsMHDoK9IT6QSPvLm6o8i1M0bN0pKkrNh/Aqtkmd1Za0fpXxBzRHgFgYADdIRvXOZNo/tsveSx xL+Co2LpuXt2tfW4ggm0CJ+LdZdYBdpSZyv1NumZt7h5WI364NgaFpe1yNpYBQ6zpj4BJQMkDAa V0/VCSWJRkNxPoLYH4XezF6D/nYuE8JJMfF82qoyz2tbN6V4MndypsqCKhv3+jWS/8ERLt+P X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-24_01,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 adultscore=0 mlxscore=0 clxscore=1015 mlxlogscore=980 bulkscore=0 suspectscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240016 Lenovo Yoga C630 as most of the other WoA devices stores RTC offset in the UEFI variable. Add corresponding property to the RTC device in order to make RTC driver wait for UEFI variables to become available and then read offset value from the corresponding variable. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/pm8998.dtsi | 2 +- arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/pm8998.dtsi b/arch/arm64/boot/dts/qcom/pm8998.dtsi index 3ecb330590e59a6640f833a0bf4d2c62f40de17d..50b41942b06cf1a3f43f9c754b3bf2e1eaa4d353 100644 --- a/arch/arm64/boot/dts/qcom/pm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8998.dtsi @@ -101,7 +101,7 @@ pm8998_adc_tm: adc-tm@3400 { status = "disabled"; }; - rtc@6000 { + pm8998_rtc: rtc@6000 { compatible = "qcom,pm8941-rtc"; reg = <0x6000>, <0x6100>; reg-names = "rtc", "alarm"; diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts index 8ef6db3be6e3dffe4ec819288193a183b32db8e8..c0c007ce8682cacd1cbfe816ddb975c0a099ac89 100644 --- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts +++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts @@ -592,6 +592,10 @@ sw_edp_1p2_en: pm8998-gpio9-state { }; }; +&pm8998_rtc { + qcom,uefi-rtc-info; +}; + &qup_i2c10_default { drive-strength = <2>; bias-disable;