[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 05/20] s390x/ipl: Provide ipl parameter block
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL 05/20] s390x/ipl: Provide ipl parameter block |
Date: |
Tue, 17 May 2016 16:46:02 +0200 |
From: Alexander Yarygin <address@hidden>
Right now we return the ipl parameter block only if the guest
specified one. Let's fill in the parameter block when bootindex
parameter is available and not booting from an external kernel.
Signed-off-by: Alexander Yarygin <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/s390x/ipl.c | 7 +++++++
hw/s390x/ipl.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 236e2c9..9a73820 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -238,6 +238,12 @@ static uint64_t s390_update_iplstate(S390IPLState *ipl)
ipl->cssid = ccw_dev->sch->cssid;
ipl->ssid = ccw_dev->sch->ssid;
ipl->devno = ccw_dev->sch->devno;
+ ipl->iplb.len = cpu_to_be32(S390_IPLB_MIN_CCW_LEN);
+ ipl->iplb.blk0_len =
+ cpu_to_be32(S390_IPLB_MIN_CCW_LEN - S390_IPLB_HEADER_LEN);
+ ipl->iplb.pbt = S390_IPL_TYPE_CCW;
+ ipl->iplb.ccw.devno = cpu_to_be16(ccw_dev->sch->devno);
+ ipl->iplb_valid = true;
goto out;
}
}
@@ -292,6 +298,7 @@ static void s390_ipl_reset(DeviceState *dev)
if (!ipl->reipl_requested) {
ipl->iplb_valid = false;
+ memset(&ipl->iplb, 0, sizeof(IplParameterBlock));
}
ipl->reipl_requested = false;
}
diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h
index 08f1d5c..0b7f6cbe 100644
--- a/hw/s390x/ipl.h
+++ b/hw/s390x/ipl.h
@@ -102,6 +102,7 @@ typedef struct S390IPLState S390IPLState;
#define S390_IPL_TYPE_FCP 0x00
#define S390_IPL_TYPE_CCW 0x02
+#define S390_IPLB_HEADER_LEN 8
#define S390_IPLB_MIN_CCW_LEN 200
#define S390_IPLB_MIN_FCP_LEN 384
--
2.8.2
- [Qemu-devel] [PULL 00/20] First round of s390x patches for 2.7, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 12/20] s390x/pci: fix reg_irqs(), Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 04/20] s390x/ipl: Add type and length checks for IplParameterBlock values, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 01/20] s390x: add compat machine for 2.7, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 13/20] s390x/pci: separate s390_sclp_configure function, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 14/20] s390x/pci: separate s390_pcihost_iommu_configure function, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 07/20] pc-bios/s390-ccw: Get device address via diag 308/6, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 18/20] s390x/pci: enhance mpcifc_service_call, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 19/20] s390x/pci: add length checking for pci sclp handlers, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 05/20] s390x/ipl: Provide ipl parameter block,
Cornelia Huck <=
- [Qemu-devel] [PULL 20/20] s390x/pci: remove whitespace, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 06/20] s390x/ipl: Add ssid field to IplParameterBlock, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 10/20] hw/char: QOM'ify sclpconsole-lm.c, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 15/20] s390x/pci: export pci_dereg_ioat and pci_dereg_irqs, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 09/20] s390x/ipl: Remove redundant usage of gr7, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 02/20] s390x: enable runtime instrumentation, Cornelia Huck, 2016/05/17
- [Qemu-devel] [PULL 03/20] s390x/ipl: Extend the IplParameterBlock struct, Cornelia Huck, 2016/05/17