qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for-2.1 0/3] s390x: two bugfixes
@ 2014-07-07 13:55 Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 1/3] pc-bios/s390-ccw: store proper subsystem information word Cornelia Huck
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Cornelia Huck @ 2014-07-07 13:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

Here are two s390x patches (+ a binary update) for 2.1:

We neglected to store some vital information which may be used by the
guest (but fortunately wasn't missed up to now): The subsystem id
may be used to determine the boot device, and the channel-program
address is useful for determining channel program execution. Most
importantly, setting these fields is mandated by the architecture.

Will send a pull request tomorrow, unless there are objections.

Christian Borntraeger (1):
  pc-bios/s390-ccw: store proper subsystem information word

Cornelia Huck (2):
  pc-bios/s390-ccw: update binary
  s390x/css: reflect cpa in scsw

 hw/s390x/css.c              |    9 +++++++++
 pc-bios/s390-ccw.img        |  Bin 17624 -> 17752 bytes
 pc-bios/s390-ccw/bootmap.c  |    2 ++
 pc-bios/s390-ccw/main.c     |   17 ++++++++++++++++-
 pc-bios/s390-ccw/s390-ccw.h |    1 +
 5 files changed, 28 insertions(+), 1 deletion(-)

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH for-2.1 1/3] pc-bios/s390-ccw: store proper subsystem information word
  2014-07-07 13:55 [Qemu-devel] [PATCH for-2.1 0/3] s390x: two bugfixes Cornelia Huck
@ 2014-07-07 13:55 ` Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 2/3] pc-bios/s390-ccw: update binary Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 3/3] s390x/css: reflect cpa in scsw Cornelia Huck
  2 siblings, 0 replies; 4+ messages in thread
From: Cornelia Huck @ 2014-07-07 13:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

From: Christian Borntraeger <borntraeger@de.ibm.com>

POP chapter 17 requires to store a subsystem information word at 184
during IPL. Furthermore bytes 188-191 should be zero. The bootmap might
contain data blocks that are written to the first page. We have to
write these values after we processed the bootmap and before the final
IPL.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 pc-bios/s390-ccw/bootmap.c  |    2 ++
 pc-bios/s390-ccw/main.c     |   17 ++++++++++++++++-
 pc-bios/s390-ccw/s390-ccw.h |    1 +
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
index fa54abb..f175679 100644
--- a/pc-bios/s390-ccw/bootmap.c
+++ b/pc-bios/s390-ccw/bootmap.c
@@ -51,6 +51,8 @@ static void jump_to_IPL_2(void)
 
 static void jump_to_IPL_code(uint64_t address)
 {
+    /* store the subsystem information _after_ the bootmap was loaded */
+    write_subsystem_identification();
     /*
      * The IPL PSW is at address 0. We also must not overwrite the
      * content of non-BIOS memory after we loaded the guest, so we
diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
index dbfb40e..f9ec215 100644
--- a/pc-bios/s390-ccw/main.c
+++ b/pc-bios/s390-ccw/main.c
@@ -13,6 +13,22 @@
 
 char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
 uint64_t boot_value;
+struct subchannel_id blk_schid = { .one = 1 };
+
+/*
+ * Priniciples of Operations (SA22-7832-09) chapter 17 requires that
+ * a subsystem-identification is at 184-187 and bytes 188-191 are zero
+ * after list-directed-IPL and ccw-IPL.
+ */
+void write_subsystem_identification(void)
+{
+    struct subchannel_id *schid = (struct subchannel_id *) 184;
+    uint32_t *zeroes = (uint32_t *) 188;
+
+    *schid = blk_schid;
+    *zeroes = 0;
+}
+
 
 void virtio_panic(const char *string)
 {
@@ -23,7 +39,6 @@ void virtio_panic(const char *string)
 
 static void virtio_setup(uint64_t dev_info)
 {
-    struct subchannel_id blk_schid = { .one = 1 };
     struct schib schib;
     int i;
     int r;
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index 959aed0..2b773de 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -50,6 +50,7 @@ void disabled_wait(void);
 
 /* main.c */
 void virtio_panic(const char *string);
+void write_subsystem_identification(void);
 
 /* sclp-ascii.c */
 void sclp_print(const char *string);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH for-2.1 2/3] pc-bios/s390-ccw: update binary
  2014-07-07 13:55 [Qemu-devel] [PATCH for-2.1 0/3] s390x: two bugfixes Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 1/3] pc-bios/s390-ccw: store proper subsystem information word Cornelia Huck
@ 2014-07-07 13:55 ` Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 3/3] s390x/css: reflect cpa in scsw Cornelia Huck
  2 siblings, 0 replies; 4+ messages in thread
