-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Pi 4 won't boot with GPIO 1 pulled low (and on my 8GB board, floating). #1422
Comments
GPIOs 0-8 pull high by default, so there should be no floating involved. On BCM2711 we can read back the pull state to confirm:
What output do you get? Pulling GPIO 0 or 1 low is an error condition - the only thing that should be attached to pins 28 and 29 is a HAT EEPROM. We can verify whether the state of GPIO 1 is varying with this Python script (originally by Alex Eames, modded to change the GPIO number):
If you really are seeing a floating GPIO 1 while 2711 is claiming it is pulling high then that points to a failure of the internal pull-up resistor - a problem I have never encountered before and one that suggests a high voltage event in the Pi's past. |
I say 'floating' as in 'I'm not doing anything explicit to pull it up or down' -- nothing connected to the pins, and whatever default the SoC does. Apparently it thinks it's pulling up, but isn't; also 7 and 8, which are adjacent to 1 on the board. There's at least one other user who appears to have this problem: This thread looks remarkably similar. If it was subjected to a high-voltage event, it was before I got near it: it first exhibited this problem after an initial boot and being left running for an hour or so, physically untouched. Either way, shouldn't the |
There's currently an exception - the POE HAT probing ignores At the point the boot stalls, the I2C driver has already detected an error but is waiting for the Transfer Active bit to clear so as not to leave the controller in a strange state - it looks as though something extra is required to cancel the current operation. |
That works nicely, thanks. I'll use that until I can obtain a replacement -- my supplier is claiming they're out of stock there until mid-August, which is irksome. |
If you're feeling bored in the near future and you have the necessary equipment (errm, some resistors) I wouldn't mind finding out what is the largest value pull-up resistor that allows it to boot once you've removed the disable_poe_fan setting. |
I do actually have a range of that terribly expensive and hard to obtain hardware, and some flying leads to test with, but in a very odd development, simply plugging the flying lead in is enough to trigger the thing to boot, in certain regions of the room (eg. at desk level, but not at speaker level; I need to physically touch the insulated wire to get it to boot at that point). A I have no idea. I hate hardware, sometimes. |
We might want to take a look at that board. If you are open to the possibility of us sending out a replacement in exchange for your defective unit, send me an email - [email protected]. |
Running the loop above, I've narrowed the 1-level to somewhere between 6k8 and 8k2, which seems awfully low to me. I don't have anything in between those two values, and I'm not about to try any resistor chaining. |
kernel: drm/vc4: Allow interlaced HDMI modes from FKMS See: raspberrypi/linux#3698 kernel: Isp driver fixes See: raspberrypi/linux#3695 kernel: Add Bluetooth overlays See: raspberrypi/linux#3682 firmware: arm_loader: Allow interlaced HDMI modes from FKMS See: raspberrypi/linux#3698 firmware: arm_loader: Limit rather than reject boosts with disable_auto_turbo firmware: i2c: Clearing the TA bit may time out See: #1422 firmware: arm_loader: Add an accelerated memmove firmware: arm_loader: memmove kernel to preferred text_offset See: #1421 firmware: filesystem: Fix GPT regression on USB after SD fix See: #1420 firmware: bootloader: Some tweaks for LED, UART, USB timeouts
kernel: drm/vc4: Allow interlaced HDMI modes from FKMS See: raspberrypi/linux#3698 kernel: Isp driver fixes See: raspberrypi/linux#3695 kernel: Add Bluetooth overlays See: raspberrypi/linux#3682 firmware: arm_loader: Allow interlaced HDMI modes from FKMS See: raspberrypi/linux#3698 firmware: arm_loader: Limit rather than reject boosts with disable_auto_turbo firmware: i2c: Clearing the TA bit may time out See: raspberrypi/firmware#1422 firmware: arm_loader: Add an accelerated memmove firmware: arm_loader: memmove kernel to preferred text_offset See: raspberrypi/firmware#1421 firmware: filesystem: Fix GPT regression on USB after SD fix See: raspberrypi/firmware#1420 firmware: bootloader: Some tweaks for LED, UART, USB timeouts
Describe the bug
The Raspberry Pi 4 will not boot if GPIO 1 / ID_SC is pulled low. Admittedly, this shouldn't happen, but it semingly is on my 8G Pi 4 when left floating: to get it to reliably boot I need a wire between a 3v3 pin and pin 28. The Pi 2 is unaffected.
To reproduce
Connect a ground pin to pin 28 and reboot. Watch in wonder as your Pi boots as far as the rainbow screen and freezes. If you're network booting, you can see the thing stopping before the DTB is loaded.
Expected behaviour
The Pi boots.
Actual behaviour
The Pi doesn't boot.
System
Pi 4 2G (tied to ground), Pi 4 8G (left floating or tied to ground, on apparently my board only; possibly also user jk123 on the forums, too).
cat /etc/rpi-issue
)?Doesn't get that far.
vcgencmd version
)?Everything that I have tried from when I got it (last Tuesday) until today: da3752a358a86014cdcce5fc3be5b18d7ec074c4 and 31eda665dcc45e61650a2ef018ef2cf94091c46f at least.
uname -a
)?Irrelevant.
Logs
Please see this post for details.
Additional context
As I say, this seems to affect my new 8G Pi 4 when left floating, which has caused me much headscratching over the last week. Obviously, the ID I2C pins should be left clear when unused, so this is a little concerning.
force_eeprom_read=0
has no effect.I can't see any obviously-knocked-off pullup resistor, but it's quite a complicated board these days and I don't know where I should be looking, should such a thing exist.
config.txt:
The text was updated successfully, but these errors were encountered: