[U-Boot] [PATCH v3 09/10] vexpress64: juno: add alternate kernel and device tree filenames
Ryan Harkin
ryan.harkin at linaro.org
Fri Oct 2 16:12:50 CEST 2015
Hi Liviu,
On 2 October 2015 at 14:21, Liviu Dudau <liviu at dudau.co.uk> wrote:
> Hi Ryan,
>
> On Thu, Oct 01, 2015 at 06:43:35PM +0100, Ryan Harkin wrote:
> > The default Juno firmware has renamed the kernel and device tree
> > filenames to norkern and board.dtb.
> >
> > Rather than change the default configuration to use the new names,
> > breaking those with the old firmware, attempt to load the existing
> > filename first. If that fails, attempt to load the alternate filename.
>
> How about future proofing this and add a board.scr image in Juno firmware
> where a script can be stored (can the image be used by UEFI as well?).
>
> Now that you are adding support for testing if an image is present we can
> then source the script at boot.scr. That would allow Juno r1 for example
> to have a different boot script than r0 (smc911x ethernet port was designed
> as a backup solution until PCIe was functional, so one might not want to
> use it for booting).
>
> Thoughts?
>
Sounds like a good idea. I'll have a play with it here and see what I can
come up with.
>
> Best regards,
> Liviu
>
> >
> > I've echo'd that we are loading the alternate file to counter the
> > output from "afs load" when the first load attempt fails. For example,
> > I see this output on my Juno board:
> >
> > image "Image" not found in flash
> > Loading norkern instead of Image
> > loaded region 0 from 08500000 to 80000000, 00AB6318 bytes
> > image "juno" not found in flash
> > Loading board.dtb instead of juno
> > loaded region 0 from 0A000000 to 83000000, 00003188 bytes
> >
> > Signed-off-by: Ryan Harkin <ryan.harkin at linaro.org>
> > Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
> > CC: David Feng <fenghua at phytium.com.cn>
> > CC: Bhupesh Sharma <bhupesh.sharma at freescale.com>
> > CC: Linus Walleij <linus.walleij at linaro.org>
> > ---
> > include/configs/vexpress_aemv8a.h | 16 ++++++++++++++--
> > 1 file changed, 14 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/configs/vexpress_aemv8a.h
> b/include/configs/vexpress_aemv8a.h
> > index c62c3ac..192568a 100644
> > --- a/include/configs/vexpress_aemv8a.h
> > +++ b/include/configs/vexpress_aemv8a.h
> > @@ -185,11 +185,13 @@
> > * be copied into DRAM
> > */
> > #define CONFIG_EXTRA_ENV_SETTINGS \
> > - "kernel_name=Image\0" \
> > + "kernel_name=norkern\0" \
> > + "kernel_alt_name=Image\0" \
> > "kernel_addr=0x80000000\0" \
> > "initrd_name=ramdisk.img\0" \
> > "initrd_addr=0x84000000\0" \
> > - "fdt_name=juno\0" \
> > + "fdt_name=board.dtb\0" \
> > + "fdt_alt_name=juno\0" \
> > "fdt_addr=0x83000000\0" \
> > "fdt_high=0xffffffffffffffff\0" \
> > "initrd_high=0xffffffffffffffff\0" \
> > @@ -205,7 +207,17 @@
> >
> > /* Copy the kernel and FDT to DRAM memory and boot */
> > #define CONFIG_BOOTCOMMAND "afs load ${kernel_name} ${kernel_addr} ;
> " \
> > + "if test $? -eq 1; then "\
> > + " echo Loading ${kernel_alt_name} instead
> of "\
> > + "${kernel_name}; "\
> > + " afs load ${kernel_alt_name}
> ${kernel_addr};"\
> > + "fi ; "\
> > "afs load ${fdt_name} ${fdt_addr} ; " \
> > + "if test $? -eq 1; then "\
> > + " echo Loading ${fdt_alt_name} instead of
> "\
> > + "${fdt_name}; "\
> > + " afs load ${fdt_alt_name} ${fdt_addr}; "\
> > + "fi ; "\
> > "fdt addr ${fdt_addr}; fdt resize; " \
> > "if afs load ${initrd_name}
> ${initrd_addr} ; "\
> > "then "\
> > --
> > 2.1.0
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
>
> --
> -------------------
> .oooO
> ( )
> \ ( Oooo.
> \_) ( )
> ) /
> (_/
>
> One small step
> for me ...
>
More information about the U-Boot
mailing list