[PATCH v3 0/8] firmware: qcom: enable UEFI variables on Lenovo Yoga C630
From: Dmitry Baryshkov <hidden>
Date: 2025-06-24 02:14:02
Also in:
linux-arm-msm, linux-efi, lkml
Lenovo Yoga C630 is a WoA / WoS laptop, which uses a "standard" QSEECOM / uefisecapp application in order to implement UEFI variables. However as 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. However even with the current driver it is possible to implement R/O UEFI vars access, which e.g. lets the RTC driver to read RTC offset, providing Linux with a correct time. Signed-off-by: Dmitry Baryshkov <redacted> --- Changes in v3: - Picked up patches from another series, reworking the QSEECOM allowtable - Added a fix for efivar_set_variable() crashing the machine if R/O UEFI vars are provided (Johan) - Link to v2: https://lore.kernel.org/r/20250621-more-qseecom-v2-0-6e8f635640c5@oss.qualcomm.com (local) - Link to the merged series: https://lore.kernel.org/r/20241103-rework-qseecom-v1-0-1d75d4eedc1e@linaro.org/ (local) Changes in v2: - Added QSEECOM quirks in order to make UEFI vars r/o on C630. - Added DT patch, specifying the use of UEFI vars for RTC offset. - Link to v1: https://lore.kernel.org/r/20240725-more-qseecom-v1-1-a55a3553d1fe@linaro.org (local) --- Dmitry Baryshkov (8): efi: efivars: don't crash in efivar_set_variable{,_locked} in r/o case firmware: qcom: scm: allow specifying quirks for QSEECOM implementations firmware: qcom: uefisecapp: add support for R/O UEFI vars firmware: qcom: enable QSEECOM on Lenovo Yoga C630 firmware; qcom: scm: enable QSEECOM on SC8280XP CRD firmware: qcom: scm: add modparam to control QSEECOM enablement firmware: qcom: scm: rework QSEECOM allowlist arm64: dts: qcom: sdm850-lenovo-yoga-c630: fix RTC offset info arch/arm64/boot/dts/qcom/pm8998.dtsi | 2 +- .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 4 + drivers/firmware/efi/vars.c | 2 + drivers/firmware/qcom/qcom_qseecom.c | 6 +- drivers/firmware/qcom/qcom_qseecom_uefisecapp.c | 18 +++- drivers/firmware/qcom/qcom_scm.c | 99 +++++++++++++--------- include/linux/firmware/qcom/qcom_qseecom.h | 3 + 7 files changed, 93 insertions(+), 41 deletions(-) --- base-commit: 5d4809e25903ab8e74034c1f23c787fd26d52934 change-id: 20240725-more-qseecom-379933b9c769 Best regards, -- With best wishes Dmitry