qemu-e2k/pc-bios/s390-ccw
Janosch Frank 9bfc04f9ef pc-bios: s390x: Save iplb location in lowcore
The POP states that for a list directed IPL the IPLB is stored into
memory by the machine loader and its address is stored at offset 0x14
of the lowcore.

ZIPL currently uses the address in offset 0x14 to access the IPLB and
acquire flags about secure boot. If the IPLB address points into
memory which has an unsupported mix of flags set, ZIPL will panic
instead of booting the OS.

As the lowcore can have quite a high entropy for a guest that did drop
out of protected mode (i.e. rebooted) we encountered the ZIPL panic
quite often.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Tested-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Message-Id: <20200304114231.23493-19-frankja@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2020-03-10 10:18:08 +01:00
..
Makefile s390-bios: Support booting from real dasd device 2019-04-12 12:40:35 +02:00
bootmap.c s390-bios: Skip bootmap signature entries 2019-05-08 10:52:14 +02:00
bootmap.h s390-bios: Skip bootmap signature entries 2019-05-08 10:52:14 +02:00
bswap.h pc-bios/s390-ccw: Move byteswap functions to a separate header 2017-07-14 12:29:48 +02:00
cio.c s390-bios: cio error handling 2019-04-12 12:40:35 +02:00
cio.h s390-bios: Add channel command codes/structs needed for dasd-ipl 2019-04-12 12:40:35 +02:00
dasd-ipl.c s390-bios: Support booting from real dasd device 2019-04-12 12:40:35 +02:00
dasd-ipl.h s390-bios: Support booting from real dasd device 2019-04-12 12:40:35 +02:00
helper.h s390-bios: ptr2u32 and u32toptr 2019-04-12 12:40:35 +02:00
iplb.h pc-bios/s390-ccw: define loadparm length 2018-06-18 15:08:44 +02:00
jump2ipl.c pc-bios: s390x: Save iplb location in lowcore 2020-03-10 10:18:08 +01:00
libc.c pc-bios/s390-ccw: Clean up harmless misuse of isdigit() 2019-05-08 10:52:14 +02:00
libc.h s390-bios: cio error handling 2019-04-12 12:40:35 +02:00
main.c pc-bios: s390x: Save iplb location in lowcore 2020-03-10 10:18:08 +01:00
menu.c pc-bios/s390-ccw: Clean up harmless misuse of isdigit() 2019-05-08 10:52:14 +02:00
netboot.mak s390-bios: Decouple channel i/o logic from virtio 2019-04-12 12:40:35 +02:00
netmain.c pc-bios: s390x: Save iplb location in lowcore 2020-03-10 10:18:08 +01:00
s390-arch.h pc-bios: s390x: Save iplb location in lowcore 2020-03-10 10:18:08 +01:00
s390-ccw.h pc-bios: s390x: Save iplb location in lowcore 2020-03-10 10:18:08 +01:00
sclp.c pc-bios/s390-ccw: fix sclp_get_loadparm_ascii 2019-11-29 09:16:02 +01:00
sclp.h pc-bios/s390-ccw: define loadparm length 2018-06-18 15:08:44 +02:00
scsi.h pc-bios/s390-ccw: Get Block Limits VPD device data 2017-05-19 12:29:01 +02:00
start.S s390-bios: Support for running format-0/1 channel programs 2019-04-12 12:40:35 +02:00
virtio-blkdev.c pc-bios/s390-ccw: Move virtio-block related functions into a separate file 2017-07-14 12:29:48 +02:00
virtio-net.c pc-bios/s390-ccw: Add virtio-net driver code 2017-07-14 12:29:48 +02:00
virtio-scsi.c pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting 2017-11-20 10:35:12 +01:00
virtio-scsi.h pc-bios/s390-ccw: Build a reasonable max_sectors limit 2017-05-19 12:29:01 +02:00
virtio.c s390-bios: Use control unit type to determine boot method 2019-04-12 12:40:35 +02:00
virtio.h pc-bios/s390-ccw: Add virtio-net driver code 2017-07-14 12:29:48 +02:00