Hi Suriyan, On 11/20/2014 04:16 PM, Suriyan Ramasami wrote: > Hello Simon, > This mail is addressed to you as the FDT support was added by > you. I am not sure who else to address it to. > > I find that if CONFIG_OF_LIBFDT is defined then the user is > forced to provide a FDT blob. In most of the cases it makes sense. > However, this removes the ability to boot older linux (non FDT). > For example, I was looking at the Hardkernel Odroid kernels for > the U2/U3, and they are 3.8 based. Of course newer kernels 3.17 work. > For users to use the same boot loader for 3.8 and for 3.17, they > cannot use the mainline uboot.
I've hit the same problem myself recently, see the thread titled: "Booting non devicetree enabled kernels using u-boot build with CONFIG_OF_LIBFDT" > I was wondering if teh third argument to bootz/bootm etc could > also take the route of initrd (optional if - is specified) could be > implemented. > > The fix seems to be trivial (or so I think), in file > common/image-fdt.c, but wanted to know your comments on this. Also the > command help (for bootz etc) states that if the 3rd argument is not > passed, then the bd_info struct is passed, and I do not see it being > passed in the code anywhere. In the absence of the third parameter, it > just gives a "No fdt found" message. Thanks for working on a fix, as discussed in the earlier thread, requiring a third argument which is '-' will break old boot.scr files and the likes, so a better fix is to: 1) Always try to find an ftd (to keep things like appended ftd-s working) 2) If not found see if there is a third argument, if there is, treat this as a fatal error, abort the bootm (iow behave as before) 3) If there is not a third argument warn and continue as before. If you could respin your patch to do this, then that would be great. Regards, Hans > > diff --git a/common/image-fdt.c b/common/image-fdt.c > index a39ae1b..e685700 100644 > --- a/common/image-fdt.c > +++ b/common/image-fdt.c > @@ -243,7 +243,10 @@ int boot_get_fdt(int flag, int argc, char * const > argv[], u > > if (argc > 2) > select = argv[2]; > - if (select || genimg_has_config(images)) { > + if (select && strcmp(select, "-") == 0) { > + debug("## Skipping fdt\n"); > + return 0; > + } else if (select || genimg_has_config(images)) { > #if defined(CONFIG_FIT) > if (select) { > /* > > Regards > - Suriyan > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot