Hardware Testing Boot Process
- System network boot ROM starts process and runs DHCP
- If the system boot ROM is not iPXE
- iPXE image is served up via tftp
- iPXE runs DHCP
- If booting the updater
- returned iscsi root is exported updater OS
- Boot proceeds via syslinux
- Else if booting the target system
- returned iscsi root is minimal filesystem with grub
- grub looks for the target boot partition label
- grub reads the syslinux config files from the boot partition, and boots it
So we potentially have the sequence (network boot rom) => iPXE => Grub => target kernel.
I haven't done testing, but UEFI should theoretically have the ability to boot directly from an iSCSI target discovered via DHCP, cutting iPXE out of the picture.
Network boot roms are not a feature on ARM SBCs and uboot doesnt' have iSCSI support, so things would need to proceed a bit differently. uboot would be permanently installed on the target system; it could then load and execute a script from the network - which could then either boot the local system or download an initrd/kernel via tftp. Supporting multiple target partitions might require patching uboot to have the ability to find partition labels. (Or partition numbers could be configured in the controller configuration.)