The POP states that the IPLB location is only written to 0x14 for list-directed IPL. Some operating systems expect 0x14 to not change on boot and will fail IPL if it does change.
Fixes: 9bfc04f9ef6802fff0 Signed-off-by: Jason J. Herne <jjhe...@linux.ibm.com> Reviewed-by: Janosch Frank <fran...@de.ibm.com> --- pc-bios/s390-ccw/jump2ipl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pc-bios/s390-ccw/jump2ipl.c b/pc-bios/s390-ccw/jump2ipl.c index 767012bf0c..5e3e13f4b0 100644 --- a/pc-bios/s390-ccw/jump2ipl.c +++ b/pc-bios/s390-ccw/jump2ipl.c @@ -33,7 +33,10 @@ void jump_to_IPL_code(uint64_t address) { /* store the subsystem information _after_ the bootmap was loaded */ write_subsystem_identification(); - write_iplb_location(); + + if (iplb.pbt != S390_IPL_TYPE_CCW) { + write_iplb_location(); + } /* prevent unknown IPL types in the guest */ if (iplb.pbt == S390_IPL_TYPE_QEMU_SCSI) { -- 2.21.1