From: Johan Hovold <johan@kernel.org>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Bjorn Andersson <andersson@kernel.org>,
Maximilian Luz <luzmaximilian@gmail.com>,
Konrad Dybcio <konradybcio@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v2 2/4] firmware: qcom: uefisecapp: add support for R/O UEFI vars
Date: Mon, 23 Jun 2025 16:50:27 +0200 [thread overview]
Message-ID: <aFlps9iUcD42vN4w@hovoldconsulting.com> (raw)
In-Reply-To: <aFloifxONXnQbVg6@hovoldconsulting.com>
On Mon, Jun 23, 2025 at 04:45:30PM +0200, Johan Hovold wrote:
> On Sat, Jun 21, 2025 at 10:56:11PM +0300, Dmitry Baryshkov wrote:
> > For some platforms (e.g. Lenovo Yoga C630) we don't yet know a way to
> > update variables in the permanent storage. However being able to read
> > the vars is still useful as it allows us to get e.g. RTC offset.
> >
> > Add a quirk for QSEECOM specifying that UEFI variables for this platform
> > should be registered in read-only mode.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > drivers/firmware/qcom/qcom_qseecom_uefisecapp.c | 18 +++++++++++++++++-
> > include/linux/firmware/qcom/qcom_qseecom.h | 2 ++
> > 2 files changed, 19 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/firmware/qcom/qcom_qseecom_uefisecapp.c b/drivers/firmware/qcom/qcom_qseecom_uefisecapp.c
> > index 98a463e9774bf04f2deb0f7fa1318bd0d2edfa49..05f700dcb8cf3189f640237ff0e045564abb8264 100644
> > --- a/drivers/firmware/qcom/qcom_qseecom_uefisecapp.c
> > +++ b/drivers/firmware/qcom/qcom_qseecom_uefisecapp.c
> > @@ -792,6 +792,12 @@ static efi_status_t qcuefi_query_variable_info(u32 attr, u64 *storage_space, u64
> > return status;
> > }
> >
> > +static const struct efivar_operations qcom_efivars_ro_ops = {
> > + .get_variable = qcuefi_get_variable,
> > + .get_next_variable = qcuefi_get_next_variable,
> > + .query_variable_info = qcuefi_query_variable_info,
> > +};
>
> It looks like the efivars implementation does not support read-only
> efivars and this will lead to NULL pointer dereferences whenever you try
> to write a variable.
Ok, efivarfs seems to support it, but you'd crash when setting a
variable from the kernel (e.g. from the RTC driver).
> Also not sure how useful it is to only be able to read variables,
> including for the RTC where you'll end up with an RTC that's always
> slightly off due to drift (even if you can set it when booting into
> Windows or possibly from the UEFI setup).
>
> Don't you have any SDAM blocks in the PMICs that you can use instead for
> a proper functioning RTC on these machines?
Johan
next prev parent reply other threads:[~2025-06-23 14:50 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-21 19:56 [PATCH v2 0/4] firmware: qcom: enable UEFI variables on Lenovo Yoga C630 Dmitry Baryshkov
2025-06-21 19:56 ` [PATCH v2 1/4] firmware: qcom: scm: allow specifying quirks for QSEECOM implementations Dmitry Baryshkov
2025-06-23 10:33 ` Konrad Dybcio
2025-06-21 19:56 ` [PATCH v2 2/4] firmware: qcom: uefisecapp: add support for R/O UEFI vars Dmitry Baryshkov
2025-06-23 14:45 ` Johan Hovold
2025-06-23 14:49 ` Konrad Dybcio
2025-06-23 14:52 ` Johan Hovold
2025-06-23 14:52 ` Konrad Dybcio
2025-06-23 14:50 ` Johan Hovold [this message]
2025-06-24 1:13 ` Dmitry Baryshkov
2025-06-26 9:42 ` Johan Hovold
2025-06-26 11:15 ` Dmitry Baryshkov
2025-06-26 13:13 ` Johan Hovold
2025-06-26 13:49 ` Konrad Dybcio
2025-06-26 14:07 ` Johan Hovold
2025-06-26 23:09 ` Dmitry Baryshkov
2025-06-27 12:16 ` Johan Hovold
2025-06-21 19:56 ` [PATCH v2 3/4] firmware: qcom: enable QSEECOM on Lenovo Yoga C630 Dmitry Baryshkov
2025-06-23 10:36 ` Konrad Dybcio
2025-06-21 19:56 ` [PATCH v2 4/4] arm64: dts: qcom: sdm850-lenovo-yoga-c630: fix RTC offset info Dmitry Baryshkov
2025-06-23 10:36 ` Konrad Dybcio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aFlps9iUcD42vN4w@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luzmaximilian@gmail.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.