[PATCH v3 0/8] firmware: qcom: enable UEFI variables on Lenovo Yoga C630

From: Dmitry Baryshkov
Date: Mon Jun 23 2025 - 22:14:18 EST


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 <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
---
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@xxxxxxxxxxxxxxxx
- Link to the merged series: https://lore.kernel.org/r/20241103-rework-qseecom-v1-0-1d75d4eedc1e@xxxxxxxxxx/

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@xxxxxxxxxx

---
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