On 7/28/20 8:37 PM, Thomas Huth wrote: > If the user did not specify a "bootindex" property, the s390-ccw bios > tries to find a bootable device on its own. Unfortunately, it alwasy > stops at the very first device that it can find, no matter whether it's > bootable or not. That causes some weird behavior, for example while > > qemu-system-s390x -hda bootable.qcow2 > > boots perfectly fine, the bios refuses to work if you just specify > a virtio-scsi controller in front of it: > > qemu-system-s390x -device virtio-scsi -hda bootable.qcow2 > > Since this is quite uncomfortable and confusing for the users, and > all major firmwares on other architectures correctly boot in such > cases, too, let's also try to teach the s390-ccw bios how to boot > in such cases. > > For this, we have to get rid of the various panic()s and IPL_assert() > statements at the "low-level" function and let the main code handle > the decision instead whether a boot from a device should fail or not, > so that the main code can continue searching in case it wants to.
Are you planning to add a/re-use an existing test for this? The PXE test already helped me quite a lot to find my mistakes for the bios cleanup series. > > Thomas > > Thomas Huth (6): > pc-bios/s390-ccw/Makefile: Compile with -std=gnu99, -fwrapv and > -fno-common > pc-bios/s390-ccw: Move ipl-related code from main() into a separate > function > pc-bios/s390-ccw: Move the inner logic of find_subch() to a separate > function > pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk > pc-bios/s390-ccw: Scan through all boot devices if none has been > specified > pc-bios/s390-ccw: Allow booting in case the first virtio-blk disk is > bad > > pc-bios/s390-ccw/Makefile | 7 +- > pc-bios/s390-ccw/bootmap.c | 34 ++++-- > pc-bios/s390-ccw/main.c | 172 +++++++++++++++++++------------ > pc-bios/s390-ccw/s390-ccw.h | 2 +- > pc-bios/s390-ccw/virtio-blkdev.c | 7 +- > pc-bios/s390-ccw/virtio-scsi.c | 25 +++-- > pc-bios/s390-ccw/virtio-scsi.h | 2 +- > 7 files changed, 157 insertions(+), 92 deletions(-) >
signature.asc
Description: OpenPGP digital signature