Hi, I have until now just used the workaround of copying the "dtb" directory to the efi directory so uboot can find it during boot, but had the last days a reason to revisit this, when I had to re-setup one of the raspberries. I found out I was mistaken in that it did not boot, and the real problem lies in a "regression" for the Server image in the handling of auto configured serial console output. I am using the SBCs headless and configure them over serial console during first boot. It turns out that this console works differently if uboot finds and uses the kernel provided device-tree or if it uses its own built-in device tree (or maybe firmware provided for the rpi?). And uboot + grub only seems to auto-configure output on serial console if it finds the kernel provided device tree and loads it. So with older versions of Fedora Server using ext4 on the boot partition uboot find the kernel provided device tree, loads it, and serial console output "just works". On newer images where boot is XFS uboot uses its builtin (or firmware-provided on raspberry?) and uboot+grub fails to auto-configure serial console output. The two workarounds on raspberry pi are to: 1. "cp -rL /boot/dtb /boot/efi/" or 2. add "console=tty0 console=ttyS0,115200" to the kernel command line in grub The difference in configuration between the two device trees can also be spotted in dmesg after successfully bootup. How to reproduce: 1. Write the Fedora 32 aarch64 "server" image to an sd-card. 2. edit /boot/efi/config.txt and set "enable_uart=1" 3. pop the sd-card into a rpi3, connect a serial console, and connect a monitor 4. boot You will during uboot notice that it fails to find any dtb (as uboot cannot load a file from xfs), and proceeds to boot and show grub. After grub you vill notice that the serial console outputs the following and then nothing more: ``` EFI stub: Booting Linux Kernel... EFI stub: EFI_RNG_PROTOCOL unavailable, no randomness supplied EFI stub: Using DTB from configuration table EFI stub: Exiting boot services and installing virtual address map... ``` The output on the monitor will pause with the same for a second, then continue with printk, and the output from dracut and systemd during the rest of the bootup. On the monitor will start initial-setup during bootup, and after that present login prompt. No login prompt will present itself on the serial console. Run the following after you have logged into the system: ``` # dmesg | grep tty [ 0.001030] printk: console [tty0] enabled [ 4.725695] 3f215040.serial: ttyS0 at MMIO 0x3f215040 (irq = 61, base_baud = 31250000) is a 16550 [ 5.254904] 3f201000.serial: ttyAMA1 at MMIO 0x3f201000 (irq = 66, base_baud = 0) is a PL011 rev2 [ 28.776063] systemd[1]: Created slice system-getty.slice. # copy -rL /boot/dtb /boot/efi/ # systemctl reboot ``` You will now notice that uboot tells you it found a dtb on the vfat-formatted efi partition and loaded it, and you will also see grub and the kernel outputs everything from bootup on both the serial console and on the monitor, and end it with a login prompt on both. ``` # dmesg | grep tty [ 0.000897] printk: console [tty0] enabled [ 4.495976] 3f215040.serial: ttyS1 at MMIO 0x3f215040 (irq = 61, base_baud = 31250000) is a 16550 [ 5.492585] printk: console [ttyS1] enabled [ 6.204865] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 66, base_baud = 0) is a PL011 rev2 [ 6.224175] serial serial0: tty port ttyAMA0 registered [ 31.499803] systemd[1]: Created slice system-getty.slice. [ 31.668768] systemd[1]: Created slice system-serial\x2dgetty.slice. ``` So there is a kind of "regression" in that the serial console output are not any longer auto configured on the Server-image. It is also hard to document as the correct tty to use for serial console is different between images depending on the FS for /boot Best Regards, Peter Hjalmarsson _______________________________________________ arm mailing list -- arm@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to arm-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/arm@xxxxxxxxxxxxxxxxxxxxxxx