From: Jared Rossi <jro...@linux.ibm.com> This patch set primarily adds support for the specification of multiple boot devices, allowing for the guest to automatically use an alternative device on a failed boot without needing to be reconfigured. It additionally provides the ability to define the loadparm attribute on a per-device bases, which allows boot devices to use different loadparm values if needed.
In brief, an IPLB is generated for each designated boot device (up to a maximum of 8) and stored in guest memory immediately before BIOS. If a device fails to boot, the next IPLB is retrieved and we jump back to the start of BIOS. Devices can be specified using the standard qemu device tag "bootindex" as with other architectures. Lower number indices are tried first, with "bootindex=0" indicating the first device to try. A subsequent Libvirt patch will be necessary to allow assignment of per-device loadparms in the guest XML Jared Rossi (5): Create include files for s390x IPL definitions Add loadparm to CcwDevice Build IPLB chain for multiple boot devices Add boot device fallback infrastructure Enable and document boot device fallback on panic docs/system/bootindex.rst | 7 +- docs/system/s390x/bootdevices.rst | 9 +- hw/s390x/ccw-device.h | 2 + hw/s390x/ipl.h | 117 +------------------- include/hw/s390x/ipl/qipl.h | 128 ++++++++++++++++++++++ pc-bios/s390-ccw/bootmap.h | 5 + pc-bios/s390-ccw/iplb.h | 108 +++++-------------- pc-bios/s390-ccw/s390-ccw.h | 6 ++ hw/s390x/ccw-device.c | 49 +++++++++ hw/s390x/ipl.c | 170 ++++++++++++++++++++++-------- hw/s390x/s390-virtio-ccw.c | 18 +--- hw/s390x/sclp.c | 3 +- pc-bios/s390-ccw/bootmap.c | 41 ++++--- pc-bios/s390-ccw/main.c | 25 +++-- pc-bios/s390-ccw/netmain.c | 4 + pc-bios/s390-ccw/Makefile | 2 +- 16 files changed, 413 insertions(+), 281 deletions(-) create mode 100644 include/hw/s390x/ipl/qipl.h -- 2.45.1