From: Cornelia Huck @ 2014-07-07 13:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 pc-bios/s390-ccw.img |  Bin 17624 -> 17752 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index 603e19e003d574b24bb3b97bacda2bf38077e8fd..e3ea0d5664f01ff472d3531980941fb5f163ff02 100644
GIT binary patch
delta 5380
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

delta 5386
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

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH for-2.1 3/3] s390x/css: reflect cpa in scsw
  2014-07-07 13:55 [Qemu-devel] [PATCH for-2.1 0/3] s390x: two bugfixes Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 1/3] pc-bios/s390-ccw: store proper subsystem information word Cornelia Huck
  2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 2/3] pc-bios/s390-ccw: update binary Cornelia Huck
@ 2014-07-07 13:55 ` Cornelia Huck
  2 siblings, 0 replies; 4+ messages in thread
From: Cornelia Huck @ 2014-07-07 13:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Cornelia Huck, borntraeger, jfrei, agraf

We neglected to update the the channel-program-address field of the scsw
after completion of the start or the halt function: Fortunately, Linux
didn't miss it so far. Let's update it for the cases where the cpa is
expected to be valid; in some cases, the cpa is 'unpredictable', so we
leave it untouched.

Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 hw/s390x/css.c |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index e758890..49c2aaf 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -200,6 +200,7 @@ static void sch_handle_halt_func(SubchDev *sch)
 
     PMCW *p = &sch->curr_status.pmcw;
     SCSW *s = &sch->curr_status.scsw;
+    hwaddr curr_ccw = sch->channel_prog;
     int path;
 
     /* Path management: In our simple css, we always choose the only path. */
@@ -216,6 +217,10 @@ static void sch_handle_halt_func(SubchDev *sch)
           (s->ctrl & SCSW_ACTL_SUSP))) {
         s->dstat = SCSW_DSTAT_DEVICE_END;
     }
+    if ((s->ctrl & (SCSW_ACTL_SUBCH_ACTIVE | SCSW_ACTL_DEVICE_ACTIVE)) ||
+        (s->ctrl & SCSW_ACTL_SUSP)) {
+        s->cpa = curr_ccw + 8;
+    }
     s->cstat = 0;
     p->lpum = path;
 
@@ -398,6 +403,7 @@ static void sch_handle_start_func(SubchDev *sch, ORB *orb)
             s->ctrl |= SCSW_STCTL_PRIMARY | SCSW_STCTL_SECONDARY |
                     SCSW_STCTL_STATUS_PEND;
             s->dstat = SCSW_DSTAT_CHANNEL_END | SCSW_DSTAT_DEVICE_END;
+            s->cpa = sch->channel_prog + 8;
             break;
         case -ENOSYS:
             /* unsupported command, generate unit check (command reject) */
@@ -408,6 +414,7 @@ static void sch_handle_start_func(SubchDev *sch, ORB *orb)
             s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
             s->ctrl |= SCSW_STCTL_PRIMARY | SCSW_STCTL_SECONDARY |
                     SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
+            s->cpa = sch->channel_prog + 8;
             break;
         case -EFAULT:
             /* memory problem, generate channel data check */
@@ -416,6 +423,7 @@ static void sch_handle_start_func(SubchDev *sch, ORB *orb)
             s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
             s->ctrl |= SCSW_STCTL_PRIMARY | SCSW_STCTL_SECONDARY |
                     SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
+            s->cpa = sch->channel_prog + 8;
             break;
         case -EBUSY:
             /* subchannel busy, generate deferred cc 1 */
@@ -436,6 +444,7 @@ static void sch_handle_start_func(SubchDev *sch, ORB *orb)
             s->ctrl &= ~SCSW_CTRL_MASK_STCTL;
             s->ctrl |= SCSW_STCTL_PRIMARY | SCSW_STCTL_SECONDARY |
                     SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND;
+            s->cpa = sch->channel_prog + 8;
             break;
         }
     } while (ret == -EAGAIN);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-07-07 13:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-07 13:55 [Qemu-devel] [PATCH for-2.1 0/3] s390x: two bugfixes Cornelia Huck
2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 1/3] pc-bios/s390-ccw: store proper subsystem information word Cornelia Huck
2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 2/3] pc-bios/s390-ccw: update binary Cornelia Huck
2014-07-07 13:55 ` [Qemu-devel] [PATCH for-2.1 3/3] s390x/css: reflect cpa in scsw Cornelia Huck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).