[U-Boot] [PATCH V2] add README.distro file

Dennis Gilmore dennis at ausil.us
Sat Jan 10 19:44:59 CET 2015


On Mon, 05 Jan 2015 12:55:46 -0700
Stephen Warren <swarren at wwwdotorg.org> wrote:

> On 12/28/2014 03:09 AM, Ian Campbell wrote:
> > On Mon, 2014-12-22 at 13:46 -0700, Stephen Warren wrote:
> >> [...]
> >> +
> >> +The U-Boot "syslinux" and "pxe boot" commands require a number of
> >> environment +variables be set. Default values for these variables
> >> are often hard-coded into +CONFIG_EXTRA_ENV_SETTINGS in the
> >> board's U-Boot configuration file, so that +the user doesn't have
> >> to configure them. +
> >> +fdt_addr:
> >> +
> >> +  Optional. If specified a dtb to boot the system must be
> >> available at the
> >> +  given address.
> >> +
> >> +fdt_addr_r:
> >> +
> >> +  Mandatory.
> >
> > Isn't this one only mandatory if ${fdt_addr} is not given?
> 
> Yes. I guess it's mandatory for at least one of fdt_addr or
> fdt_addr_r to be set, according to common/cmd_pxe.c:
fdt_addr_r is actually mandatory unless you do not support device
tree at all, which is not expected at all anymore. The reason being
that the user/distro can override the vendor supplied dtb for whatever
reason, by supplying a fdt/dtb fdtdir/dtbdir entry in extlinux.conf  in
the past at times on calxeda hardware we had to override the dtb to work
with newer kernels until we could update the systems firmware.

> > 	 * fdt usage is optional:
> > 	 * It handles the following scenarios. All scenarios are
> > exclusive *
> > 	 * Scenario 1: If fdt_addr_r specified and "fdt" label is
> > defined in
> > 	 * pxe file, retrieve fdt blob from server. Pass fdt_addr_r
> > to bootm,
> > 	 * and adjust argc appropriately.
> > 	 *
> > 	 * Scenario 2: If there is an fdt_addr specified, pass it
> > along to
> > 	 * bootm, and adjust argc appropriately.
> > 	 *
> > 	 * Scenario 3: fdt blob is not available.
> 
> So, I'll need to reword that a little to make that clear.

going forward Scenario 3 is not a supportable option. board files are
being removed from the kernel and dtb files are needed to boot
machines. at least for Fedora we do not support any systems that do not
support devicetree. so while the code in cmd_pxe.c is written for it to
be optional it is not. having fdt_addr_r does not force the use of a
dtb as it requires the config to specify it, so you could boot a legacy
kernel just fine by omitting the definition in the config file.

Dennis


More information about the U-Boot mailing list