-
Notifications
You must be signed in to change notification settings - Fork 205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Low power mode actually increases power consumption after sudo halt
!?
#330
Comments
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
The whole point of the gpio-poweroff driver and overlay is to get the ARMs to a point where the power can be safely removed then signal an external agent to do so. If you aren't actually removing the power at that point then you are breaking the contract. |
This comment was marked as abuse.
This comment was marked as abuse.
I've just tried this on a Pi4B 0xc03111 with the latest 2021-03-08 and it worked as expected i.e.
Please can you verify that you see the last two steps, if not, then I suspect the Linux halt sequence did not complete. Bootloader UART traces will also indicate whether the PMIC outputs are being turned off. |
This comment was marked as abuse.
This comment was marked as abuse.
@seamusdemora I think by "breaking the contract" Phil was implying that the expectation is that if you're using gpio-poweroff then you'll be removing the external power to the Pi after GPIO26 goes high, in which case the "high power consumption" shouldn't matter because you've removed the power-supply anyway? 🤷 |
The contract is with the kernel - failure to remove the power in the allowed time (3 seconds, I think) will result in a kernel panic. This usage pattern is erroneous, and the issue should be closed. |
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
The standard Linux gpio-poweroff driver prevents a poweroff reset - this is by design. You are free to enable the hard poweroff in the boot configuration, but it will never be used because the board will only reset to reboot, at which point you don't want it to switch off. |
This comment was marked as abuse.
This comment was marked as abuse.
Here's a preview of the updated gpio-poweroff documentation:
|
This comment was marked as abuse.
This comment was marked as abuse.
@pelwell Is it possible to "remove" or "disable" the effect of the |
No, that's not possible - installing the gpio_poweroff driver disables the usual poweroff handler, but removing it doesn't restore it, leaving the device with no way to power off normally. |
This comment was marked as abuse.
This comment was marked as abuse.
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
This doesn't have to be the case, though. Although gpio-poweroff is a common Linux driver, we are already using a patched version to allow it to be installed on a system that already has a poweroff handler. The updated version proposed in raspberrypi/linux#4309 remembers the original poweroff handler for two reasons:
|
Nice, it sounds like 2. will solve all of Seamus's concerns? (when it eventually filters through to a packaged kernel of course) |
AFAICT from looking at https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_4b_4p0_reduced.pdf the 5V rail from the USB-C power-input is directly connected to the GPIO header, and therefore it's not possible to "turn off" the 5V bus? 🤷 |
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit a102c479c898390bf71200e4e1897f53700e7928 from https://github.com/raspberrypi/linux.git rpi-6.6.y Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the power hasn't been removed when the timeout elapses. See: raspberrypi/rpi-eeprom#330 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
This repository tracks bugs for the Raspberry Pi 4 bootloader EEPROM and Linux update scripts.
Mandatory information
Revision : b03111
Raspbian GNU/Linux 10 (buster)
Describe the bug
A clear and concise description of what the bug is.
WAKE_ON_GPIO=0
,POWER_OFF_ON_HALT=1
sudo halt
, RPi draws 630mA2020-06-15
firmware reduced current from 500mA to 40mATo Reproduce
Steps to reproduce the behavior:
vcgencmd bootloader_config
reports[all]
BOOT_UART=0
WAKE_ON_GPIO=0
POWER_OFF_ON_HALT=1
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
ENABLE_SELF_UPDATE=1
DISABLE_HDMI=0
BOOT_ORDER=0xf41
$ vcgencmd bootloader_version
reports:Sep 3 2020 13:11:43
version c305221a6d7e532693cc7ff57fddfc8649def167 (release)
timestamp 1599135103
update-time 0
capabilities 0x00000000
3, Measure current into RPi
4.
sudo halt
5. Measure current into RPi
Expected behaviour
A clear and concise description of what you expected to happen.
Current consumption after
sudo halt
should have decreased from 500mA to 40mA - as it did w/2020-06-15
firmwareBootloader version and configuration
If you have modified the default bootloader release or configuration then please attach the bootloader configuration vcgencmd bootloader_config and version (vcgencmd bootloader_version)
See above
SD card boot (please complete the following information):
Network boot (please complete the following information):
Network boot bug normally require one or more of the following log types. PiServer is the officially supported network boot server.
N/A - boot from SD card
USB boot (please complete the following information):
Verify that the the USB device works correctly when hot-plugged under Linux and attache the output of 'lsusb -vvv'
Additional context
Add any other context about the problem here.
The Bootloader configuration page describes how to enable UART or NETCONSOLE logs. For complex USB boot issues NETCONSOLE logs are recommended.
The text was updated successfully, but these errors were encountered: