U-Boot 2018.03 Released, Now Supports iSCSI For Network Booting
Phoronix reader and U-Boot contributor working on this feature, Heinrich Schuchardt, wrote in with the following about U-Boot's recently added iSCSI support:
For many hacker boards Ethernet is still the fastest external interface. So wouldn't it be great to attach your storage via network?
Most ARM based boards use U-Boot as primary bootloader. Up to now network booting from U-Boot required running at least a tFTP server for the kernel, the initial RAM disk, and the device tree, and an NFS server. Providing the operating system via two services made updating a hazzle. Furthermore tFTP provides no authentication.
The iSCSI protocol allows to share complete disks or partitions via the network. It is supported by many home servers. With U-Boot v2018.03 booting from iSCSI block storage is now possible.
On x86 systems legacy BIOS booting has been replaced by UEFI. In 2016 basic UEFI support was introduced into U-Boot allowing to load GRUB. For details see here. Since then Linux distributions like SuSE and Fedora have switched to booting 64bit ARM boards this way. Equally NetBSD and FreeBSD use a UEFI bootloader on arm64 boards. Over the last year the UEFI support in U-Boot has been massively improved allowing also other UEFI applications to be run from U-Boot.
Open source iPXE is the swiss army of network booting. Amongst others it allows booting via https and iSCSI. And it can be compiled as a UEFI application snp.efi.
So with current U-Boot and iPXE as UEFI payload your are now are able to install the operating system on a single network drive provided over a single service (iSCSI). For details see here.
There is also the iSCSI README file in U-Boot that was added explaining more about this new functionality.