-
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
rpi400 boot regression #1875
Comments
Do you have an issue with latest firmware? See: #1868 (*) I believe technically the issue was in uboot rather than firmware, and was fixed in uboot v2024.04. |
Yes.
The RPi4B works fine with the latest U-Boto, the RPi400 does not.
Possibly, but if I change the firmware from 93d3f79 to 2a1e5bf without changing anything else the rpi400 stops booting. Neither b208f8c (Feb 14th) nor dc94391 (Feb 29th) work either. The RPi4Bs (4Gb rev1.1, 8Gb rev1.4) work with the later Feb 14th+ firmwares, but the rpi400 does not. |
Going to play around with uart_2ndstage=1 from one of the comments on that other bug. |
Just to confirm - are you just using the firmware (start*.elf/fixup*.dat) from that repo and not other files (the pre-built kernel/device trees etc)? |
No, we're also using the DT, U-Boot will load the Linux DT for kernel by default but we're not even getting to U-Boot to do that. |
Can you confirm if updating the firmware (start*.elf/fixup*.dat) or other files (dtbs or anything else) caused the issue? |
So with uart_2ndstage=1, I also tuned on the uart in the eeprom too, using the same card for the original RPi4B I get:
But with the RPi400 it stops when the RPi4B should be starting to display U-Boot output:
I'm not sure why the rpi400 should be any different here, I'm still digging. |
If I swap in the DT from 7273369 and leave everything the same it boots |
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
I think this was caused by a reorganisation of the downstream Pi 400 DTB as a modification to the upstream version, a change which lost the override of the stdout-path property, which is different to upstream because of the way UARTs are numbered in the downstream tree. There's a PR (raspberrypi/linux#6054) with a patch, but you can download a modified bcm2711-rpi-400.dtb now from the link: https://drive.google.com/file/d/1SVWO3kjNBc_alqLwRlyeq4LNR93-MzFM/view?usp=sharing |
Confirmed that fixes it for me. Thanks for the update. |
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Thanks. The PR is now merged, so closing. |
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
commit b0ec72e3651aeffca2e31849e6f8d264f933270e from https://github.com/raspberrypi/linux.git rpi-6.6.y The upstream Pi DTS files select serial1 for stdout-path, but because of the way the downstream kernel numbers UARTS, serial0 is required in the downstream DTS. Using the wrong value breaks U-boot. In the 6.6 kernel the downstream Pi 400 DTS was made closer to upstream, inheriting most of its content from the Pi 4B DTS, but because of the order of inclusion it lost the override for stdout-path. Restore that override. See: raspberrypi/firmware#1875 Signed-off-by: Phil Elwell <phil@raspberrypi.com> Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
When booting the RPi 400 on Fedora with U-Boot we're seeing a regression with commit 2a1e5bf (the bump to 6.6 kernel). The regression is very early as I don't see any U-Boot output on serial console. The issue is still there with the last time the firmware was updated with commit dc94391 (Feb 29th). Not seeing the issue with RPi4B (4Gb rev1.1, 8Gb rev1.4).
The text was updated successfully, but these errors were encountered: