On 6/21/24 4:24 AM, Thomas Huth wrote:
We originally built a separate binary for the netboot code since it was considered as experimental and we could not be sure that the necessary SLOF module had been checked out. Time passed, the netboot code proved its usefulness, and the build system nowadays makes sure that the SLOF module is checked out if you have a s390x compiler available for building the s390-ccw bios. In fact, the possibility to build the s390-ccw.img without s390-netboot.img has been removed in commit bf6903f6944f ("pc-bios/s390-ccw: always build network bootloader") already. So it does not make too much sense anymore to keep the netboot code in a separate binary. To make it easier to support a more flexible boot process soon that supports more than one boot device via the bootindex properties, let's finally merge the netboot code into the main s390-ccw.img binary now.
Hi Thomas, One area that could possibly be cleaned up further are places where net devices are treated as corner cases due to the separate bootloader. Off the top of my head I know in pc-bios main.c, the is_dev_possibly_bootable() function rejects net devices for this reason. I'm not sure if that is the only place though. Otherwise it looks good to me. I can work on a v2 of the boot order support that assumes the network bootloader is integrated. Regards, Jared Rossi
Thomas Huth (7): pc-bios/s390-ccw: Remove duplicated LDFLAGS hw/s390x/ipl: Provide more memory to the s390-ccw.img firmware pc-bios/s390-ccw: Use the libc from SLOF for the main s390-ccw.img binary, too pc-bios/s390-ccw: Link the netboot code into the main s390-ccw.img binary hw/s390x: Remove the possibility to load the s390-netboot.img binary pc-bios/s390-ccw: Merge netboot.mak into the main Makefile docs/system/s390x/bootdevices: Update the documentation about network booting docs/system/s390x/bootdevices.rst | 20 +++---- pc-bios/s390-ccw/netboot.mak | 62 --------------------- hw/s390x/ipl.h | 12 ++-- pc-bios/s390-ccw/cio.h | 2 + pc-bios/s390-ccw/iplb.h | 4 +- pc-bios/s390-ccw/libc.h | 89 ------------------------------ pc-bios/s390-ccw/s390-ccw.h | 10 +++- pc-bios/s390-ccw/virtio.h | 1 - hw/s390x/ipl.c | 65 +++------------------- hw/s390x/s390-virtio-ccw.c | 10 +--- pc-bios/s390-ccw/bootmap.c | 4 +- pc-bios/s390-ccw/cio.c | 2 +- pc-bios/s390-ccw/dasd-ipl.c | 2 +- pc-bios/s390-ccw/jump2ipl.c | 2 +- pc-bios/s390-ccw/libc.c | 88 ----------------------------- pc-bios/s390-ccw/main.c | 15 +++-- pc-bios/s390-ccw/menu.c | 25 ++++----- pc-bios/s390-ccw/netmain.c | 15 +---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/virtio-blkdev.c | 1 - pc-bios/s390-ccw/virtio-scsi.c | 2 +- pc-bios/s390-ccw/virtio.c | 2 +- pc-bios/meson.build | 1 - pc-bios/s390-ccw/Makefile | 69 +++++++++++++++++++---- pc-bios/s390-netboot.img | Bin 67232 -> 0 bytes 25 files changed, 122 insertions(+), 383 deletions(-) delete mode 100644 pc-bios/s390-ccw/netboot.mak delete mode 100644 pc-bios/s390-ccw/libc.h delete mode 100644 pc-bios/s390-ccw/libc.c delete mode 100644 pc-bios/s390-netboot.img