On 7/15/24 12:13, Simon Glass wrote:
Add documentation for the pxe bootmeth.

Signed-off-by: Simon Glass <s...@chromium.org>
---

  doc/develop/bootstd/index.rst    |  1 +
  doc/develop/bootstd/overview.rst |  2 +-
  doc/develop/bootstd/pxelinux.rst | 27 +++++++++++++++++++++++++++
  3 files changed, 29 insertions(+), 1 deletion(-)
  create mode 100644 doc/develop/bootstd/pxelinux.rst

diff --git a/doc/develop/bootstd/index.rst b/doc/develop/bootstd/index.rst
index 5bbb3d633a3..5052afe448f 100644
--- a/doc/develop/bootstd/index.rst
+++ b/doc/develop/bootstd/index.rst
@@ -8,3 +8,4 @@ Standard Boot

     overview
     extlinux
+   pxelinux
diff --git a/doc/develop/bootstd/overview.rst b/doc/develop/bootstd/overview.rst
index 086a0b1281d..fd0692daf0d 100644
--- a/doc/develop/bootstd/overview.rst
+++ b/doc/develop/bootstd/overview.rst
@@ -413,7 +413,7 @@ Available bootmeth drivers
  Bootmeth drivers are provided for:

     - :doc:`extlinux / syslinux <extlinux>` boot from a disk
-   - extlinux boot from a network (PXE)
+   - :doc:`extlinux / syslinux <extlinux>` boot from a network (PXE)
     - U-Boot scripts from disk, network or SPI flash
     - EFI boot using bootefi from disk
     - VBE
diff --git a/doc/develop/bootstd/pxelinux.rst b/doc/develop/bootstd/pxelinux.rst
new file mode 100644
index 00000000000..08ba67e09c5
--- /dev/null
+++ b/doc/develop/bootstd/pxelinux.rst
@@ -0,0 +1,27 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+PXE Bootmeth
+============
+
+PXE (Preboot eXecution-Environment) provides a way to boot an Operating System

%s/Operating System/operating system/

+over a network interface. The PXE bootmeth supports PXELINUX and allows U-Boot 
to

%s/bootmeth/boot method/

+provide a menu of possible Operating Systems from which the user can choose.

PXELINUX is a binary. Does U-Boot really provide a menu when the
PXELINUX binary is downloaded and executed?

+
+U-Boot includes a parser for the `extlinux.conf` file described
+`here 
<https://uapi-group.org/specifications/specs/boot_loader_specification>`_.
+It consists primarily of a list of named OSes along with the kernel, initial
+ramdisk and other settings. The file is retrieved from a network server using
+tftpboot.

Does this paragraph relate to PXELINUX?

tftpboot is a command and not a protocol. Shouldn't boot methods work
when the command line interface is disabled? I guess you want to replace

%s/tftpboot/the TFTP protocol/

+
+When invoked on a bootdev, this bootmeth searches for the file and creates a

%s/bootdev/boot device/
%s/bootmeth/boot method/

+bootflow if found. See

%s/bootflow/boot flow/

+`PXELINUX <https://wiki.syslinux.org/wiki/index.php?title=PXELINUX>`_ for
+a full description of the search procedure.
+
+When the bootflow is booted, the bootmeth calls pxe_setup_ctx() to set up the
+context, then pxe_process() to process the file. Depending on the contents, 
this
+may boot an OS or provide a list of options to the user, perhaps with a 
timeout.
+
+The compatible string "u-boot,extlinux-pxe" is used for the driver. The driver
+is automatically instantiated if there are no bootmeth drivers in the
+devicetree.

Device-trees contain compatible strings for drivers, not the drivers
themselves.

If every configured boot method is enabled if there is no compatible
string for boot methods in the device-tree, why don't we mention this in
the overview instead of repeating ourselves?

Please, mention the relevant configuration option.

Best regards

Heinrich

Reply via email to