Skip to content

Conversation

@pelwell
Copy link
Contributor

@pelwell pelwell commented Jan 15, 2026

Investigating a report of the Pi 5 RTC not correctly advertising the alarm "pending" state - an indication that the alarm has fired and woken the host - appears to show that there are bugs in the Pi 5 RTC implementation, but also that it is broken for all RTCs.

These two patches fix the rtc-pi5 bug (a simple failure to populate the pending field of struct rtc_wkalrm), but also modify the RTC framework such that the value read from the RTCs is made available to users of rtc_read_alaram, including the code that provides the output from /proc/driver/rtc.

See: raspberrypi/firmware#2011

When reading the RTC state at start of day, retrieve the RTC's ALARM
value and use it to populate the pending member of struct rtc_wkalrm.

See: raspberrypi/firmware#2011

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Since [1], the pending alarm state read from the hardware has been
ignored for all RTCs. Add a mechanism so that the value is once again
returned to callers of rtc_read_alarm().

[1] commit 6610e08 ("RTC: Rework RTC code to use timerqueue for
    events")

Fixes: 6610e08 ("RTC: Rework RTC code to use timerqueue for events")
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
@pelwell
Copy link
Contributor Author

pelwell commented Jan 15, 2026

N.B. Fixing the Pi 5 RTC case also requires an updated EEPROM, a trial build of which can be downloaded from here: https://drive.google.com/file/d/1Wsd0pl9WRiN6BRyxsKEn1shA2GZoFQSq/view?usp=sharing

Once downloaded as pieeprom_26015.bin, install it like this:

$ sudo rpi-eeprom-config -o eeprom-config.txt
$ sudo rpi-eeprom-config -c eeprom-config.txt --out pieeprom.bin pieeprom_260116.bin
$ sudo rpi-eeprom-update -f pieeprom.bin

The first two commands extract your current EEPROM config settings and apply them to new EEPROM image, and the third writes it to the EEPROM.

Installing the trial kernel build is easier - just sudo rpi-update pulls/7198, but be sure to read the caveats first: https://github.com/raspberrypi/rpi-update?tab=readme-ov-file#caveats

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant