qemu/pc-bios/s390-ccw
Eric Farman d8e5bbdd0d pc-bios: s390x: Ensure Read IPL memory is clean
If, for example, we boot off a virtio device and chreipl to a vfio-ccw
device, the space at lowcore will be non-zero. We build a Read IPL CCW
at address zero, but it will have leftover PSW data that will conflict
with the Format-0 CCW being generated:

0x0: 00080000 80010000
       ------ Ccw0.cda
              -- Ccw0.chainData
                -- Reserved bits

The data address will be overwritten with the correct value (0x0), but
the apparent data chain bit will cause subsequent memory to be used as
the target of the data store, which may not be where we expect (0x0).

Clear out this space when we boot from DASD, so that we know it exists
exactly as we expect.

Signed-off-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@de.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20201120160117.59366-2-farman@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2020-11-23 09:48:44 +01:00
..
bootmap.c pc-bios: s390x: Use reset PSW if avaliable 2020-10-06 20:14:17 +02:00
bootmap.h pc-bios: s390x: Fix bootmap.c zipl component entry data handling 2020-10-06 19:57:35 +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 pc-bios: s390x: cio.c cleanup and compile fix 2020-07-02 09:59:10 +02:00
cio.h pc-bios: s390x: Get rid of magic offsets into the lowcore 2020-07-02 09:59:51 +02:00
dasd-ipl.c pc-bios: s390x: Ensure Read IPL memory is clean 2020-11-23 09:48:44 +01:00
dasd-ipl.h s390-bios: Support booting from real dasd device 2019-04-12 12:40:35 +02:00
helper.h pc-bios: s390x: Make u32 ptr check explicit 2020-07-02 10:00:42 +02:00
iplb.h pc-bios/s390-ccw: define loadparm length 2018-06-18 15:08:44 +02:00
jump2ipl.c pc-bios: s390x: Use reset PSW if avaliable 2020-10-06 20:14:17 +02: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 s390-bios: Skip writing iplb location to low core for ccw ipl 2020-11-04 12:31:24 +01:00
Makefile pc-bios/s390-ccw/Makefile: Compile with -std=gnu99, -fwrapv and -fno-common 2020-10-06 19:36:50 +02:00
menu.c pc-bios: s390x: Consolidate timing functions into time.h 2020-07-02 09:59:24 +02:00
netboot.mak pc-bios/s390-ccw: Generate and include dependency files in the Makefile 2020-07-02 10:00:58 +02:00
netmain.c pc-bios: s390x: Move panic() into header and add infinite loop 2020-07-02 10:00:42 +02:00
s390-arch.h pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR 2020-07-02 10:00:32 +02:00
s390-ccw.h pc-bios: s390x: Use reset PSW if avaliable 2020-10-06 20:14:17 +02:00
s390-time.h pc-bios: s390x: Consolidate timing functions into time.h 2020-07-02 09:59:24 +02:00
sclp.c pc-bios/s390-ccw: fix sclp_get_loadparm_ascii 2019-11-29 09:16:02 +01:00
sclp.h misc: Replace zero-length arrays with flexible array member (automatic) 2020-03-16 22:07:42 +01:00
scsi.h pc-bios/s390-ccw: Get Block Limits VPD device data 2017-05-19 12:29:01 +02:00
start.S pc-bios: s390x: Go into disabled wait when encountering a PGM exception 2020-10-06 20:14:48 +02:00
virtio-blkdev.c pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk 2020-10-06 19:36:50 +02:00
virtio-net.c pc-bios: s390x: Move sleep and yield to helper.h 2020-07-02 09:59:51 +02:00
virtio-scsi.c pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk 2020-10-06 19:36:50 +02:00
virtio-scsi.h pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk 2020-10-06 19:36:50 +02:00
virtio.c pc-bios: s390x: Consolidate timing functions into time.h 2020-07-02 09:59:24 +02:00
virtio.h pc-bios/s390-ccw: Add virtio-net driver code 2017-07-14 12:29:48 +02:00