cmd: pxe: add alias devicetree-overlay for fdtoverlays
This adds keyword devicetree-overlay as an alias for fdtoverlays in extlinux (sysboot) and pxe to better follow the Boot Loader Specification [1], improves documentation around them by adding an example for both fdtoverlays and devicetree-overlay and the environment variable required for this feature. The link for the spec is updated to the current one. [1] https://systemd.io/BOOT_LOADER_SPECIFICATION/ Signed-off-by: Edoardo Tomelleri <e.tomell@gmail.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
This commit is contained in:

committed by
Tom Rini

parent
300077cf8c
commit
35821a25c1
@@ -380,6 +380,7 @@ err:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* label_boot_fdtoverlay() - Loads fdt overlays specified in 'fdtoverlays'
|
* label_boot_fdtoverlay() - Loads fdt overlays specified in 'fdtoverlays'
|
||||||
|
* or 'devicetree-overlay'
|
||||||
*
|
*
|
||||||
* @ctx: PXE context
|
* @ctx: PXE context
|
||||||
* @label: Label to process
|
* @label: Label to process
|
||||||
@@ -809,6 +810,7 @@ static const struct token keywords[] = {
|
|||||||
{"devicetreedir", T_FDTDIR},
|
{"devicetreedir", T_FDTDIR},
|
||||||
{"fdtdir", T_FDTDIR},
|
{"fdtdir", T_FDTDIR},
|
||||||
{"fdtoverlays", T_FDTOVERLAYS},
|
{"fdtoverlays", T_FDTOVERLAYS},
|
||||||
|
{"devicetree-overlay", T_FDTOVERLAYS},
|
||||||
{"ontimeout", T_ONTIMEOUT,},
|
{"ontimeout", T_ONTIMEOUT,},
|
||||||
{"ipappend", T_IPAPPEND,},
|
{"ipappend", T_IPAPPEND,},
|
||||||
{"background", T_BACKGROUND,},
|
{"background", T_BACKGROUND,},
|
||||||
|
@@ -163,6 +163,13 @@ fdtoverlays <path> [...] - if this label is chosen, use tftp to retrieve the DT
|
|||||||
and then applied in the load order to the fdt blob stored at the
|
and then applied in the load order to the fdt blob stored at the
|
||||||
address indicated in the fdt_addr_r environment variable.
|
address indicated in the fdt_addr_r environment variable.
|
||||||
|
|
||||||
|
devicetree-overlay <path> [...] - if this label is chosen, use tftp to retrieve the DT
|
||||||
|
overlay(s) at <path>. it will be temporarily stored at the
|
||||||
|
address indicated in the fdtoverlay_addr_r environment variable,
|
||||||
|
and then applied in the load order to the fdt blob stored at the
|
||||||
|
address indicated in the fdt_addr_r environment variable.
|
||||||
|
Alias for fdtoverlays.
|
||||||
|
|
||||||
kaslrseed - set this label to request random number from hwrng as kaslr seed.
|
kaslrseed - set this label to request random number from hwrng as kaslr seed.
|
||||||
|
|
||||||
append <string> - use <string> as the kernel command line when booting this
|
append <string> - use <string> as the kernel command line when booting this
|
||||||
@@ -178,6 +185,11 @@ fdt <path> - if this label is chosen, use tftp to retrieve the fdt blob
|
|||||||
the fdt_addr_r environment variable, and that address will
|
the fdt_addr_r environment variable, and that address will
|
||||||
be passed to bootm.
|
be passed to bootm.
|
||||||
|
|
||||||
|
devicetree <path> - if this label is chosen, use tftp to retrieve the fdt blob
|
||||||
|
at <path>. it will be stored at the address indicated in
|
||||||
|
the fdt_addr_r environment variable, and that address will
|
||||||
|
be passed to bootm. Alias for fdt.
|
||||||
|
|
||||||
fdtdir <path> - if this label is chosen, use tftp to retrieve a fdt blob
|
fdtdir <path> - if this label is chosen, use tftp to retrieve a fdt blob
|
||||||
relative to <path>. If the fdtfile environment variable
|
relative to <path>. If the fdtfile environment variable
|
||||||
is set, <path>/<fdtfile> is retrieved. Otherwise, the
|
is set, <path>/<fdtfile> is retrieved. Otherwise, the
|
||||||
|
@@ -68,10 +68,10 @@ Boot Configuration Files
|
|||||||
|
|
||||||
The standard format for boot configuration files is that of extlinux.conf, as
|
The standard format for boot configuration files is that of extlinux.conf, as
|
||||||
handled by U-Boot's "syslinux" (disk) or "pxe boot" (network). This is roughly
|
handled by U-Boot's "syslinux" (disk) or "pxe boot" (network). This is roughly
|
||||||
as specified at BootLoaderSpec_:
|
as specified at `Boot Loader Specification`_:
|
||||||
|
|
||||||
|
|
||||||
... with the exceptions that the BootLoaderSpec document:
|
... with the exceptions that the Boot Loader Specification document:
|
||||||
|
|
||||||
* Prescribes a separate configuration per boot menu option, whereas U-Boot
|
* Prescribes a separate configuration per boot menu option, whereas U-Boot
|
||||||
lumps all options into a single extlinux.conf file. Hence, U-Boot searches
|
lumps all options into a single extlinux.conf file. Hence, U-Boot searches
|
||||||
@@ -81,6 +81,8 @@ as specified at BootLoaderSpec_:
|
|||||||
* Does not document the fdtdir option, which automatically selects the DTB to
|
* Does not document the fdtdir option, which automatically selects the DTB to
|
||||||
pass to the kernel.
|
pass to the kernel.
|
||||||
|
|
||||||
|
See also doc/README.pxe under 'pxe file format'.
|
||||||
|
|
||||||
One example extlinux.conf generated by the Fedora installer is::
|
One example extlinux.conf generated by the Fedora installer is::
|
||||||
|
|
||||||
# extlinux.conf generated by anaconda
|
# extlinux.conf generated by anaconda
|
||||||
@@ -115,6 +117,25 @@ One example extlinux.conf generated by the Fedora installer is::
|
|||||||
fdtdir /boot/dtb-3.16.0-0.rc6.git1.1.fc22.armv7hl+lpae
|
fdtdir /boot/dtb-3.16.0-0.rc6.git1.1.fc22.armv7hl+lpae
|
||||||
|
|
||||||
|
|
||||||
|
One example of hand-crafted extlinux.conf::
|
||||||
|
|
||||||
|
menu title Select kernel
|
||||||
|
timeout 100
|
||||||
|
|
||||||
|
label Arch with uart devicetree overlay
|
||||||
|
kernel /arch/Image.gz
|
||||||
|
initrd /arch/initramfs-linux.img
|
||||||
|
fdt /dtbs/arch/board.dtb
|
||||||
|
fdtoverlays /dtbs/arch/overlay/uart0-gpio0-1.dtbo
|
||||||
|
append console=ttyS0,115200 console=tty1 rw root=UUID=fc0d0284-ca84-4194-bf8a-4b9da8d66908
|
||||||
|
|
||||||
|
label Arch with uart devicetree overlay but with Boot Loader Specification keys
|
||||||
|
kernel /arch/Image.gz
|
||||||
|
initrd /arch/initramfs-linux.img
|
||||||
|
devicetree /dtbs/arch/board.dtb
|
||||||
|
devicetree-overlay /dtbs/arch/overlay/uart0-gpio0-1.dtbo
|
||||||
|
append console=ttyS0,115200 console=tty1 rw root=UUID=fc0d0284-ca84-4194-bf8a-4b9da8d66908
|
||||||
|
|
||||||
Another hand-crafted network boot configuration file is::
|
Another hand-crafted network boot configuration file is::
|
||||||
|
|
||||||
TIMEOUT 100
|
TIMEOUT 100
|
||||||
@@ -214,6 +235,11 @@ fdt_addr_r:
|
|||||||
|
|
||||||
A size of 1MB for the FDT/DTB seems reasonable.
|
A size of 1MB for the FDT/DTB seems reasonable.
|
||||||
|
|
||||||
|
fdtoverlay_addr_r:
|
||||||
|
Mandatory. The location in RAM where DTB overlays will be temporarily
|
||||||
|
stored and then applied in the load order to the fdt blob stored at the
|
||||||
|
address indicated in the fdt_addr_r environment variable.
|
||||||
|
|
||||||
fdtfile:
|
fdtfile:
|
||||||
Mandatory. the name of the DTB file for the specific board for instance
|
Mandatory. the name of the DTB file for the specific board for instance
|
||||||
the espressobin v5 board the value is "marvell/armada-3720-espressobin.dtb"
|
the espressobin v5 board the value is "marvell/armada-3720-espressobin.dtb"
|
||||||
@@ -408,7 +434,7 @@ way in future u-boot versions. In particular the <device type>_boot
|
|||||||
variables (e.g. mmc_boot, usb_boot) are a strictly internal implementation
|
variables (e.g. mmc_boot, usb_boot) are a strictly internal implementation
|
||||||
detail and must not be used as a public interface.
|
detail and must not be used as a public interface.
|
||||||
|
|
||||||
.. _BootLoaderSpec: http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/
|
.. _`Boot Loader Specification`: https://systemd.io/BOOT_LOADER_SPECIFICATION/
|
||||||
|
|
||||||
.. sectionauthor:: (C) Copyright 2014 Red Hat Inc.
|
.. sectionauthor:: (C) Copyright 2014 Red Hat Inc.
|
||||||
.. sectionauthor:: Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
|
.. sectionauthor:: Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
Reference in New Issue
Block a user