[U-Boot] Booting non devicetree enabled kernels using u-boot build with CONFIG_OF_LIBFDT ?
Hans de Goede
hdegoede at redhat.com
Thu Nov 13 19:08:59 CET 2014
Hi all,
So as you know I've been working on getting mainline u-boot to boot the
older android derived linux-sunxi kernels, as some people need features
not yet in mainline, and I would like there to be only one u-boot for both.
I had this working a while ago, but recently it broke, this is caused by
config_distro_defaults.h setting CONFIG_OF_LIBFDT, if I undef that
after including config_distro_defaults.h things work again.
I do not know if CONFIG_OF_LIBFDT is a recent addition to config_distro_defaults.h,
or if something else broke things. But if I do not undef it, boot fails with:
sun7i# bootm start 0x48000000
## Booting kernel from Legacy Image at 48000000 ...
Image Name: Linux-3.4.75.sun7i+
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3966672 Bytes = 3.8 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... OK
Could not find a valid device tree
Now this can be fixed by removing CONFIG_OF_LIBFDT when CONFIG_OLD_SUNXI_KERNEL_COMPAT
is set, but that is a somewhat big hammer, making it impossible to have one u-boot
build which can boot both old and new kernels with more or less optimal settings.
One theoretical work around is to just pass in a dummy fdt, but that seems silly.
Another option is to allow:
bootm start 0x48000000 - -
To continue with a devicetree, would a patch for that be acceptable ?
Regards,
Hams
More information about the U-Boot
mailing list