From patchwork Tue Jun 24 22:53:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899535 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 8F74125B30D for ; Tue, 24 Jun 2025 22:53:31 +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=1750805613; cv=none; b=AzGLc6KK/UGUmV6LGwzkcTqXmtJRTQtdBD9Ko8O0aXbD8hnzvSgs7gYtGyJu5yb6GVVli+G0IPZ9NowtF+ArLnKshnkX/YWm58ynXkhPtn3aUOf+Esn5fJ4CVsXU7wUYpA8Ap+5vk+aP6XCEENnngGmGp7t0orhXIQP2ldU0e2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750805613; c=relaxed/simple; bh=qI30ERfmlxxdaltBkI9sJ1E1tFwxvXR+BM1DU9oH6SU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=k93twEFR/IsVzfc04gTUB7oPpxW+OqIkBd2Q3Hv/q6wQAkBOQvq7ylfEIVG8hMEo3kw+QuF7YUwDaFHkCaUKCPrLPVr/G/0xgmbPuBcUt3Gw4HAqTh4tBZGXfwhsyc5JiB2qg5TgSjS+0/nxo2cSfcslPo6ZYcfOmZJqEFktB7Y= 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=LdqpCm7F; arc=none smtp.client-ip=205.220.168.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="LdqpCm7F" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55OJItSr029987 for ; Tue, 24 Jun 2025 22:53:30 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= Gg+QL+5cDfJ0dWjuRdv78pSkTPbAQTwDQrcNodnZrsQ=; b=LdqpCm7FHOZVC7gG 3UwWeqOTefqs1AHXjhIAX2tYSF90zVudzPb5xMB05yfBb0+bMoKyWGw2OaPhP6dh KE+ZrZ0QG3YCBUOyuVeGWkTfBEvyg8WeMGwdT3LH5kTKSGiZkXmHCDQnpTr0K6d1 6ksf1xQ7JSp2uUxTiftPO8s+dIP8F+5Hh49NHt3AOEGoEJ0vPARLbujjHMRwcQWV OKw3pK4Dniq8tytx94FzQlVKg3NKnp1r3LGghyaQdKzWL4Y2V0EBdzcSwQb5c5E9 vmFTb9bOVUf79A1jI6hrBXjB36nBnIEIJjXdXF2F2auJnulY+L6T5lPGaaw9QtFV 9d5Mdg== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47g22q8dv2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 22:53:30 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-6fb3654112fso20713556d6.3 for ; Tue, 24 Jun 2025 15:53:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750805609; x=1751410409; 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=Gg+QL+5cDfJ0dWjuRdv78pSkTPbAQTwDQrcNodnZrsQ=; b=Vuxg41EeMW7d0ys0/dbe6CmilQNqdUtGmB3zMOUrsQfkHwmY/08U2WxXh99ArvCZy7 WO94Xhi6E8+VuZnZxvOfAqG9vQy985pIFno3RTV+BYo0J3uOANcVUjYieOcZFEYIVEmz 4ZLIEr2BiMeHHRKBt41FNKYDf6Zivn5WqOgWRbUXUZromorvgSQpy+WxyS+Rx7DYt1IG nSeKIxT4b8T7c3yZTX82+iPzJdp8qjiIYMGMaDs8aBxgpQY5bErEf09pnWp4ZPq5Hi0T bMB+fW3XXK2HK0P9KNZcrYkdQOL3k94LOmFbVRzoedMSmwsOCU4tC5VrAaMFycC73tzO UFyw== X-Forwarded-Encrypted: i=1; AJvYcCXoPKIU0NmleTkGyFupqPPhfKZot6fiL/vsPVzVZAWWWyzVlPNVmur7S83CZi7ifvd2RMZeb6j0M7U=@vger.kernel.org X-Gm-Message-State: AOJu0YyHaQ3mr6xaBNHFp3G+RBTJ+e1e0cLI2XeV7DgOj8wg8Nsfodu/ TIAkKszuCWqmEX83MxcMQDEl2JuN1hs1EGcr/O6cdozDTwnxUgPzOhKTU8I2df2c0nQFQPqdQxU 4TGyFuR5g4J0OKHmVc5d+xDYOpydYFjshPyCR+Xsg6/dwKCjW1/pvv5FOper68FI= X-Gm-Gg: ASbGncsbsGe3M94lsj10oZRAqrp/ShvRviOZ4Cfv0c2C5cNuLHCgLHFQzAvaNj6sylk wDEq9nPRiRnUE/Db7Iz95cDrG663HMJm1P5wa8236Pnf/p/Js9DjzEpLULvC63eGO1noEw3nG1l rRN+5h6RMuFO2eOfsDD5/R09nQclcc5+OFeATc53vQgC471Dg2gHW2zGO/fKDClp8PINHEV6tRw dYI6r2Mp7RLN7qe6kt/K0Hg29Iwhz1GHoSDv5gzZ3IwBxGbVjQO51UY6LyO6bmzpXuO8VPhSNE9 y6rOICVxY3FMGwl0zNNM9t4rRM3OoH+U8qcsJXqV5+1d0O663dM9EIFs7m4x9eQ+KGDOp4xMiUK tSFcP1IZ289wuLKoYXKghIAbQgTNjz7WWI1Q= X-Received: by 2002:a05:620a:1790:b0:7d3:f3e1:b8d6 with SMTP id af79cd13be357-7d4296d4c12mr164500185a.21.1750805609121; Tue, 24 Jun 2025 15:53:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHEe3S5rzUbL7rZSSoe52k49A9nYQyjY7KkMpOvTFxCeYYeWZ8qpJarI5/v5VOrfFqkRC8V6g== X-Received: by 2002:a05:620a:1790:b0:7d3:f3e1:b8d6 with SMTP id af79cd13be357-7d4296d4c12mr164497885a.21.1750805608721; Tue, 24 Jun 2025 15:53:28 -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 38308e7fff4ca-32b97f5980bsm17843851fa.7.2025.06.24.15.53.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jun 2025 15:53:27 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 25 Jun 2025 01:53:21 +0300 Subject: [PATCH v4 2/8] firmware: qcom: scm: allow specifying quirks for QSEECOM implementations Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250625-more-qseecom-v4-2-aacca9306cee@oss.qualcomm.com> References: <20250625-more-qseecom-v4-0-aacca9306cee@oss.qualcomm.com> In-Reply-To: <20250625-more-qseecom-v4-0-aacca9306cee@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=4209; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=qI30ERfmlxxdaltBkI9sJ1E1tFwxvXR+BM1DU9oH6SU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoWyxi+Rd/6xV64rmwuWSJM4867AmzJoTGctKBJ Pnn7iTMPyOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFssYgAKCRCLPIo+Aiko 1eeqB/9bB8w/3g13sbXEVmXUl7dFo5AXqVuYmJed/WIuvkZRaTZWUAex7q6ORLxe31u5eySXXHM tcYfoYKew8te/krMe2LbysX0BMrMwH4NFB8QD2EN90S+Q/OoCW4ivcsImd41iz56IumY3zE+Eit gKIBQtn9DwoeKDZ6ALoeZjsPrJCL7AGBiMCSHFtjyQWxIeg5c7OQa66ejecWf6H1wnFiPC+yM5R CnKQMQqAx+aCa+kRuJyMTIbpvM8rvTYI1rrRvt7fOaA8VwRuW2xxocW14E5dw6ajNqyFWU4xxhp gBOQ/2kkG6aDRXkW5M2wuAn8tVrQRLydx1eU8rjx8ie9vOZq X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=cuqbk04i c=1 sm=1 tr=0 ts=685b2c6a cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=EUspDBNiAAAA:8 a=wTlJEWXFZO-q-0qxHBMA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-GUID: Z057r0rxxtNG-GnQXqttH2GbdyusqGBN X-Proofpoint-ORIG-GUID: Z057r0rxxtNG-GnQXqttH2GbdyusqGBN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDE4MiBTYWx0ZWRfX69o4Y3sa4l7J goqsL5i23hZCjEZKodA8S/e9pE+2lZV7GCaN1hNEVPuZcLhSXyzvb8hPm3mD3fwg3EfMUxZQBg0 Gl8+naVjjrO9rzUpC7xP/hTigsk97XtnkVq9guwXRPsgV5Bz9Ex+aRcfxqAxKd2UJ7R28SPeqGF 3/7YWUVeAvBNg8ArTUOR8wPyjtcJX+oXq5eauYfCAeokGTZFsSrOtnDKjh20wcBDW2FmnPg2YpU iONI9bxZ5TCRDTXRwfJUXiRaayl+h2LH8eW5tnKlqIbK4atJf36RgvRalYh+zP+qWRa5o+X9nMx IRTlI7dMTH78JaX0cmLl+rzSWZ0L8o/uKcZC3NVO85gNDQHQVO3lDMc1H3tW0bWZW2d1NkjnqcD pYbkkRsPkoj981x405IAPPvMNGNTzAJ/ZBExBSHWDEVSzbnEunhgpEQhobSkjwdzsf+MUWxY 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_06,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 priorityscore=1501 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 suspectscore=0 clxscore=1015 mlxscore=0 lowpriorityscore=0 impostorscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240182 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. Reviewed-by: Konrad Dybcio 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 22:53:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899534 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 1241925D1ED for ; Tue, 24 Jun 2025 22:53:36 +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=1750805617; cv=none; b=Ud2SbnLY9rh1RxRntTv16koV/bEJf02QdNIbrlsy9cpIAG/tCPhEgvyXTVV/qVz0IRGk6wwSrlcHe05v6KCBb22EGipz8a90uxPWIML764rdFNXXm8sNNzSKdRQH8lipkse8tcuiPn3sn00kBjflpnexy5zBrhmcYKInfd6uUW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750805617; c=relaxed/simple; bh=v3Son85QFIExU23XS9BqES7WnyoRqHF3ETTCsPhCxq4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eNq72LLuFOIdkGwHOwP7Rtq3z5djAGDlZKC8kuYXJa/QMH02Umby65sYaDdJJroSYVORVrnPIhzMFhj/OkhRkayn9C2x1OZBd/mgIAxQUxZ0YOZpyQ+DsnHGpGN+qhjh2ESU8kMBIeKxkHeTL65BqV0vmVOr77vOjgTS5oivzME= 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=heQ7cSu0; arc=none smtp.client-ip=205.220.168.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="heQ7cSu0" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55OJIxnh030068 for ; Tue, 24 Jun 2025 22:53:35 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=heQ7cSu0oLs/xQYc +cquGbEhuUdGrXFPF+szDj46zHZlQgDcuGBQ2qWmJiwglalNK6jLjmJdm8t7R5On UGU3dOG0x39by6qlsydQR1SYc79anY81Kw/6TkFdJuxMqU5RD7oCtcMB44DM0Df8 MA8Nqm4cs5KGSKeBdE6OU3ly0Ioy24OR5tL3G0ceAPaKjj+HZkzkMTUKWwCKLYSi RR7W7HaZWN5DE9qtqNqrs+6OPyCdEuB/nfquGeqA+O+/AKSC2zCR4IPmDl5+YZsR UtpTi1jZIH8Mi3LA8QK+VfPAl6orMc4tVxawF9a8DEcI5V6LGvWx3f2LcsK64vL+ kuUs8Q== 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 47g22q8dv8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 22:53:35 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7d399065d55so130810185a.1 for ; Tue, 24 Jun 2025 15:53:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750805614; x=1751410414; 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=a/XGNy2c8K/jS/dPl7ePQKroSYIxUYle8B1wjQyeYZlFBcij1suP7diEU0lNSmvNXe JJIHXvK4XE7o4B1VvMxvNDqURlDrX+5S1ftCn84ImQr+U07lMom6cZuKCiSurARDoLDp mTy/zlbQny3uUPWO14iON68lsk0X1zwpY34/9sDn7i5pc+Sih9wpvZxXFtiwp1KRu2mb veKfGprwj/tSbKw2auxXc60fE7/bGJzLOLdGdX+1eacg1ALZDd0ACqedKCU3s0Rdoqr6 vS+zd2wmgx61iAgn4KyEjaWZjURnGsBSDoF1y3FfErjDCbEglhVfVc/LKM0ESVtPZZpN ymiQ== X-Forwarded-Encrypted: i=1; AJvYcCXlN/8dII87k6nB8ooGvChHneiO9TVm1mgxJvlJmewPa0gkK9VeTikmiz29Vygs9TgfieJzixI3218=@vger.kernel.org X-Gm-Message-State: AOJu0YzQbizlA91XbkOs1aQXj78OtPIlNVyrjou+UcLy9ejzpzO17hwy a5DMTZAg4Sks3unrP00TkYHXSs4x7HiNX/XqAOGvSlIXUNwF9WyQRJvoyDcU95+jEkwchS5++KB cnBpipSFbmL7/lbZP1UBdjDTBYghyYiOuy45XkHMuKp/oxN1HQtLRlee/smf+q6c= X-Gm-Gg: ASbGnctbCX4vkiiDQI8H/T8eJRK/TT/n8/hZWa3eU98LMqmuqqx0K59zC1zuVe5Gwk6 fCIbCmhSOR4SV+64vEmk1eTX/lN0NS93iK3cGsy1SIdNgidBlw6vfZPHtXiugS9J1uHQb+u6Grp 4ZabOuOiVZ4nZiVSKjn9Q+uQmM+zBSPbmsZzbQ/DSWpyNqG4wEQro01Vpf6Q11hD4duPzfcabwZ 9Xa4TeGOK38e+89ZTGrEtYa/11IlulgswjfOj9D94ihtlW2HDmHZ0z48EtVeaa6UoRsUesXzFk5 9jdq7UD8wRO4T8OY4J8GaetZ+LHM/evd97cWYOD1yqSdeB9Ecy238Tr5WwkhZfMyxS1jaKFUOwv MOBkueZDfYLjjSg8cpWyDJbUSK47sVWsmhmw= X-Received: by 2002:a05:620a:199b:b0:7d3:9025:5db7 with SMTP id af79cd13be357-7d4296d4ca0mr130763685a.20.1750805613981; Tue, 24 Jun 2025 15:53:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG5EFwVBWDWSw9S4MgYn2dQZK8Uz4Z0djvYMBXDETMw9mP0euPEYPNpMg3/H64UETYAZ3h5cQ== X-Received: by 2002:a05:620a:199b:b0:7d3:9025:5db7 with SMTP id af79cd13be357-7d4296d4ca0mr130760585a.20.1750805613598; Tue, 24 Jun 2025 15:53:33 -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 38308e7fff4ca-32b97f5980bsm17843851fa.7.2025.06.24.15.53.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jun 2025 15:53:31 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 25 Jun 2025 01:53:23 +0300 Subject: [PATCH v4 4/8] firmware: qcom: enable QSEECOM on Lenovo Yoga C630 Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250625-more-qseecom-v4-4-aacca9306cee@oss.qualcomm.com> References: <20250625-more-qseecom-v4-0-aacca9306cee@oss.qualcomm.com> In-Reply-To: <20250625-more-qseecom-v4-0-aacca9306cee@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/pANAwAKAYs8ij4CKSjVAcsmYgBoWyxjXBPS2NQyy/aPYTJBbpm7VMncF0PvFE9DS A+loe3omLCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFssYwAKCRCLPIo+Aiko 1Q4CCACdhWwyMQh739/HEVce9ToBUSrcJ//fz+OcGTxMRYVSWTm6naDduwMxd/VQsacY2TrJQsC 95EWAB/b9rF4WjoWka9Sj7f5NEuxSWXpnSrjZfDa/JDt2OUqqdMF2erQv85jb7o3R7vaKY3FvCM IPeo+14nP0vC5Y+GbojPeau4kwzKtOvKm8uekRrh5n+MwJ+pvVKtcmEL6T72JGx8YOeeHZ140E9 0vehQvCBG1AxM+EFrYH/SvozwuPR7uMhfJjC93NnNmYYQ8IbwARe8yMVTRvCSek/dfbZXj/rW8F AlnLiMxWCq5ptbdPofUcm2M5D05Mr2YBULg2pn/+th//21s0 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=cuqbk04i c=1 sm=1 tr=0 ts=685b2c6f 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: QA9A3DHTdGDgC3lSgspd_iNlEr17c_eZ X-Proofpoint-ORIG-GUID: QA9A3DHTdGDgC3lSgspd_iNlEr17c_eZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDE4MiBTYWx0ZWRfX2ni0bGQ7scAR ihHDGn+YPaEL/GH0RYacWr3Sc7FiyPAEcWPvUGpxwQr6BizRnmzWqv91o3TdxZ3UC5BtUKDSXi3 kEd55M1jos2jhgT0A9FHOrtWd5mVb3wyE5iGPOiDhhq5zDy+iV3fB0UXe/Pf8E+pPdE5zToQwxa LEU+6tEBEfQnIdR5I0+tSjwdHI5LwhWBEW6P6an7zT5ty3fKs46OfPXft9xHdMM99Km8RmX/4Gg 56N0n2x3o0bIGsAtBS6uOPl2EnSWxsBfAQMNwQ52PCtsMxbyyEmnpZ+JSLbzM369eHhMJns7LHK Xv8NGdQQLOWViy6m32jF58mOEpmYako49H7iw04z42raUjUf0yTMnSb0lk5p6Bazv4YkHhXg7to hP/Yxu6DR2Q+EdflxW89PkTm5XzKJbRkW/zrQNAZvyNCrfhT4FsfI5jPJKMWWcAgoW/hPXB/ 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_06,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 priorityscore=1501 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 suspectscore=0 clxscore=1015 mlxscore=0 lowpriorityscore=0 impostorscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240182 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 22:53:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899533 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 DDA8525DB13 for ; Tue, 24 Jun 2025 22:53:39 +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=1750805621; cv=none; b=G0taS7iNRY5IR/zyvjT7/ZTgr4LLVHVMdi6jKGaC9rIh9f+3dhm4ppRwjUKY0pw2z8cS4NqHpwwJMYWyuMPQy3oUwqN0FCiJY+EUhlLrA8p2uGcpoK0BFGdiSMXBiddQsr5CRud8DofNzIPrLZib3df7w/RENRYpGw92coWW2bU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750805621; c=relaxed/simple; bh=10gNgfM3NLul0Lyvp6Astufc/GQTsX03rgRFpk/VXnQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E+AIeMqPGU4Kqf9+U5GNtLQcsRHO4uJm/SLaTVH/akNtk6YsglbenRIUeVk0OGeQOgEif64XyjG5gRFiihE4WYornnZrifyoMkwqT3kQvxpYfvKGj0TxcAbxtS291hJRbMyForQIJfJXfa7qMS0FEmhXsA5sm5Rnann5cKKodLI= 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=CcaqReEB; arc=none smtp.client-ip=205.220.168.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="CcaqReEB" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55OFAgmt008761 for ; Tue, 24 Jun 2025 22:53:39 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= kLyjXarH3NxxVphHpKrSoQJeGy8UWV9LCHE1PIZu+X8=; b=CcaqReEBMOKyP3Y6 X4BNpgQo59ePfMKqCFVaf80eDWB7uXNgkLPOSQfRTjRlCl1E+3XvJrbwJkNblyN/ ru0epCWx/gsetknq+L+08HHKuU4xNS/vOsZZ3qIi1pzgDGpZI3M3OL/95CkTdX6g ku+1JDxpMnDijpBwkkNuTq99ghw9DL1caziDAacFOBYhT7WMkiJ/Q64ndUi2rjJm 3TPcp0qf0wu0w8BBKOFF3PhC8jIMoA7PmG7u17M3ZHicHPfrSIXUzIhs695QzqHf WUZUKKygVPks5DjRcZbxvIcY/NN+pKN1TszvrVv0qJZwcB0PjhtUXKhAG3usXBZs N0mzNA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47emcmqfhh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 22:53:39 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7d09ed509aaso143944685a.3 for ; Tue, 24 Jun 2025 15:53:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750805618; x=1751410418; 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=kLyjXarH3NxxVphHpKrSoQJeGy8UWV9LCHE1PIZu+X8=; b=A06F2x1ZxL21oYoEqxZRsHtLpJh5B2bzEb3aavk1eh1qXnwBcNqnMgxRmNJE/BPL1D f6DGjsHy3bNGN+9yFOvUfTgHWM8G7wh7x+dlla30SinRfS4NP8svutiMjMTshBm9Tr6Q KkhcwpgXhYIDfcRoywZYnqYQgw9nrYqPuGSgV0tC9+s0RG0a0r6uTVG/G0gVCDrtZrnQ YiugI1kGHckHSYnXDSxor/0ZSKMGGjJ5I5Z8ccsnHrOIgv8uZemOLiO9L8tWTXFByN+9 J9/yjzCf4tZUnp7HdsU/2JV+Hza35q2w5zzUKpm1c5zkvPnsfh7YnbMAmednJcN/weAu /e5Q== X-Forwarded-Encrypted: i=1; AJvYcCUjmvuPE/xPd16ek2RjZEp5xpP50B3hiSmR8eAPUoSPyVPSnAyWwH4snCLKNLkgKsuULFXvQQYyZyo=@vger.kernel.org X-Gm-Message-State: AOJu0YxzJ6Oq3wGGfULrH/z/nhymDMN9C+kbizHrkfMOjFUjVBCFyjS0 pk+JVZ6C6DWsJHX1GYCmGDT3Zlm2tyucCcXXuJPJiuMg3V5eXpYi94ZwrnMakUZ8tg1pcJTSjDB hx39ZoI8Bnb8YeKqbDXuHbwN+5+82dqjPXNGYu3q+tVf+FG8I2dFaq8cbE1gwpmk= X-Gm-Gg: ASbGncuQ6+ttwwnmX3CAYnkwF1Qiu85/V0ynwdysIx/92GPQNdjmVizqSI+y7ymcy0U 4ZPRJ7lLFrG92ez95sKupBqgEoPMnvzGnd8JdOQhKDsMBKNY6eua8phn4WylArKK6pe4yHYgRdE fvxXPIHitbM86nXKY6AeIQagYbSY6QCnoj+WZJVNH2pUAZaWm9pBGXOv74KK+YHXNFJv8Q8c0LY cMGoTRHca8UedIdtDL3im8JX0h3BjYm1okG4e0NyJ9uZpW1UTlrtPMR7JMa8Vrq0un3K/zPz+AK 4xoT1LOTPQofHrp4pxvUJKW+Lf7ZnYH0pgbRRM2jAcP6ejX8ymyiNn5Tn+igNK0p7jQvIaEdXJF bh0T+YWZqftPy1xFHIy+tqZb21INfHznJJo8= X-Received: by 2002:a05:620a:8909:b0:7cc:8a39:29df with SMTP id af79cd13be357-7d429682a21mr124613285a.9.1750805617763; Tue, 24 Jun 2025 15:53:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZxK9WPfey371JlMI0Kl4hLep054ivdk3i6Eea6xZKRyLE1cASq3xVBO4HuRkxNhUSWqi4YA== X-Received: by 2002:a05:620a:8909:b0:7cc:8a39:29df with SMTP id af79cd13be357-7d429682a21mr124610385a.9.1750805617356; Tue, 24 Jun 2025 15:53:37 -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 38308e7fff4ca-32b97f5980bsm17843851fa.7.2025.06.24.15.53.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jun 2025 15:53:36 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 25 Jun 2025 01:53:25 +0300 Subject: [PATCH v4 6/8] firmware: qcom: scm: add modparam to control QSEECOM enablement Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250625-more-qseecom-v4-6-aacca9306cee@oss.qualcomm.com> References: <20250625-more-qseecom-v4-0-aacca9306cee@oss.qualcomm.com> In-Reply-To: <20250625-more-qseecom-v4-0-aacca9306cee@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 , Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3296; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=LSGRg6DIU9mZ8qaOnuLygzuTIKAfgHLBLlkkYZmls7Q=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoWyxjCwze5H4PJrYGDKeCZ+ZE1H8HAI/i6tIA4 wCU2yG+GNmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFssYwAKCRCLPIo+Aiko 1dZFB/sE5W+i0dAxLPDzpyGeTG873x/4R3cwGF2Y9j4Z+buQwj7IE9C6VGiwSlirgQ9fVT8OTyQ mll8AB+gUVPIVXEB4I/Bze3t17g5U05usUORTdxcm/jT8VlPTQuW98XPztrdsXrbK+LWrRyb7nc r6dazSY4ndz4wC4Vs4lYXxWCwrBgadm5AyMlXhf7ALTBxBrm7y4yFYm6A/iUFGmKP+p28Xxk3zd OGkjk03eFtn7tEbX7CTMsXu+8lzUvmWd4+HaV52ryVoOd99TfPJ6+V/iizC8OlCk2bCun98jz3H dVoU+UHIb3NxoejIj31WOPylqSpkfIERZYudUT6gnuv5FZ80 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: Js7jkBif3f2G-Kr7G2AgnrzHtIdoJUpO X-Proofpoint-ORIG-GUID: Js7jkBif3f2G-Kr7G2AgnrzHtIdoJUpO X-Authority-Analysis: v=2.4 cv=J+eq7BnS c=1 sm=1 tr=0 ts=685b2c73 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==: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=NFOGd7dJGGMPyQGDc5-O:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDE4MiBTYWx0ZWRfXyeIS1qP6XSxU M8nsqPUtRp5BVo77VqiZVUHzoHRzXIRkdPwSYjfcAsiVOzm9kjrKCKCxSSp3tHFYSFfUHCLE8a5 fXMWmP9OAsqfYuPtmMFjV3+rF0VAB7/YbeeUkc5WZFDDxFefapk7hr2V4M3VBH61iLZVqppAu8L 7cgQt+EIP+gWfqu5UTrG5NWQRZx7yPHI4uUb4UgmWFOjfCPkhH24Xuo00oH3xhgFM9LEii/Nd5o wbcRtxcrH35jIR1r/Dn7pJOpb3EDopHoQMgSLpHhLDirSujA8iP7UqeyACwQM934tZpFM0A46zg QCQW4keeXz16XFHhfkfPHNfTr+0uL5uwGcVW3rWkEm0ZhlfGQfoqwBAmF98Wp6nC0Nhs2BlE7Vq 1XHMDXkILKWlSDx/dLeVHL0Im4cVHBnzeDquZ7tzVrNCuMF45zprlC3slfUq6tSZY+ZIwMNM 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_06,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxlogscore=999 adultscore=0 impostorscore=0 clxscore=1015 spamscore=0 malwarescore=0 phishscore=0 priorityscore=1501 suspectscore=0 mlxscore=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-2506240182 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 Reviewed-by: Konrad Dybcio 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 22:53:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 899532 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 BC21025E815 for ; Tue, 24 Jun 2025 22:53:42 +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=1750805625; cv=none; b=rXgSE1TrpHBjn+yUQZGcITDVDerCHOp4Zg+IPeVB3H6mlxu8aiXrjwAaaGjIHdKBI1E8H/bT4Url07CW2h2fyfF0GHGPItly8G7vBjh2eLjXpuPcE/iuXSJnf40RbSxfdFI4Yyy115VknDBj3526TnTIAls1Zki1K702wwS68oU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750805625; c=relaxed/simple; bh=wwPgZquGtv5ruN02X/fEQJ5qyMWldQS8yZQEL7GHlMM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZPm/xKdmhNIX++3b9KSGbB9Kj9q8M79TbzZxSWvdxDmIxFMvkGeCtObXHnK33NS9qRGLGPYSzKudHzFwnJ5YptfqsjSQncnCTbUfXw+eAdNhF/4ujlNNlVQ9Y9G7uLwnlL6+ou0wM7V4mwcPZOwH3jCtCjWhb3Unxpy/dff3wnE= 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=gEPgoDpG; 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="gEPgoDpG" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55ODg8cV021627 for ; Tue, 24 Jun 2025 22:53:41 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=gEPgoDpGvLojpvmN ferkvyLbtO30MbcEM/UDeq31z2HtlUTqYLcGGFCbiqhn20mvxejazf9F/RL8ngGJ HhOCacnvpHcHC0MvgvMpdt6lwmpqc8sIBZrRB3qkhL28BbRfRpxtmWKuqNCmL7AY Lu0vcVtWZMoDhWtX+lEzqynmYDvJ3I/V6N+iVFdyc/pCEjONTR9+mQzh/1iyn5LH ouk39fIxE1HnWOXD6yxv8IT6FG+bzU9sNYyFtrLQJBflUfES9yTX8DmH9KDkFK5J SZ2fh9a/WactcTF/L8qKm+Nm3bWvLvSMjYizxqsA26vSZWR0ylXKH2pfMNThL8xE uSQFoQ== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47f2rpx32u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 24 Jun 2025 22:53:41 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7c955be751aso122386385a.2 for ; Tue, 24 Jun 2025 15:53:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750805621; x=1751410421; 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=QYLRIeBxigAVo0nHD+YapjkNJ/L8j0mzS/tsdYPyzUQ8tqQaDfjOpiaqOmtTnLa588 37fUvZ8ZLjsU2n7djoNjzqSD5BanTZeqYtsVsQx4GF5QC/3g6L5C88EC6gmH6iYu45sU HjAZ/IMen+8tjuP68rWfXqD6ggny035yzXyPHX1QFYPWLMpFd8mci/6WCSXufO6DC2ra UGboJIN6oCidaQ5yfLw4fc4QZFS9Q2Pey8dIJ6qASGYjpQ9ffz/YPGp0X37SpdMLi9Zh EkkBWbWXVqyL6Tog/0JAIiO7BRDfV8xu7m4p8A0rXQ4bjPAzaPrY4CIC4l/m4z97CDpZ B3ZQ== X-Forwarded-Encrypted: i=1; AJvYcCWdkrx7wg/5LkQ98edaAWofj/vQlGZm5OW+/eAhxAptyDT0Y+jaEN4554PKzgPTYJ4z6uQLHkQX/+o=@vger.kernel.org X-Gm-Message-State: AOJu0YzeLnbYr/3D+kP0CwkZ+ullMteC/rl8F+hhytI4eNN9tkb9okpV YeKchnXIWJ91+xy03liXDneb2uTTz46vb0y5Clyot/vLAsFulFKoRxT+4gKGGJEzWcVacDotrKS juo0VgPCiUOj84oYEZH2mILZExPRgOGLZWbU81ee+PzdNptX2M4sJXRpTbfl0eUE= X-Gm-Gg: ASbGncvEqX65+oYV6HdF2hlAT/iNmXHTBrexH72Aue0W740teFbgELjT3N4fmBd/Fsp bmfaVTPLEg6zSb3q050z1a7amJspRMQTdO7IO5Xe5i95fFR9a1JrQ6UpI2lHtSHkYGUy3mxc+Kr FpR56OZYvwKivXGyIRpAyapUd0b5jDtgdItnOd3s3r+2cr5gEnIhTK6PKL6NV/535JEu6zzAl78 /m5ZHc4dAj61xWCtXl0EWcvrta1/qvAOFoj3HzSDt1/rkkINXSG0wbLhrJOwsPpc4SSYmu1fWqF VKZBQHa9OjNw0OfGGsWvlgFEBoThP7xXc8XrwcjIsiT/2mdYBSY6yvSLY8qlYmLwaYQVX8/cdw5 TFN+u5dnNYhNJI1BVQSobDADMLeFihOdA2mI= X-Received: by 2002:a05:620a:27d6:b0:7cd:4b5b:a202 with SMTP id af79cd13be357-7d429660f2dmr101679285a.20.1750805620737; Tue, 24 Jun 2025 15:53:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9xF1syLAiuEsqu/heJ8lpyFR46117M7xKVjAZCzFveTqDxwrpzUPLXqhhICzq+lLpzCaIFA== X-Received: by 2002:a05:620a:27d6:b0:7cd:4b5b:a202 with SMTP id af79cd13be357-7d429660f2dmr101676185a.20.1750805620360; Tue, 24 Jun 2025 15:53:40 -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 38308e7fff4ca-32b97f5980bsm17843851fa.7.2025.06.24.15.53.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jun 2025 15:53:39 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 25 Jun 2025 01:53:27 +0300 Subject: [PATCH v4 8/8] arm64: dts: qcom: sdm850-lenovo-yoga-c630: fix RTC offset info Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250625-more-qseecom-v4-8-aacca9306cee@oss.qualcomm.com> References: <20250625-more-qseecom-v4-0-aacca9306cee@oss.qualcomm.com> In-Reply-To: <20250625-more-qseecom-v4-0-aacca9306cee@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/pANAwAKAYs8ij4CKSjVAcsmYgBoWyxjU159/FTOyS5BGPqQoUzEdLnGP1il44N/x nc515L+9muJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaFssYwAKCRCLPIo+Aiko 1VmMCACerDOGChKCDcExtpZQRx5lJTaSBwEz4xFhjhGd/BKiRHyF/9eb9hrZB7qJg6JKmZAYtIb 9CHm8W3pJwTyvM+GG6WKaI0CUexK2Ko/4bg0NHIiaSLaLJqmjq96/0zj+zThY5gves/Rqc4L6jT 5LS0eQKJKYv6JfZSByY0HqD8epocnxMQaEaZVzlRViknEzKLVt5Xa9LQLqsGY5FOj/rOA1dqDwg LlZGrH+BpA7VVzXnU3fDiC9KG7BHfVVOPqxDyCPfdD9tEnuyFNFOIS6DAvhNwXgsZdn+gHGtRwp ThQyNVqtrtELFswd9kF9hoKFAMnkdKyEM9xun3P565ZyKOks X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=NdDm13D4 c=1 sm=1 tr=0 ts=685b2c75 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=EUspDBNiAAAA:8 a=lpcYNmPcDvg0ODyLRbEA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjI0MDE4MSBTYWx0ZWRfX8ErAvQ27C+KY vZ9NhThmMrh6o3klc/Ew9urYevT77UEjV0tBODhBf7ZtMOogkev5wqPueCEeMseel5hgvXPQ14b FzuIpd0tIrEPpr8xcEqIgZnDsktw2LwmQq5OtchE+LW/SD3jyWDkEu0i+l2pp/BJHn/ugrnVw/5 Cond38glcLUWFre9cLiF0MHpqKubIoFvxaU9POq/ZGVUAwkKIYkjI2x94lWExJSlfhjFvNerdql J7kh4HekiHvw+S7apiYODXNItDRY/M3dIYfix5GQAy2ZSm3edDo2fiexpEykBz4n9fnpqVc8udG uZfVLs34dv/UoerFGXudXupL7oZHmLb5rrOxM0eAZC0oQj9fVh3SfDGFCZBOlBNU6FLkwFvPu/D TEr8LkR4K2GaKtBWtO8lSx7h4r11tgbhDypGsQln8eO/lAFpl7FRgeG2tcxP+MpgYxFtX4Ai X-Proofpoint-ORIG-GUID: 68Sc8tbD49N4PZbBujKZP1i05XR0UHHZ X-Proofpoint-GUID: 68Sc8tbD49N4PZbBujKZP1i05XR0UHHZ 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_06,2025-06-23_07,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 suspectscore=0 mlxlogscore=982 adultscore=0 clxscore=1015 impostorscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506240181 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;