Purpose of 'localboot'

Hi,
The documentation on this feature[1] doesn't quite explain how the system should actually do a localboot. Is this for BIOS / x86 only? There was a recent discussion about this on the U-Boot mailing list[2].
Is someone able to help with how / if this should be implemented in U-Boot?
Regards, Simon
[1] https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX#LOCALBOOT_type [2] https://patchwork.ozlabs.org/project/uboot/patch/20241220040120.3245610-5-sj...

Hi,
The documentation on this feature[1] doesn't quite explain how the system should actually do a localboot. Is this for BIOS / x86 only? There was a recent discussion about this on the U-Boot mailing list[2].
Is someone able to help with how / if this should be implemented in U-Boot?
Regards, Simon
I feel that you actually understand the whole point :-)
Syslinux is a bootloader for the PC's - those have a BIOS and nowadays a Bios Boot Sequence (BBS). And, a specific member of the syslinux family (package) is pxelinux, which loads from the LAN.
The "local" boot means, that while the PC is trying to boot, in a particular step of the BIOS Boot Sequence (= the order of bootable devices) it has loaded PXElinux, and now the user has a choice, either to chainload some "payload" (e.g. the Linux kernel + initrd or some such via TFTP), or to hand over to the next entry in the "BIOS Boot Sequence" - effectively by calling an "iret" at the top-level function called by its respective BBS entry, which is effectively a software interrupt... which will end up trying another boot media, the next one up in the BBS.
Yes this is specific to machines having a BIOS.
Not sure about UEFI, the bootloader loading mechanism is different, but Syslinux never quite got there with UEFI, so I believe this point is moot. I haven't actually tried this with iPXE, there doesn't seem to be an explicit keyword for this. Possibly if you "let the ipxe boot script fall off the end" or by calling an exit... or possibly not. https://www.google.com/search?q=UEFI+exit+ipxe+and+try+the+next+boot+e ntry%3F
Now compare that to uBoot. Who typically has just a single purpose in life, and a single option what to boot: the one kernel and initrd, typically from a NAND flash MTD (or sometimes NOR flash for that matter). You can possibly break normal boot and try loading something via TFTP...
Frank

On Thu, Jan 09, 2025 at 04:30:53PM +0100, Frantisek Rysanek wrote:
Hi,
The documentation on this feature[1] doesn't quite explain how the system should actually do a localboot. Is this for BIOS / x86 only? There was a recent discussion about this on the U-Boot mailing list[2].
Is someone able to help with how / if this should be implemented in U-Boot?
Regards, Simon
I feel that you actually understand the whole point :-)
Syslinux is a bootloader for the PC's - those have a BIOS and nowadays a Bios Boot Sequence (BBS). And, a specific member of the syslinux family (package) is pxelinux, which loads from the LAN.
The "local" boot means, that while the PC is trying to boot, in a particular step of the BIOS Boot Sequence (= the order of bootable devices) it has loaded PXElinux, and now the user has a choice, either to chainload some "payload" (e.g. the Linux kernel + initrd or some such via TFTP), or to hand over to the next entry in the "BIOS Boot Sequence" - effectively by calling an "iret" at the top-level function called by its respective BBS entry, which is effectively a software interrupt... which will end up trying another boot media, the next one up in the BBS.
Yes this is specific to machines having a BIOS.
Not sure about UEFI, the bootloader loading mechanism is different, but Syslinux never quite got there with UEFI, so I believe this point is moot. I haven't actually tried this with iPXE, there doesn't seem to be an explicit keyword for this. Possibly if you "let the ipxe boot script fall off the end" or by calling an exit... or possibly not. https://www.google.com/search?q=UEFI+exit+ipxe+and+try+the+next+boot+e ntry%3F
Now compare that to uBoot. Who typically has just a single purpose in life, and a single option what to boot: the one kernel and initrd, typically from a NAND flash MTD (or sometimes NOR flash for that matter). You can possibly break normal boot and try loading something via TFTP...
So the reason Simon is asking is that the syslinux / pxelinux file format is used outside of just the syslinux project, but it's a little unclear what the authoritative source is (systemd used to have a page, but that moved and then got dropped). We're hoping to find what the real intent of the keyword is, so that https://docs.u-boot.org/en/latest/develop/distro.html#boot-configuration-fil... can say the right thing, rather than the few stackoverflow examples of how people use "localboot" within U-Boot today.
participants (3)
-
Frantisek Rysanek
-
Simon Glass
-
Tom Rini