Thread (17 messages) 17 messages, 8 authors, 2025-09-14

Re: [RFC PATCH 1/3] efi-rtc: Remove wakeup functionality

From: Ard Biesheuvel <ardb@kernel.org>
Date: 2025-07-14 06:34:21
Also in: linux-efi, linux-riscv, linux-rtc, lkml, loongarch, xen-devel

On Mon, 14 Jul 2025 at 16:22, Demi Marie Obenour [off-list ref] wrote:
On 7/14/25 02:19, Ard Biesheuvel wrote:
quoted
On Mon, 14 Jul 2025 at 16:13, Demi Marie Obenour [off-list ref] wrote:
quoted
On 7/14/25 02:08, Ard Biesheuvel wrote:
quoted
From: Ard Biesheuvel <ardb@kernel.org>

The EFI rtc driver is used by non-x86 architectures only, and exposes
the get/set wakeup time functionality provided by the underlying
platform. This is usually broken on most platforms, and not widely used
to begin with [if at all], so let's just remove it.
systemd uses the underlying functionality: a timer can wake the system up.
I have no idea if that is implemented in terms of this function, though.
To be clear, you are referring to wake from poweroff at some date/time
in the future, right?
Yes.
quoted
This change does not remove this functionality from the RTC subsystem,
it just ceases to expose it on non-x86 EFI platforms that claim to
support it.
Do these platforms generally expose the functionality in a different way?
On x86, the CMOS rtc is manipulated directly (and this is officially
condoned by the EFI spec).

On non-x86, this functionality rarely works, which is really the point
of this series.
If not, systemd should probably document that the functionality is
non-portable if it doesn't do that already.
Not sure what you mean by non-portable. This functionality should be
exposed in a generic manner (using the RTC subsystem interfaces), but
only if it can be relied upon. On x86, the RTC subsystem will use the
rtc-cmos driver, which implements the wakeup routines in terms of port
I/O.

If removing this functionality altogether from the EFI rtc driver is a
problem, perhaps it would be better to implement an allowlist based
solution that does not attempt to access the runtime services by
default.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help