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:
Edoardo Tomelleri
2022-09-21 15:26:33 +02:00
committed by Tom Rini
parent 300077cf8c
commit 35821a25c1
3 changed files with 43 additions and 3 deletions

View File

@@ -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,},

View File

@@ -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

View File

@@ -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.