From: Jared Rossi <jrossi@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 +-