-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Pi5 failed to contact RP1 firmware #6642
Comments
That's interesting - it looks like a dependency/ordering issue, and not one I've seen before:
I get:
The code for communicating with the firmware exists in the firmware module, so I thought that would enforce an ordering. Some investigation is required. |
Thanks for your reply. |
Yes - in the working case the order is reversed:
|
Seeing that on reboot as well /custom kernel on a Pi5 DUT, trying to get an overlay to work)
|
It's really strange. I can't get it to fail in that way without hacks - even with a massive delay in the firmware driver, the pio driver waits. Anyway, I'm just testing a fix. |
seems quite random. Seen it frequently on reboots (running 'sudo reboot' on CLI) |
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: raspberrypi#6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: raspberrypi#6642 Signed-off-by: Phil Elwell <[email protected]>
is there a way to fix this? I keep getting this error and I can't boot the OS, should I be worried that I will loose data on my raspberry? |
I don't understand why this affecting some people while I can't reproduce it without hacking the driver, but regardless, #6645 should fix the issue. After about 40 minutes you should be able to install a trial kernel with |
And no, you shouldn't worry - it would only affect you if you wanted to use piolib to drive the GPIOs. |
I have no idea if and how below is related but I just wanted to state that I'm not making use of piolib for accessing GPIO's.
|
You should know that WiFi and Bluetooth information and warning messages are unrelated. |
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: raspberrypi#6642 Signed-off-by: Phil Elwell <[email protected]>
It seems after applying BTW, can I safely stay at this firmware and wait for the next stable release offered by apt? Or do I need a |
You should be fine with this kernel until the next proper release - I'm not aware of any new issues. |
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: raspberrypi#6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: raspberrypi#6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
I can confirm the error happens on my PI 5 too:
I am running the latest firmware:
|
A week ago I also started receiving these errors during bootup: rp1-pio 1f00178000.pio: error -ENOENT: failed to contact RP1 firmware At the same time I also started getting protocol errors for the wireless mouse and wireless keyboard Changing to wired devices there are no mouse or keyboard errors but still have the rp1-pio error I have performed the "sudo rpi-update pulls/6645" and no change was observed. |
What does |
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
I'm getting the same error too but maybe a little a different. One installation that I had piolib working on, stopped working last week or so. A fresh OS install on a separate SD card on the same Pi does work consistently though. Not working install:
Working install:
Let me know if there is any other info I can provide that will help. |
The important changes to resolve this failure went into #6645. Although it was merged to 6.6.74, that happened a week after your kernel was built (2025-02-04 vs 2025-01-27). |
One of the reason for failures after update to OS 15.0 was missing support for the kernel PIO driver in EEPROM firmware. Backport upstream patches from raspberrypi/linux#6645 and raspberrypi/linux#6642 that handle this situation more gracefully. These patches could be dropped after the next RPi kernel release. Refs #3943
One of the reason for failures after update to OS 15.0 was missing support for the kernel PIO driver in EEPROM firmware. Backport upstream patches from raspberrypi/linux#6645 and raspberrypi/linux#6642 that handle this situation more gracefully. These patches could be dropped after the next RPi kernel release. Refs #3943
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
The RP1 firmware runs a simple communications channel over some shared memory and a mailbox. This driver provides access to that channel. Signed-off-by: Phil Elwell <[email protected]> firmware: rp1: Simplify rp1_firmware_get Simplify the implementation of rp1_firmware_get, requiring its clients to have a valid 'firmware' property. Also make it return NULL on error. Link: #6593 Signed-off-by: Phil Elwell <[email protected]> firmware: rp1: Linger on firmware failure To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Provide remote access to the PIO hardware in RP1. There is a single instance, with 4 state machines. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Support larger data transfers Add a separate IOCTL for larger transfer with a 32-bit data_bytes field. See: raspberrypi/utils#107 Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: More logical probe sequence Sort the probe function initialisation into a more logical order. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Minor cosmetic tweaks No functional change. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Add in-kernel DMA support Add kernel-facing implementations of pio_sm_config_xfer and pio_xm_xfer_data. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Handle probe errors Ensure that rp1_pio_open fails if the device failed to probe. Link: #6593 Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: SM_CONFIG_XFER32 = larger DMA bufs Add an ioctl type - SM_CONFIG_XFER32 - that takes uints for the buf_size and buf_count values. Signed-off-by: Phil Elwell <[email protected]> misc/rp1-pio: Fix copy/paste error in pio_rp1.h As per the subject, there was a copy/paste error that caused pio_sm_unclaim from a driver to result in a call to pio_sm_claim. Fix it. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Fix parameter checks wihout client Passing bad parameters to an API call without a pio pointer will cause a NULL pointer exception when the persistent error is set. Guard against that. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Convert floats to 24.8 fixed point Floating point arithmetic is not supported in the kernel, so use fixed point instead. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Error out on incompatible firmware If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Demote fw probe error to warning Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
The RP1 firmware runs a simple communications channel over some shared memory and a mailbox. This driver provides access to that channel. Signed-off-by: Phil Elwell <[email protected]> firmware: rp1: Simplify rp1_firmware_get Simplify the implementation of rp1_firmware_get, requiring its clients to have a valid 'firmware' property. Also make it return NULL on error. Link: #6593 Signed-off-by: Phil Elwell <[email protected]> firmware: rp1: Linger on firmware failure To avoid pointless retries, let the probe function succeed if the firmware interface is configured correctly but the firmware is incompatible. The value of the private drvdata field holds the outcome. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Provide remote access to the PIO hardware in RP1. There is a single instance, with 4 state machines. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Support larger data transfers Add a separate IOCTL for larger transfer with a 32-bit data_bytes field. See: raspberrypi/utils#107 Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: More logical probe sequence Sort the probe function initialisation into a more logical order. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Minor cosmetic tweaks No functional change. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Add in-kernel DMA support Add kernel-facing implementations of pio_sm_config_xfer and pio_xm_xfer_data. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Handle probe errors Ensure that rp1_pio_open fails if the device failed to probe. Link: #6593 Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: SM_CONFIG_XFER32 = larger DMA bufs Add an ioctl type - SM_CONFIG_XFER32 - that takes uints for the buf_size and buf_count values. Signed-off-by: Phil Elwell <[email protected]> misc/rp1-pio: Fix copy/paste error in pio_rp1.h As per the subject, there was a copy/paste error that caused pio_sm_unclaim from a driver to result in a call to pio_sm_claim. Fix it. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Fix parameter checks wihout client Passing bad parameters to an API call without a pio pointer will cause a NULL pointer exception when the persistent error is set. Guard against that. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Convert floats to 24.8 fixed point Floating point arithmetic is not supported in the kernel, so use fixed point instead. Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Error out on incompatible firmware If the RP1 firmware has reported an error then return that from the PIO probe function, otherwise defer the probing. Link: #6642 Signed-off-by: Phil Elwell <[email protected]> misc: rp1-pio: Demote fw probe error to warning Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM images. For most users, the fact that the PIO is not available is no cause for alarm. Change the message to a warning, so that it does not appear with "quiet" in cmdline.txt. Link: #6642 Signed-off-by: Phil Elwell <[email protected]>
Describe the bug
dmesg says:
...
rp1-pio 1f00178000.pio: error -ENOENT: failed to contact RP1 firmware [ 3.957885] rp1-pio: probe of 1f00178000.pio failed with error -2
...
Although nothing strange occurred.
The OS still works fine without reboot.
Steps to reproduce the behaviour
It randomly occurs after
sudo reboot --halt
and then manually press the on-board power button to power on (with default eeprom config).It also randomly occurs when use raspi-config to change power off behavior to "full power off" and then reboot/poweroff.(Sorry I cannot remember whether it is reboot or poweroff)Update: It also occurs after a suddenly plug-out the usb-c power cable and then plug-in back.
It seems only poweroff-related behaviors will trigger this bug. I tested 30 times reboot, no bugs occurred.Update2: reboot can indeed also trigger this bug, only less frequent.
Device (s)
Raspberry Pi 5
System
Raspberry Pi reference 2024-11-19 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 891df1e21ed2b6099a2e6a13e26c91dea44b34d4, stage4
2025/01/22 00:16:51
Copyright (c) 2012 Broadcom version a7753063 (release) (embedded)
Linux rpi5 6.6.74+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.74-1+rpt1 (2025-01-27) aarch64 GNU/Linux
Logs
1.txt
Additional context
Can it be safely ignored?
The text was updated successfully, but these errors were encountered: