Oct 19, 2023, 07:21 by heinrich.schuchardt@xxxxxxxxxxxxx: > To which kernel and device-tree are the messages below related? > Sorry. I'm building/testing with v6.5.7 right now, but I have not been able to boot any kernel version >= 6.1. The device tree I used also came from linux v6.5.7. Its source is at arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts. > Something in the structure of your device-tree is invalid. > The device does boot using kernel v5.15 and the device tree compiled from linux v6.5.7. The device tree could still very well be a problem. I just didn't start there because whatever problems the device tree may have don't prevent the device from booting for kernels prior to v6.1. > Please, check the load addresses in U-Boot. Is something overwriting the tail of the device-tree? > I have always loaded the device tree to 0x1000000 (16MiB) and the kernel to 0x2000000 (32MiB) for no particular reason except that's what the manufacturer did. armada-3720-espressobin-ultra.dtb is only 14K. I don't load an initramfs or anything else to memory with u-boot and the address used to load u-boot environment is 0x6000000. > Compiling upstream U-Boot's qemu_arm64_defconfig yields lib/efi_loader/dtbdump.efi. If you run this instead of the kernel, you can write the device-tree as it is passed in a configuration table to the ESP. > I compiled and ran this fine, but I was unable to save the device tree. I suspect this is because the program searches for an ESP, and there is none on the device. U-boot was compiled with support to load directly from an ext4 filesystem so I didn't bother setting one up. I will work on it. I can convert the .dtb on disk back to a human-readable .dts easily with dtc if that is helpful. Thanks! Ben