s390-ccw: move auxiliary IPL data to separate location
commit118ee80f7921e8b062c445ac3986ee11409520d0
authorCollin L. Walling <walling@linux.vnet.ibm.com>
Fri, 23 Feb 2018 15:43:11 +0000 (23 10:43 -0500)
committerThomas Huth <thuth@redhat.com>
Mon, 26 Feb 2018 06:56:54 +0000 (26 07:56 +0100)
treeb78a3681d5887b906fc7bc2fff11441bfd1a4711
parentfc0e208774364c2a8013aa028b742a8dde6d2c2b
s390-ccw: move auxiliary IPL data to separate location

The s390-ccw firmware needs some information in support of the
boot process which is not available on the native machine.
Examples are the netboot firmware load address and now the
boot menu parameters.

While storing that data in unused fields of the IPL parameter block
works, that approach could create problems if the parameter block
definition should change in the future. Because then a guest could
overwrite these fields using the set IPLB diagnose.

In fact the data in question is of more global nature and not really
tied to an IPL device, so separating it is rather logical.

This commit introduces a new structure to hold firmware relevant
IPL parameters set by QEMU. The data is stored at location 204 (dec)
and can contain up to 7 32-bit words. This area is available to
programming in the z/Architecture Principles of Operation and
can thus safely be used by the firmware until the IPL has completed.

Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Signed-off-by: Collin L. Walling <walling@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
[thuth: fixed "4 + 8 * n" comment]
Signed-off-by: Thomas Huth <thuth@redhat.com>
hw/s390x/ipl.c
hw/s390x/ipl.h
pc-bios/s390-ccw/iplb.h
pc-bios/s390-ccw/main.c