-
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
RPI Boot problems on RPI3b and RPI3b+ and boot firmware 20220120 (latest stable) #1696
Comments
It's working for me:
and:
|
Many Thanks, fairly vanilla config.. kernel=u-boot.bin [pi2] [pi3] [pi3+] [all] Linux raspberrypi2 5.10.95-v7 #1 SMP Sun Feb 13 12:15:29 UTC 2022 armv7l GNU/Linux tail -1 /proc/cpuinfo root@raspberrypi2:~# ./vcgencmd version dmesg and here is the boot loader debug with uart_2ndstage=1 enabled and this is the SD card layout fdisk -l /dev/mmcblk0 Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type It is a headless machine, so no HDMI connected, just a terminal session on the serial GPIO Pins. Without uart_2ndstage=1 I get one long green LED and then two very brief and faint, then nothing. Not even anything on the serial console. I have not tracked back through all the firmeware releases, to find out which versions first stops the boot. |
We're using the same firmware - I get:
There's nothing obviously suspicious in there. Using your config.txt, and with Can you
|
Phil, Many thanks. Can be found here https://www.dropbox.com/s/hps3x9m0yfncdqc/image?dl=0 It is very strange as the image used for this boot has been used by 3 people, everyone has failed. All of us as soon as we either set the boot debug or downgrade the boot firmware have our device boot. |
I'm not saying there is no problem, but the kernel is definitely entered. If I substitute kernel7.img for u-boot.bin I see the 4 raspberries, and with |
Phil, It is defiantly stumping me, and very strange when uart_2ndstage=1 is enabled boot happens. Any further ideas on where to look? |
I'm going to look at the state of the clocks next. |
The clocks match, and so do the GPIO settings, but what differs is the configuration of UART0. The firmware can drive either UART - UART0/ttyAMA0 or UART1/ttyS0 - but it only initiliases one, and only if uart_enable=1. The 2nd-stage loader (bootcode.bin on an Pi 3) only uses UART0, and if uart_2ndstage=1. In the failing case, both uart_enable and uart_2ndstage are zero, so UART0 is uninitialised when the "kernel" is started. However, if I manually configure it using the debugger, copying the values from a uart_2ndstage=1 run, U-boot springs into life. First the tail-end of a uart-2ndstage=1 run:
Then after removing uart_2ndstage=1, booting, attaching the debugger and poking the UART0 registers:
It seems that U-boot is relying on the UART being initialised. The UART flags register shows that before the manual configuration the TX FIFO is full, which would cause U-boot to stall. I don't understand why this used to work with older firmware, but this is how I would expect the firmware (including the bootloader) to behave. |
Once user replaced miniuart-bt-overlay.dtb with a version from elsewhere named miniuart-bt.dtbo and booting started. I have not yet tested myself. It would seem from your investigation and the input from one of the users, that maybe the miniuart-bt-overlay.dtb is not initialising things correctly. |
It seems to be a file naming issue... I have just cp miniuart-bt-overlay.dtb miniuart-bt.dtbo and the image boots.... maybe something has changed in a boot firmeware at some stage around mapping between entry in config.txt and file name. At least I can look at our openembedded build system and get this working. Many Thanks |
Wow - I didn't even spot the Support for the original "-overlay.dtb" naming (deprecated since 2015) was finally withdrawn in April 2020 when the overlay_map.dtb file was introduced - it simplified the code to do so. |
Great to know route cause and why going back to pre April 2020 worked.. I guess with all my regression of boot firmeware I lost track of which did and didn't work. I have just retested and the 2019 version worked, anything I tried in late 2020 and 2021 failed. Although the "Failed to load overlay 'miniuart-bt'" was in there, two lines later is what looks like a success with the minuart-bt.dtbo being read!! MESS:00:00:02.458540:0: Failed to load overlay 'miniuart-bt' Many thanks for your help and consider this closed. |
Deploying stable firmeware (20220120 ) onto the RPI, it fails to boot.
The RPI gives one long flash of the green LED followed by 2 very short. Nothing further happens.
If I add "uart_2ndstage=1" to config.txt the RPIs then boot.
If I then regress the firmeware to a much earlier version the machine boots. I have tested with 2019-09-24 and also 2021-02-25 and they boot fine.
With a working bootable machine (5.10.95 kernel), copy bootcode.bin, fixup* and start* from 20220120 and machine fails to boot.
Happens on both RPI3b (rev 1.2) and RPI3b+ (rev 1.3)
The text was updated successfully, but these errors were encountered: