[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/11] pc-bios/s390-ccw: provide a function to inter
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PATCH 07/11] pc-bios/s390-ccw: provide a function to interpret LOADPARM value |
Date: |
Tue, 25 Apr 2017 12:46:29 +0200 |
From: Farhan Ali <address@hidden>
The LOADPARM value is fetched from SCP Read Info, but it's applied
only at the phase of bootmap interpretation. So let's read the LOARPARM
value and store it. Also provide a parsing function to detect numbers in
the LOADPARM which can be used during bootmap interpretation.
Remove a stray whitespace.
Initial patch from Eugene (jno) Dvurechenski.
Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Signed-off-by: Farhan Ali <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
pc-bios/s390-ccw/main.c | 27 ++++++++++++++++++++++++++-
pc-bios/s390-ccw/s390-ccw.h | 1 +
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
index 393d732353..1cacc1b46f 100644
--- a/pc-bios/s390-ccw/main.c
+++ b/pc-bios/s390-ccw/main.c
@@ -14,6 +14,7 @@
char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
static SubChannelId blk_schid = { .one = 1 };
IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE)));
+static char loadparm[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
const unsigned char ebc2asc[256] =
/* 0123456789abcdef0123456789abcdef */
@@ -40,7 +41,6 @@ void write_subsystem_identification(void)
*zeroes = 0;
}
-
void panic(const char *string)
{
sclp_print(string);
@@ -48,6 +48,26 @@ void panic(const char *string)
while (1) { }
}
+unsigned int get_loadparm_index(void)
+{
+ const char *lp = loadparm;
+ int i;
+ unsigned int idx = 0;
+
+ for (i = 0; i < 8; i++) {
+ char c = lp[i];
+
+ if (c < '0' || c > '9') {
+ break;
+ }
+
+ idx *= 10;
+ idx += c - '0';
+ }
+
+ return idx;
+}
+
static bool find_dev(Schib *schib, int dev_no)
{
int i, r;
@@ -84,6 +104,7 @@ static void virtio_setup(void)
int ssid;
bool found = false;
uint16_t dev_no;
+ char ldp[] = "LOADPARM=[________]\n";
VDev *vdev = virtio_get_device();
/*
@@ -93,6 +114,10 @@ static void virtio_setup(void)
*/
enable_mss_facility();
+ sclp_get_loadparm_ascii(loadparm);
+ memcpy(ldp + 10, loadparm, 8);
+ sclp_print(ldp);
+
if (store_iplb(&iplb)) {
switch (iplb.pbt) {
case S390_IPL_TYPE_CCW:
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index 903d2ce816..07d8cbcb20 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -62,6 +62,7 @@ void consume_sclp_int(void);
void panic(const char *string);
void write_subsystem_identification(void);
extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
+unsigned int get_loadparm_index(void);
/* sclp.c */
void sclp_print(const char *string);
--
2.11.0
- [Qemu-devel] [PATCH 00/11] s390x: support for LOADPARM, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 01/11] hw/s390x: provide loadparm property for the machine, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 04/11] util/qemu-config: Add loadparm to qemu machine_opts, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 02/11] hw/s390x/ipl: enable LOADPARM in IPIB for a boot device, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 03/11] hw/s390x/sclp: update LOADPARM in SCP Info, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 05/11] pc-bios/s390-ccw: Make ebcdic/ascii conversion public, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 07/11] pc-bios/s390-ccw: provide a function to interpret LOADPARM value,
Cornelia Huck <=
- [Qemu-devel] [PATCH 06/11] pc-bios/s390-ccw: get LOADPARM stored in SCP Read Info, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 08/11] pc-bios/s390-ccw: provide entry selection on LOADPARM for SCSI disk, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 09/11] pc-bios/s390-ccw: add boot entry selection for ECKD DASD, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 10/11] pc-bios/s390-ccw: add boot entry selection to El Torito routine, Cornelia Huck, 2017/04/25
- [Qemu-devel] [PATCH 11/11] pc-bios/s390-ccw.img: update image, Cornelia Huck, 2017/04/25