On Thu, Nov 13, 2014 at 07:38:50PM +0100, Hans de Goede wrote: > Hi, > > On 11/13/2014 07:34 PM, Tom Rini wrote: > > On Thu, Nov 13, 2014 at 07:08:59PM +0100, Hans de Goede wrote: > >> 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 > > > > My hunch is that we've got more fall-out from Simon's re-org of the > > bootm code ages ago. It should be valid to try and boot a kernel > > without a device tree and other parts of the code base (for example > > arch/arm/lib/bootm.c) still do a FDT-or-ATAGS dance for example. > > That is good news, because ideally upstream u-boot build with > OLD_SUNXI_KERNEL_COMPAT should be able to boot old disk images without > needing them to modify their boot.scr, which requiring bootm 0xfoo - - > would do. > > So maybe check if there is a third argument to bootm, and if there > is not still try the dance for finding one appended in various ways, > and if that fails continue normally (where as with the third > argument present this of course needs to stay an error) ?
So first, I have to take it back. This isn't a behavior change introduced by Simon's re-org (Sorry Simon!). This is a real long standing "feature". I am agreeable to doing whatever the lowest impact change would be to allow a non-DT tree to boot with CONFIG_OF_LIBFDT set. I'm thinking we turn the error into a warning (so that it's still clear to the user that they booted without a DT, for when they didn't mean to do that) and instead of a hang we just don't do the follow-up steps. That should let all the existing scripts work, yes? -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot