diff options
author | Janosch Frank <frankja@linux.ibm.com> | 2020-03-04 06:42:31 -0500 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2020-03-10 10:18:08 +0100 |
commit | 9bfc04f9ef6802fff0fc77130ff345a541783363 (patch) | |
tree | 9b2f341150b32aa7eaa1fc775974b879e8fb1474 /pc-bios/s390-ccw/jump2ipl.c | |
parent | 373c7068dd610e97f0b551b5a6d0a27cd6da4506 (diff) |
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>
Diffstat (limited to 'pc-bios/s390-ccw/jump2ipl.c')
-rw-r--r-- | pc-bios/s390-ccw/jump2ipl.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/pc-bios/s390-ccw/jump2ipl.c b/pc-bios/s390-ccw/jump2ipl.c index da13c43cc0..4eba2510b0 100644 --- a/pc-bios/s390-ccw/jump2ipl.c +++ b/pc-bios/s390-ccw/jump2ipl.c @@ -35,6 +35,7 @@ void jump_to_IPL_code(uint64_t address) { /* store the subsystem information _after_ the bootmap was loaded */ write_subsystem_identification(); + write_iplb_location(); /* prevent unknown IPL types in the guest */ if (iplb.pbt == S390_IPL_TYPE_QEMU_SCSI) { |