Upgrade uboot-raspberrypi package to 2022.07 but linux kernel fails to boot

Hi All,

I have installed Manjaro Arm Minimal Image using Raspberry Pi Image package on micro sdcard.

I want to upgrade the u-boot package for rpi4 uboot-raspberrypi

First Try

I have built the u-boot package to upgrade to new u-boot (2022.07)
but when I upgrade the package it conflicts with the below packages.

conflicts=(‘linux-rpi4’ ‘linux-rpi4-mainline’ ‘uboot’)

local uboot-raspberrypi package changes

[0] uboot-raspberrypi package - Pastebin.com

sudo pacman -U uboot-raspberrypi-2022.07-1-aarch64.pkg.tar.zst

So I went ahead and upgrade the u-boot package and remove the conflict linux-rpi4 kernel packages dependency.

When I booted it removed the core kernel files from the images
hence the booting of the kernel failed.

Second Try
After I upgrade the u-boot package remove the conflicting package
I tried to install the latest kernel package.

sudo pacman -Syu linux linux-headers

But it failed to boot into the mainline kernel…any inputs on how to resolve this issue

sudo pacman -U uboot-raspberrypi-2022.07-1-aarch64.pkg.tar.zst

Steps to upgrade the uboot-raspberrypi and linux and linux-headers packages.

sudo pacman -Syu linux

Upgrade u-boot and linux kernel packages

[1] u-boot-package_upgrade and linux package - Pastebin.com

Boot log of the console
[2] rpi4 boot log - Pastebin.com

I want to boot with latest stable u-boot and the latest kernel package
Can somebody help me with this issue on how to resolve it?

The reason why uboot-raspberrypi and linux-rpi4 conflict is because they each provide a file thet gets run by the Raspberry Pi’s firmware on boot (eg. the kernel8.img image). So they can’t be installed at the same time.

Using u-boot is not recommended, as far as I know. But I have heard/read of people using uboot and our linux package together. You might need to change the content of /boot/config.txt and /boot/cmdline.txt for that to work though. But I am not sure.

Thanks for your explanation, I will study the issue more.
yes, I was looking into /boot/cmdline.txt option but found the below changes to resolve the issue.

diff --git a/uboot-raspberrypi.install b/uboot-raspberrypi.install
index e6fdb7a..aa7f8ea 100644
--- a/uboot-raspberrypi.install
+++ b/uboot-raspberrypi.install
@@ -10,6 +10,7 @@ post_install() {
   # FDT, just let Uboot to pass the modified fdt to kernel
   echo "LABEL Manjaro ARM
 KERNEL /Image
+FTD    /dtbs/broadcom/bcm2711-rpi-4-b.dtb
 APPEND initrd=/initramfs-linux.img console=ttyAMA0,115200 root=LABEL=ROOT_MNJRO rw rootwait audit=0 usbhid.mousepoll=8" > /boot/extlinux/extlinux.conf
   fi
 }

Thanks

The raspberry pi firmware should load the DTB on it’s own, so you shouldn’t need to specify it…

Yes I feel raspberry pi firmware has its dtb file precompiled and is used to load the RPI image
by parsing the config.txt,
But with u-boot device tree changes are passed to the kernel while booting that is what I feel.

The boot order on the raspberry pi with u-boot are as follows:
MaskROM → RPI firmware → U-boot → Kernel.

So the firmware should still be passing the DTB to the kernel, if you have u-boot or not. But yes, you still need to have the DTB in /boot for that to happen, which is why our u-boot package downloads dtbs from raspberry pi’s github and places them there.

Ok, the Original u-boot package crashed, Can you people update the package?

U-Boot 2021.10-1 (Oct 10 2021 - 17:57:08 +0000) MANJARO-ARM

DRAM:  7.6 GiB
RPI 4 Model B (0xd03114)
MMC:   mmcnr@7e300000: 1, emmc2@7e340000: 0
Loading Environment from FAT... Card did not respond to voltage select! : -110
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@7d580000
PCIe BRCM: link up, 5.0 Gbps x1 (SSC)
starting USB...
Bus usb@7e980000: USB DWC2
Bus xhci_pci: probe failed, error -110
scanning bus usb@7e980000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
Card did not respond to voltage select! : -110
Card did not respond to voltage select! : -110

Device 0: "Synchronous Abort" handler, esr 0x96000004
elr: 00000000000a3f50 lr : 00000000000a3f94 (reloc)
elr: 000000002bc7bf50 lr : 000000002bc7bf94
x0 : ffffffffffffffe1 x1 : 0000000000000001
x2 : 000000002b853d90 x3 : 0000000000000016
x4 : 000000002b853e50 x5 : 01b900001f580005
x6 : 0000000000000016 x7 : 000000002b846cd0
x8 : 000000000000000a x9 : 0000000000000008
x10: 0000000000000000 x11: 00000000ffffffd0
x12: 000000000000000a x13: 000000000001869f
x14: 000000002b847c70 x15: 0000000000000002
x16: 000000002bc68b6c x17: 2080000077fc07fd
x18: 000000002b853d90 x19: 0000000000000004
x20: 0000000000000000 x21: 000000002b846cf8
x22: 0000000000000004 x23: 000000002b846cc8
x24: 000000002bce4824 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 000000002b8f5400 x29: 000000002b846c40

Code: eb01009f 54000061 d2800000 d65f03c0 (f9400401)
Resetting CPU ...

resetting ...