[PATCH V4 0/9] ARM: bcm2835: Implement initial S2Idle for Raspberry Pi

Stefan Wahren wahrenst at gmx.net
Thu Oct 24 13:21:57 PDT 2024


Am 24.10.24 um 22:18 schrieb Stefan Wahren:
> This series implement the initial S2Idle support for
> the Raspberry Pi, which was a long time on my TODO list [1]. The
> changes allow to suspend and resume the Raspberry Pi via debug UART.
> The focus is on the BCM2835 SoC, because it's less complex than its
> successors and have enough documentation.
>
> Now the VC4 part has been split from the series [4], because of some issues
> in that part.
>
> Cherry-picking of patches should be fine.
>
> Test steps:
> - configure debug console (pl011 or mini UART) as wakeup source
> - send system to idle state
>
>    echo freeze > /sys/power/state
>
> - wakeup system by console traffic
>
> The clock gating must be restored, because otherwise we have a
> regression on Raspberry Pi 3 B+ . Luckily the disabling of clock gating
> isn't necessary anymore. Thanks to the rest of the DWC2 patches which
> based on an idea of Doug Anderson. The USB domain is now powered down
> and the USB devices are still usable after resume. There might be room
> for improvements, but at least the system won't freeze forever as before.
>
> Here are some figures for the Raspberry Pi 1 (without any
> devices connected except of a debug UART):
>
> running but CPU idle = 1.67 W
> S2Idle               = 1.33 W
>
> In comparison with HDMI & USB keyboard connected (but neither active
> nor wakeup source):
>
> running but CPU idle = 1.82 W
> S2Idle               = 1.33 W
>
> The series has been successfully tested on the following platforms:
> Raspberry Pi 1 B
> Raspberry Pi 3 B+
>
> Changes in V4:
> - added Reviewed-by from Doug
> - dropped applied VC4 improvement patches
> - fix DWC2 register backup
> - add revert because of Raspberry Pi 3B+ regression
> - add suspend/resume support for DMA & eMMC to be on the safe side
Sorry, i missed the version in the other patches :-(



More information about the linux-arm-kernel mailing list