diff options
author | Fan Zhang | 2015-02-12 18:02:14 +0100 |
---|---|---|
committer | Christian Borntraeger | 2015-02-13 16:14:09 +0100 |
commit | df75a4e2c607836eee044d7e6b0d94724d6ebf21 (patch) | |
tree | d17ea032e83adb532c7dbe56a8c2f8f68b3ccef8 /hw/s390x/ipl.h | |
parent | s390x/ipl: always load the bios for ccw machine (diff) | |
download | qemu-df75a4e2c607836eee044d7e6b0d94724d6ebf21.tar.gz qemu-df75a4e2c607836eee044d7e6b0d94724d6ebf21.tar.xz qemu-df75a4e2c607836eee044d7e6b0d94724d6ebf21.zip |
s390x/ipl: support diagnose 308 subcodes 5 and 6
To support dynamically updating the IPL device from inside the KVM
guest on the s390 platform, DIAG 308 instruction is intercepted
in QEMU to handle the request.
Subcode 5 allows to specify a new boot device, which is saved for
later in the s390_ipl device. This also allows to switch from an
external kernel to a boot device.
Subcode 6 retrieves boot device configuration that has been previously
set.
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: Fan Zhang <zhangfan@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'hw/s390x/ipl.h')
-rw-r--r-- | hw/s390x/ipl.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h new file mode 100644 index 0000000000..f1d082ff45 --- /dev/null +++ b/hw/s390x/ipl.h @@ -0,0 +1,24 @@ +/* + * s390 IPL device + * + * Copyright 2015 IBM Corp. + * Author(s): Zhang Fan <bjfanzh@cn.ibm.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or (at + * your option) any later version. See the COPYING file in the top-level + * directory. + */ + +#ifndef HW_S390_IPL_H +#define HW_S390_IPL_H + +typedef struct IplParameterBlock { + uint8_t reserved1[110]; + uint16_t devno; + uint8_t reserved2[88]; +} IplParameterBlock; + +int s390_ipl_update_diag308(IplParameterBlock *iplb); +IplParameterBlock *s390_ipl_get_iplb(void); + +#endif |