All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master
@ 2018-05-02 14:33 Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 01/10] pc-bios/s390-ccw: size_t should be unsigned Thomas Huth
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

This PULL request is not for master.


 Hi Cornelia,

the following changes since commit 052888f043bacb18231046045b1f9cd946703170:

  hw/s390x: Allow to configure the consoles with the "-serial" parameter (2018-04-30 10:48:29 +0200)

are available in the git repository at:

  https://github.com/huth/qemu.git tags/s390x-2018-05-02

for you to fetch changes up to 312185cf35b5d8454a84c337ef9aadade877fb88:

  pc-bios/s390: Update firmware images (2018-05-02 15:42:57 +0200)

----------------------------------------------------------------
s390-ccw firmware updates:
- Improvements to the boot menu (can now handle non-sequential entries)
- s390-netboot now resets the machine before jumping into the OS kernel
- s390-netboot now supports indirect loading via .INS files
- some other minor fixes and clean-ups
----------------------------------------------------------------

Collin Walling (4):
      pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES
      pc-bios/s390-ccw: fix loadparm initialization and int conversion
      pc-bios/s390-ccw: fix non-sequential boot entries (eckd)
      pc-bios/s390-ccw: fix non-sequential boot entries (enum)

Cornelia Huck (1):
      s390-ccw: force diag 308 subcode to unsigned long

Thomas Huth (5):
      pc-bios/s390-ccw: size_t should be unsigned
      pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts
      pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS
      pc-bios/s390-ccw/net: Add support for .INS config files
      pc-bios/s390: Update firmware images

 hw/s390x/ipl.c               |   4 ++
 pc-bios/s390-ccw.img         | Bin 30520 -> 34568 bytes
 pc-bios/s390-ccw/Makefile    |   4 +-
 pc-bios/s390-ccw/bootmap.c   |  79 +++-----------------
 pc-bios/s390-ccw/bootmap.h   |   6 --
 pc-bios/s390-ccw/iplb.h      |   3 +-
 pc-bios/s390-ccw/jump2ipl.c  |  91 +++++++++++++++++++++++
 pc-bios/s390-ccw/libc.c      |   2 +-
 pc-bios/s390-ccw/libc.h      |   2 +-
 pc-bios/s390-ccw/main.c      |  14 ++--
 pc-bios/s390-ccw/menu.c      |  58 ++++++++++-----
 pc-bios/s390-ccw/netboot.mak |   3 +-
 pc-bios/s390-ccw/netmain.c   | 168 +++++++++++++++++++++++++++++++++++--------
 pc-bios/s390-ccw/s390-ccw.h  |   8 ++-
 pc-bios/s390-netboot.img     | Bin 83856 -> 87872 bytes
 15 files changed, 307 insertions(+), 135 deletions(-)
 create mode 100644 pc-bios/s390-ccw/jump2ipl.c

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 01/10] pc-bios/s390-ccw: size_t should be unsigned
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 02/10] pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES Thomas Huth
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

"size_t" should be an unsigned type according to the C standard.
Thus we should also use this convention in the s390-ccw firmware to avoid
confusion. I checked the sources, and apart from one spot in libc.c, the
code should all be fine with this change.

Buglink: https://bugs.launchpad.net/qemu/+bug/1753437
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/libc.c | 2 +-
 pc-bios/s390-ccw/libc.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pc-bios/s390-ccw/libc.c b/pc-bios/s390-ccw/libc.c
index 38ea77d..a786566 100644
--- a/pc-bios/s390-ccw/libc.c
+++ b/pc-bios/s390-ccw/libc.c
@@ -63,7 +63,7 @@ uint64_t atoui(const char *str)
  */
 char *uitoa(uint64_t num, char *str, size_t len)
 {
-    size_t num_idx = 1; /* account for NUL */
+    long num_idx = 1; /* account for NUL */
     uint64_t tmp = num;
 
     IPL_assert(str != NULL, "uitoa: no space allocated to store string");
diff --git a/pc-bios/s390-ccw/libc.h b/pc-bios/s390-ccw/libc.h
index 63ece70..818517f 100644
--- a/pc-bios/s390-ccw/libc.h
+++ b/pc-bios/s390-ccw/libc.h
@@ -12,7 +12,7 @@
 #ifndef S390_CCW_LIBC_H
 #define S390_CCW_LIBC_H
 
-typedef long               size_t;
+typedef unsigned long      size_t;
 typedef int                bool;
 typedef unsigned char      uint8_t;
 typedef unsigned short     uint16_t;
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 02/10] pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 01/10] pc-bios/s390-ccw: size_t should be unsigned Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 03/10] pc-bios/s390-ccw: fix loadparm initialization and int conversion Thomas Huth
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

From: Collin Walling <walling@linux.ibm.com>

The MAX_TABLE_ENTRIES constant has a name that is too generic. As we
want to declare a limit for boot menu entries, let's rename it to a more
fitting MAX_BOOT_ENTRIES and set its value to 31 (30 boot entries and
1 default entry). Also we move it from bootmap.h to s390-ccw.h to make
it available for menu.c in a later patch.

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/bootmap.c  | 6 +++---
 pc-bios/s390-ccw/bootmap.h  | 2 --
 pc-bios/s390-ccw/s390-ccw.h | 2 ++
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
index 9287b7a..b767fa2 100644
--- a/pc-bios/s390-ccw/bootmap.c
+++ b/pc-bios/s390-ccw/bootmap.c
@@ -297,7 +297,7 @@ static void run_eckd_boot_script(block_number_t bmt_block_nr,
     }
 
     debug_print_int("loadparm", loadparm);
-    IPL_assert(loadparm <= MAX_TABLE_ENTRIES, "loadparm value greater than"
+    IPL_assert(loadparm < MAX_BOOT_ENTRIES, "loadparm value greater than"
                " maximum number of boot entries allowed");
 
     memset(sec, FREE_SPACE_FILLER, sizeof(sec));
@@ -585,7 +585,7 @@ static void ipl_scsi(void)
     read_block(mbr->pt.blockno, sec, "Error reading Program Table");
     IPL_assert(magic_match(sec, ZIPL_MAGIC), "No zIPL magic in PT");
 
-    while (program_table_entries <= MAX_TABLE_ENTRIES) {
+    while (program_table_entries < MAX_BOOT_ENTRIES) {
         if (!prog_table->entry[program_table_entries].scsi.blockno) {
             break;
         }
@@ -600,7 +600,7 @@ static void ipl_scsi(void)
     }
 
     debug_print_int("loadparm", loadparm);
-    IPL_assert(loadparm <= MAX_TABLE_ENTRIES, "loadparm value greater than"
+    IPL_assert(loadparm < MAX_BOOT_ENTRIES, "loadparm value greater than"
                " maximum number of boot entries allowed");
 
     zipl_run(&prog_table->entry[loadparm].scsi); /* no return */
diff --git a/pc-bios/s390-ccw/bootmap.h b/pc-bios/s390-ccw/bootmap.h
index 07eb600..732c111 100644
--- a/pc-bios/s390-ccw/bootmap.h
+++ b/pc-bios/s390-ccw/bootmap.h
@@ -57,8 +57,6 @@ typedef union BootMapPointer {
     ExtEckdBlockPtr xeckd;
 } __attribute__ ((packed)) BootMapPointer;
 
-#define MAX_TABLE_ENTRIES  30
-
 /* aka Program Table */
 typedef struct BootMapTable {
     uint8_t magic[4];
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index fd18da2..2c9e601 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -94,6 +94,8 @@ bool menu_is_enabled_zipl(void);
 int menu_get_enum_boot_index(int entries);
 bool menu_is_enabled_enum(void);
 
+#define MAX_BOOT_ENTRIES  31
+
 static inline void fill_hex(char *out, unsigned char val)
 {
     const char hex[] = "0123456789abcdef";
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 03/10] pc-bios/s390-ccw: fix loadparm initialization and int conversion
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 01/10] pc-bios/s390-ccw: size_t should be unsigned Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 02/10] pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 04/10] pc-bios/s390-ccw: fix non-sequential boot entries (eckd) Thomas Huth
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

From: Collin Walling <walling@linux.ibm.com>

Rename the loadparm char array in main.c to loadparm_str and
increased the size by one byte to account for a null termination
when converting the loadparm string to an int  via atoui. We
also allow the boot menu to be enabled when loadparm is set to
an empty string or a series of spaces.

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reported-by: Vasily Gorbik <gor@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/s390x/ipl.c          |  4 ++++
 pc-bios/s390-ccw/main.c | 14 +++++++-------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index fb554ab..150f6c0 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -373,6 +373,10 @@ int s390_ipl_set_loadparm(uint8_t *loadparm)
             loadparm[i] = ascii2ebcdic[(uint8_t) lp[i]];
         }
 
+        if (i < 8) {
+            memset(loadparm + i, 0x40, 8 - i); /* fill with EBCDIC spaces */
+        }
+
         g_free(lp);
         return 0;
     }
diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
index 9d9f8cf..26f9adf 100644
--- a/pc-bios/s390-ccw/main.c
+++ b/pc-bios/s390-ccw/main.c
@@ -15,11 +15,11 @@
 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 };
+static char loadparm_str[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 QemuIplParameters qipl;
 
 #define LOADPARM_PROMPT "PROMPT  "
-#define LOADPARM_EMPTY  "........"
+#define LOADPARM_EMPTY  "        "
 #define BOOT_MENU_FLAG_MASK (QIPL_FLAG_BM_OPTS_CMD | QIPL_FLAG_BM_OPTS_ZIPL)
 
 /*
@@ -45,7 +45,7 @@ void panic(const char *string)
 
 unsigned int get_loadparm_index(void)
 {
-    return atoui(loadparm);
+    return atoui(loadparm_str);
 }
 
 static bool find_dev(Schib *schib, int dev_no)
@@ -80,13 +80,13 @@ static bool find_dev(Schib *schib, int dev_no)
 
 static void menu_setup(void)
 {
-    if (memcmp(loadparm, LOADPARM_PROMPT, 8) == 0) {
+    if (memcmp(loadparm_str, LOADPARM_PROMPT, 8) == 0) {
         menu_set_parms(QIPL_FLAG_BM_OPTS_CMD, 0);
         return;
     }
 
     /* If loadparm was set to any other value, then do not enable menu */
-    if (memcmp(loadparm, LOADPARM_EMPTY, 8) != 0) {
+    if (memcmp(loadparm_str, LOADPARM_EMPTY, 8) != 0) {
         return;
     }
 
@@ -116,8 +116,8 @@ static void virtio_setup(void)
      */
     enable_mss_facility();
 
-    sclp_get_loadparm_ascii(loadparm);
-    memcpy(ldp + 10, loadparm, 8);
+    sclp_get_loadparm_ascii(loadparm_str);
+    memcpy(ldp + 10, loadparm_str, 8);
     sclp_print(ldp);
 
     memcpy(&qipl, early_qipl, sizeof(QemuIplParameters));
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 04/10] pc-bios/s390-ccw: fix non-sequential boot entries (eckd)
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (2 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 03/10] pc-bios/s390-ccw: fix loadparm initialization and int conversion Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 05/10] pc-bios/s390-ccw: fix non-sequential boot entries (enum) Thomas Huth
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

From: Collin Walling <walling@linux.ibm.com>

zIPL boot menu entries can be non-sequential. Let's account
for this issue for the s390 zIPL boot menu. Since this boot
menu is actually an imitation and is not completely capable
of everything the real zIPL menu can do, let's also print a
different banner to the user.

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reported-by: Vasily Gorbik <gor@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/menu.c | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/pc-bios/s390-ccw/menu.c b/pc-bios/s390-ccw/menu.c
index 96eec81..aaf5d61 100644
--- a/pc-bios/s390-ccw/menu.c
+++ b/pc-bios/s390-ccw/menu.c
@@ -158,7 +158,7 @@ static void boot_menu_prompt(bool retry)
     }
 }
 
-static int get_boot_index(int entries)
+static int get_boot_index(bool *valid_entries)
 {
     int boot_index;
     bool retry = false;
@@ -168,7 +168,8 @@ static int get_boot_index(int entries)
         boot_menu_prompt(retry);
         boot_index = get_index();
         retry = true;
-    } while (boot_index < 0 || boot_index >= entries);
+    } while (boot_index < 0 || boot_index >= MAX_BOOT_ENTRIES ||
+             !valid_entries[boot_index]);
 
     sclp_print("\nBooting entry #");
     sclp_print(uitoa(boot_index, tmp, sizeof(tmp)));
@@ -176,7 +177,8 @@ static int get_boot_index(int entries)
     return boot_index;
 }
 
-static void zipl_println(const char *data, size_t len)
+/* Returns the entry number that was printed */
+static int zipl_print_entry(const char *data, size_t len)
 {
     char buf[len + 2];
 
@@ -185,12 +187,15 @@ static void zipl_println(const char *data, size_t len)
     buf[len + 1] = '\0';
 
     sclp_print(buf);
+
+    return buf[0] == ' ' ? atoui(buf + 1) : atoui(buf);
 }
 
 int menu_get_zipl_boot_index(const char *menu_data)
 {
     size_t len;
-    int entries;
+    int entry;
+    bool valid_entries[MAX_BOOT_ENTRIES] = {false};
     uint16_t zipl_flag = *(uint16_t *)(menu_data - ZIPL_FLAG_OFFSET);
     uint16_t zipl_timeout = *(uint16_t *)(menu_data - ZIPL_TIMEOUT_OFFSET);
 
@@ -202,19 +207,25 @@ int menu_get_zipl_boot_index(const char *menu_data)
         timeout = zipl_timeout * 1000;
     }
 
-    /* Print and count all menu items, including the banner */
-    for (entries = 0; *menu_data; entries++) {
+    /* Print banner */
+    sclp_print("s390-ccw zIPL Boot Menu\n\n");
+    menu_data += strlen(menu_data) + 1;
+
+    /* Print entries */
+    while (*menu_data) {
         len = strlen(menu_data);
-        zipl_println(menu_data, len);
+        entry = zipl_print_entry(menu_data, len);
         menu_data += len + 1;
 
-        if (entries < 2) {
+        valid_entries[entry] = true;
+
+        if (entry == 0) {
             sclp_print("\n");
         }
     }
 
     sclp_print("\n");
-    return get_boot_index(entries - 1); /* subtract 1 to exclude banner */
+    return get_boot_index(valid_entries);
 }
 
 
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 05/10] pc-bios/s390-ccw: fix non-sequential boot entries (enum)
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (3 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 04/10] pc-bios/s390-ccw: fix non-sequential boot entries (eckd) Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 06/10] pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts Thomas Huth
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

From: Collin Walling <walling@linux.ibm.com>

zIPL boot menu entries can be non-sequential. Let's account
for this issue for the s390 enumerated boot menu. Since we
can no longer print a range of available entries to the
user, we have to present a list of each available entry.

An example of this menu:

  s390-ccw Enumerated Boot Menu.

   [0] default

   [1]
   [2]
   [7]
   [8]
   [9]
  [11]
  [12]

  Please choose:

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reported-by: Vasily Gorbik <gor@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/bootmap.c  | 12 +++++++-----
 pc-bios/s390-ccw/menu.c     | 29 ++++++++++++++++++++---------
 pc-bios/s390-ccw/s390-ccw.h |  2 +-
 3 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
index b767fa2..e41e715 100644
--- a/pc-bios/s390-ccw/bootmap.c
+++ b/pc-bios/s390-ccw/bootmap.c
@@ -565,6 +565,8 @@ static void ipl_scsi(void)
     int program_table_entries = 0;
     BootMapTable *prog_table = (void *)sec;
     unsigned int loadparm = get_loadparm_index();
+    bool valid_entries[MAX_BOOT_ENTRIES] = {false};
+    size_t i;
 
     /* Grab the MBR */
     memset(sec, FREE_SPACE_FILLER, sizeof(sec));
@@ -585,18 +587,18 @@ static void ipl_scsi(void)
     read_block(mbr->pt.blockno, sec, "Error reading Program Table");
     IPL_assert(magic_match(sec, ZIPL_MAGIC), "No zIPL magic in PT");
 
-    while (program_table_entries < MAX_BOOT_ENTRIES) {
-        if (!prog_table->entry[program_table_entries].scsi.blockno) {
-            break;
+    for (i = 0; i < MAX_BOOT_ENTRIES; i++) {
+        if (prog_table->entry[i].scsi.blockno) {
+            valid_entries[i] = true;
+            program_table_entries++;
         }
-        program_table_entries++;
     }
 
     debug_print_int("program table entries", program_table_entries);
     IPL_assert(program_table_entries != 0, "Empty Program Table");
 
     if (menu_is_enabled_enum()) {
-        loadparm = menu_get_enum_boot_index(program_table_entries);
+        loadparm = menu_get_enum_boot_index(valid_entries);
     }
 
     debug_print_int("loadparm", loadparm);
diff --git a/pc-bios/s390-ccw/menu.c b/pc-bios/s390-ccw/menu.c
index aaf5d61..82a4ae6 100644
--- a/pc-bios/s390-ccw/menu.c
+++ b/pc-bios/s390-ccw/menu.c
@@ -228,19 +228,30 @@ int menu_get_zipl_boot_index(const char *menu_data)
     return get_boot_index(valid_entries);
 }
 
-
-int menu_get_enum_boot_index(int entries)
+int menu_get_enum_boot_index(bool *valid_entries)
 {
-    char tmp[4];
+    char tmp[3];
+    int i;
 
-    sclp_print("s390x Enumerated Boot Menu.\n\n");
+    sclp_print("s390-ccw Enumerated Boot Menu.\n\n");
 
-    sclp_print(uitoa(entries, tmp, sizeof(tmp)));
-    sclp_print(" entries detected. Select from boot index 0 to ");
-    sclp_print(uitoa(entries - 1, tmp, sizeof(tmp)));
-    sclp_print(".\n\n");
+    for (i = 0; i < MAX_BOOT_ENTRIES; i++) {
+        if (valid_entries[i]) {
+            if (i < 10) {
+                sclp_print(" ");
+            }
+            sclp_print("[");
+            sclp_print(uitoa(i, tmp, sizeof(tmp)));
+            sclp_print("]");
+            if (i == 0) {
+                sclp_print(" default\n");
+            }
+            sclp_print("\n");
+        }
+    }
 
-    return get_boot_index(entries);
+    sclp_print("\n");
+    return get_boot_index(valid_entries);
 }
 
 void menu_set_parms(uint8_t boot_menu_flag, uint32_t boot_menu_timeout)
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index 2c9e601..a1bdb4c 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -91,7 +91,7 @@ void zipl_load(void);
 void menu_set_parms(uint8_t boot_menu_flag, uint32_t boot_menu_timeout);
 int menu_get_zipl_boot_index(const char *menu_data);
 bool menu_is_enabled_zipl(void);
-int menu_get_enum_boot_index(int entries);
+int menu_get_enum_boot_index(bool *valid_entries);
 bool menu_is_enabled_enum(void);
 
 #define MAX_BOOT_ENTRIES  31
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 06/10] pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (4 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 05/10] pc-bios/s390-ccw: fix non-sequential boot entries (enum) Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 07/10] pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS Thomas Huth
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

When we want to support pxelinux-style network booting later, we've got
to do several TFTP transfers - and we do not want to apply for a new IP
address via DHCP each time. So split up net_load into three parts:

1. net_init(), which initializes virtio-net, gets an IP address via DHCP
   and prints out the related information.

2. The tftp_load call is now moved directly into the main() function

3. A new net_release() function which should tear down the network stack
   before we are done in the firmware.

This will make it easier to extend the code in the next patches.

Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/netmain.c | 63 +++++++++++++++++++++++++++-------------------
 1 file changed, 37 insertions(+), 26 deletions(-)

diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c
index d86d46b..8fa9e6c 100644
--- a/pc-bios/s390-ccw/netmain.c
+++ b/pc-bios/s390-ccw/netmain.c
@@ -128,13 +128,13 @@ static void seed_rng(uint8_t mac[])
     srand(seed);
 }
 
-static int tftp_load(filename_ip_t *fnip, void *buffer, int len,
-                     unsigned int retries, int ip_vers)
+static int tftp_load(filename_ip_t *fnip, void *buffer, int len)
 {
     tftp_err_t tftp_err;
     int rc;
 
-    rc = tftp(fnip, buffer, len, retries, &tftp_err, 1, 1428, ip_vers);
+    rc = tftp(fnip, buffer, len, DEFAULT_TFTP_RETRIES, &tftp_err, 1, 1428,
+              ip_version);
 
     if (rc > 0) {
         printf("  TFTP: Received %s (%d KBytes)\n", fnip->filename,
@@ -199,20 +199,19 @@ static int tftp_load(filename_ip_t *fnip, void *buffer, int len,
     return rc;
 }
 
-static int net_load(char *buffer, int len)
+static int net_init(filename_ip_t *fn_ip)
 {
-    filename_ip_t fn_ip;
     uint8_t mac[6];
     int rc;
 
-    memset(&fn_ip, 0, sizeof(filename_ip_t));
+    memset(fn_ip, 0, sizeof(filename_ip_t));
 
     rc = virtio_net_init(mac);
     if (rc < 0) {
         puts("Could not initialize network device");
         return -101;
     }
-    fn_ip.fd = rc;
+    fn_ip->fd = rc;
 
     printf("  Using MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n",
            mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
@@ -220,10 +219,10 @@ static int net_load(char *buffer, int len)
     set_mac_address(mac);    /* init ethernet layer */
     seed_rng(mac);
 
-    rc = dhcp(&fn_ip, DEFAULT_BOOT_RETRIES);
+    rc = dhcp(fn_ip, DEFAULT_BOOT_RETRIES);
     if (rc >= 0) {
         if (ip_version == 4) {
-            set_ipv4_address(fn_ip.own_ip);
+            set_ipv4_address(fn_ip->own_ip);
         }
     } else {
         puts("Could not get IP address");
@@ -232,18 +231,18 @@ static int net_load(char *buffer, int len)
 
     if (ip_version == 4) {
         printf("  Using IPv4 address: %d.%d.%d.%d\n",
-              (fn_ip.own_ip >> 24) & 0xFF, (fn_ip.own_ip >> 16) & 0xFF,
-              (fn_ip.own_ip >>  8) & 0xFF, fn_ip.own_ip & 0xFF);
+              (fn_ip->own_ip >> 24) & 0xFF, (fn_ip->own_ip >> 16) & 0xFF,
+              (fn_ip->own_ip >>  8) & 0xFF, fn_ip->own_ip & 0xFF);
     } else if (ip_version == 6) {
         char ip6_str[40];
-        ipv6_to_str(fn_ip.own_ip6.addr, ip6_str);
+        ipv6_to_str(fn_ip->own_ip6.addr, ip6_str);
         printf("  Using IPv6 address: %s\n", ip6_str);
     }
 
     if (rc == -2) {
         printf("ARP request to TFTP server (%d.%d.%d.%d) failed\n",
-               (fn_ip.server_ip >> 24) & 0xFF, (fn_ip.server_ip >> 16) & 0xFF,
-               (fn_ip.server_ip >>  8) & 0xFF, fn_ip.server_ip & 0xFF);
+               (fn_ip->server_ip >> 24) & 0xFF, (fn_ip->server_ip >> 16) & 0xFF,
+               (fn_ip->server_ip >>  8) & 0xFF, fn_ip->server_ip & 0xFF);
         return -102;
     }
     if (rc == -4 || rc == -3) {
@@ -251,28 +250,31 @@ static int net_load(char *buffer, int len)
         return -107;
     }
 
+    printf("  Using TFTP server: ");
     if (ip_version == 4) {
-        printf("  Requesting file \"%s\" via TFTP from %d.%d.%d.%d\n",
-               fn_ip.filename,
-               (fn_ip.server_ip >> 24) & 0xFF, (fn_ip.server_ip >> 16) & 0xFF,
-               (fn_ip.server_ip >>  8) & 0xFF, fn_ip.server_ip & 0xFF);
+        printf("%d.%d.%d.%d\n",
+               (fn_ip->server_ip >> 24) & 0xFF, (fn_ip->server_ip >> 16) & 0xFF,
+               (fn_ip->server_ip >>  8) & 0xFF, fn_ip->server_ip & 0xFF);
     } else if (ip_version == 6) {
         char ip6_str[40];
-        printf("  Requesting file \"%s\" via TFTP from ", fn_ip.filename);
-        ipv6_to_str(fn_ip.server_ip6.addr, ip6_str);
+        ipv6_to_str(fn_ip->server_ip6.addr, ip6_str);
         printf("%s\n", ip6_str);
     }
 
-    /* Do the TFTP load and print error message if necessary */
-    rc = tftp_load(&fn_ip, buffer, len, DEFAULT_TFTP_RETRIES, ip_version);
-
-    if (ip_version == 4) {
-        dhcp_send_release(fn_ip.fd);
+    if (strlen((char *)fn_ip->filename) > 0) {
+        printf("  Bootfile name: '%s'\n", fn_ip->filename);
     }
 
     return rc;
 }
 
+static void net_release(filename_ip_t *fn_ip)
+{
+    if (ip_version == 4) {
+        dhcp_send_release(fn_ip->fd);
+    }
+}
+
 void panic(const char *string)
 {
     sclp_print(string);
@@ -344,6 +346,7 @@ static void virtio_setup(void)
 
 void main(void)
 {
+    filename_ip_t fn_ip;
     int rc;
 
     sclp_setup();
@@ -351,7 +354,15 @@ void main(void)
 
     virtio_setup();
 
-    rc = net_load(NULL, (long)_start);
+    rc = net_init(&fn_ip);
+    if (rc) {
+        panic("Network initialization failed. Halting.\n");
+    }
+
+    rc = tftp_load(&fn_ip, NULL, (long)_start);
+
+    net_release(&fn_ip);
+
     if (rc > 0) {
         sclp_print("Network loading done, starting kernel...\n");
         asm volatile (" lpsw 0(%0) " : : "r"(0) : "memory");
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 07/10] pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (5 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 06/10] pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 08/10] pc-bios/s390-ccw/net: Add support for .INS config files Thomas Huth
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

The netboot firmware so far simply jumped directly into the OS kernel
after the download has been completed. This, however, bears the risk
that the virtio-net device still might be active in the background and
incoming packets are still placed into the buffers - which could destroy
memory of the now-running Linux kernel in case it did not take over the
device fast enough. Also the SCLP console is not put into a well-defined
state here. We should hand over the system in a clean state when jumping
into the kernel, so let's use the same mechanism as it's done in the
main s390-ccw firmware and reset the machine with diag308 into a clean
state before jumping into the OS kernel code. To be able to share the
code with the main s390-ccw firmware, the related functions are now
extracted from bootmap.c into a new file called jump2ipl.c.

Since we now also set the boot device schid at address 184 for the network
boot device, this patch also slightly changes the way how we detect the
entry points for non-ELF binary images: The code now looks for the "S390EP"
magic first and then jumps to 0x10000 in case it has been found. This is
necessary for booting from network devices, since the normal kernel code
(where the PSW at ddress 0 points to) tries to do a block load from the
boot device. This of course fails for a virtio-net device and causes the
kernel to abort with a panic-PSW silently.

Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/Makefile    |  4 +-
 pc-bios/s390-ccw/bootmap.c   | 63 +-----------------------------
 pc-bios/s390-ccw/bootmap.h   |  4 --
 pc-bios/s390-ccw/jump2ipl.c  | 91 ++++++++++++++++++++++++++++++++++++++++++++
 pc-bios/s390-ccw/netboot.mak |  3 +-
 pc-bios/s390-ccw/netmain.c   | 11 +++++-
 pc-bios/s390-ccw/s390-ccw.h  |  4 ++
 7 files changed, 111 insertions(+), 69 deletions(-)
 create mode 100644 pc-bios/s390-ccw/jump2ipl.c

diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index 1712c2d..439e3cc 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -9,7 +9,9 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
 
 .PHONY : all clean build-all
 
-OBJECTS = start.o main.o bootmap.o sclp.o virtio.o virtio-scsi.o virtio-blkdev.o libc.o menu.o
+OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
+	  virtio.o virtio-scsi.o virtio-blkdev.o libc.o
+
 QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
 QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
 QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
index e41e715..7aef65a 100644
--- a/pc-bios/s390-ccw/bootmap.c
+++ b/pc-bios/s390-ccw/bootmap.c
@@ -29,14 +29,6 @@
 /* Scratch space */
 static uint8_t sec[MAX_SECTOR_SIZE*4] __attribute__((__aligned__(PAGE_SIZE)));
 
-typedef struct ResetInfo {
-    uint32_t ipl_mask;
-    uint32_t ipl_addr;
-    uint32_t ipl_continue;
-} ResetInfo;
-
-static ResetInfo save;
-
 const uint8_t el_torito_magic[] = "EL TORITO SPECIFICATION"
                                   "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
 
@@ -57,53 +49,6 @@ static inline bool is_iso_vd_valid(IsoVolDesc *vd)
            vd->type <= VOL_DESC_TYPE_PARTITION;
 }
 
-static void jump_to_IPL_2(void)
-{
-    ResetInfo *current = 0;
-
-    void (*ipl)(void) = (void *) (uint64_t) current->ipl_continue;
-    *current = save;
-    ipl(); /* should not return */
-}
-
-static void jump_to_IPL_code(uint64_t address)
-{
-    /* store the subsystem information _after_ the bootmap was loaded */
-    write_subsystem_identification();
-
-    /* prevent unknown IPL types in the guest */
-    if (iplb.pbt == S390_IPL_TYPE_QEMU_SCSI) {
-        iplb.pbt = S390_IPL_TYPE_CCW;
-        set_iplb(&iplb);
-    }
-
-    /*
-     * 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
-     * save the original content and restore it in jump_to_IPL_2.
-     */
-    ResetInfo *current = 0;
-
-    save = *current;
-    current->ipl_addr = (uint32_t) (uint64_t) &jump_to_IPL_2;
-    current->ipl_continue = address & 0x7fffffff;
-
-    debug_print_int("set IPL addr to", current->ipl_continue);
-
-    /* Ensure the guest output starts fresh */
-    sclp_print("\n");
-
-    /*
-     * HACK ALERT.
-     * We use the load normal reset to keep r15 unchanged. jump_to_IPL_2
-     * can then use r15 as its stack pointer.
-     */
-    asm volatile("lghi 1,1\n\t"
-                 "diag 1,1,0x308\n\t"
-                 : : : "1", "memory");
-    panic("\n! IPL returns !\n");
-}
-
 /***********************************************************************
  * IPL an ECKD DASD (CDL or LDL/CMS format)
  */
@@ -729,13 +674,7 @@ static void load_iso_bc_entry(IsoBcSection *load)
                         (void *)((uint64_t)bswap16(s.load_segment)),
                         blks_to_load);
 
-    /* Trying to get PSW at zero address */
-    if (*((uint64_t *)0) & IPL_PSW_MASK) {
-        jump_to_IPL_code((*((uint64_t *)0)) & 0x7fffffff);
-    }
-
-    /* Try default linux start address */
-    jump_to_IPL_code(KERN_IMAGE_START);
+    jump_to_low_kernel();
 }
 
 static uint32_t find_iso_bc(void)
diff --git a/pc-bios/s390-ccw/bootmap.h b/pc-bios/s390-ccw/bootmap.h
index 732c111..a085212 100644
--- a/pc-bios/s390-ccw/bootmap.h
+++ b/pc-bios/s390-ccw/bootmap.h
@@ -353,10 +353,6 @@ static inline uint32_t iso_733_to_u32(uint64_t x)
 #define ISO_SECTOR_SIZE 2048
 /* El Torito specifies boot image size in 512 byte blocks */
 #define ET_SECTOR_SHIFT 2
-#define KERN_IMAGE_START 0x010000UL
-#define PSW_MASK_64 0x0000000100000000ULL
-#define PSW_MASK_32 0x0000000080000000ULL
-#define IPL_PSW_MASK (PSW_MASK_32 | PSW_MASK_64)
 
 #define ISO_PRIMARY_VD_SECTOR 16
 
diff --git a/pc-bios/s390-ccw/jump2ipl.c b/pc-bios/s390-ccw/jump2ipl.c
new file mode 100644
index 0000000..266f150
--- /dev/null
+++ b/pc-bios/s390-ccw/jump2ipl.c
@@ -0,0 +1,91 @@
+/*
+ * QEMU s390-ccw firmware - jump to IPL code
+ *
+ * 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.
+ */
+
+#include "libc.h"
+#include "s390-ccw.h"
+
+#define KERN_IMAGE_START 0x010000UL
+#define PSW_MASK_64 0x0000000100000000ULL
+#define PSW_MASK_32 0x0000000080000000ULL
+#define IPL_PSW_MASK (PSW_MASK_32 | PSW_MASK_64)
+
+typedef struct ResetInfo {
+    uint32_t ipl_mask;
+    uint32_t ipl_addr;
+    uint32_t ipl_continue;
+} ResetInfo;
+
+static ResetInfo save;
+
+static void jump_to_IPL_2(void)
+{
+    ResetInfo *current = 0;
+
+    void (*ipl)(void) = (void *) (uint64_t) current->ipl_continue;
+    *current = save;
+    ipl(); /* should not return */
+}
+
+void jump_to_IPL_code(uint64_t address)
+{
+    /* store the subsystem information _after_ the bootmap was loaded */
+    write_subsystem_identification();
+
+    /* prevent unknown IPL types in the guest */
+    if (iplb.pbt == S390_IPL_TYPE_QEMU_SCSI) {
+        iplb.pbt = S390_IPL_TYPE_CCW;
+        set_iplb(&iplb);
+    }
+
+    /*
+     * 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
+     * save the original content and restore it in jump_to_IPL_2.
+     */
+    ResetInfo *current = 0;
+
+    save = *current;
+    current->ipl_addr = (uint32_t) (uint64_t) &jump_to_IPL_2;
+    current->ipl_continue = address & 0x7fffffff;
+
+    debug_print_int("set IPL addr to", current->ipl_continue);
+
+    /* Ensure the guest output starts fresh */
+    sclp_print("\n");
+
+    /*
+     * HACK ALERT.
+     * We use the load normal reset to keep r15 unchanged. jump_to_IPL_2
+     * can then use r15 as its stack pointer.
+     */
+    asm volatile("lghi 1,1\n\t"
+                 "diag 1,1,0x308\n\t"
+                 : : : "1", "memory");
+    panic("\n! IPL returns !\n");
+}
+
+void jump_to_low_kernel(void)
+{
+    /*
+     * If it looks like a Linux binary, i.e. there is the "S390EP" magic from
+     * arch/s390/kernel/head.S here, then let's jump to the well-known Linux
+     * kernel start address (when jumping to the PSW-at-zero address instead,
+     * the kernel startup code fails when we booted from a network device).
+     */
+    if (!memcmp((char *)0x10008, "S390EP", 6)) {
+        jump_to_IPL_code(KERN_IMAGE_START);
+    }
+
+    /* Trying to get PSW at zero address */
+    if (*((uint64_t *)0) & IPL_PSW_MASK) {
+        jump_to_IPL_code((*((uint64_t *)0)) & 0x7fffffff);
+    }
+
+    /* No other option left, so use the Linux kernel start address */
+    jump_to_IPL_code(KERN_IMAGE_START);
+}
diff --git a/pc-bios/s390-ccw/netboot.mak b/pc-bios/s390-ccw/netboot.mak
index a25d238..4f64128 100644
--- a/pc-bios/s390-ccw/netboot.mak
+++ b/pc-bios/s390-ccw/netboot.mak
@@ -1,7 +1,8 @@
 
 SLOF_DIR := $(SRC_PATH)/roms/SLOF
 
-NETOBJS := start.o sclp.o virtio.o virtio-net.o netmain.o libnet.a libc.a
+NETOBJS := start.o sclp.o virtio.o virtio-net.o jump2ipl.o netmain.o \
+	   libnet.a libc.a
 
 LIBC_INC := -nostdinc -I$(SLOF_DIR)/lib/libc/include
 LIBNET_INC := -I$(SLOF_DIR)/lib/libnet
diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c
index 8fa9e6c..69a82c0 100644
--- a/pc-bios/s390-ccw/netmain.c
+++ b/pc-bios/s390-ccw/netmain.c
@@ -283,6 +283,15 @@ void panic(const char *string)
     }
 }
 
+void write_subsystem_identification(void)
+{
+    SubChannelId *schid = (SubChannelId *) 184;
+    uint32_t *zeroes = (uint32_t *) 188;
+
+    *schid = net_schid;
+    *zeroes = 0;
+}
+
 static bool find_net_dev(Schib *schib, int dev_no)
 {
     int i, r;
@@ -365,7 +374,7 @@ void main(void)
 
     if (rc > 0) {
         sclp_print("Network loading done, starting kernel...\n");
-        asm volatile (" lpsw 0(%0) " : : "r"(0) : "memory");
+        jump_to_low_kernel();
     }
 
     panic("Failed to load OS from network\n");
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index a1bdb4c..9828aa2 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -87,6 +87,10 @@ ulong get_second(void);
 /* bootmap.c */
 void zipl_load(void);
 
+/* jump2ipl.c */
+void jump_to_IPL_code(uint64_t address);
+void jump_to_low_kernel(void);
+
 /* menu.c */
 void menu_set_parms(uint8_t boot_menu_flag, uint32_t boot_menu_timeout);
 int menu_get_zipl_boot_index(const char *menu_data);
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 08/10] pc-bios/s390-ccw/net: Add support for .INS config files
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (6 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 07/10] pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 09/10] s390-ccw: force diag 308 subcode to unsigned long Thomas Huth
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

The .INS config files can normally be found on CD-ROM ISO images,
so by supporting these files, it is now possible to boot directly
when the TFTP server is set up with the contents of such an CD-ROM
image.

Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/netmain.c | 100 ++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 95 insertions(+), 5 deletions(-)

diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c
index 69a82c0..6000241 100644
--- a/pc-bios/s390-ccw/netmain.c
+++ b/pc-bios/s390-ccw/netmain.c
@@ -39,8 +39,12 @@
 
 extern char _start[];
 
+#define KERNEL_ADDR             ((void *)0L)
+#define KERNEL_MAX_SIZE         ((long)_start)
+
 char stack[PAGE_SIZE * 8] __attribute__((aligned(PAGE_SIZE)));
 IplParameterBlock iplb __attribute__((aligned(PAGE_SIZE)));
+static char cfgbuf[2048];
 
 static SubChannelId net_schid = { .one = 1 };
 static int ip_version = 4;
@@ -136,9 +140,15 @@ static int tftp_load(filename_ip_t *fnip, void *buffer, int len)
     rc = tftp(fnip, buffer, len, DEFAULT_TFTP_RETRIES, &tftp_err, 1, 1428,
               ip_version);
 
-    if (rc > 0) {
-        printf("  TFTP: Received %s (%d KBytes)\n", fnip->filename,
-               rc / 1024);
+    if (rc < 0) {
+        /* Make sure that error messages are put into a new line */
+        printf("\n  ");
+    }
+
+    if (rc > 1024) {
+        printf("  TFTP: Received %s (%d KBytes)\n", fnip->filename, rc / 1024);
+    } else if (rc > 0) {
+        printf("  TFTP: Received %s (%d Bytes)\n", fnip->filename, rc);
     } else if (rc == -1) {
         puts("unknown TFTP error");
     } else if (rc == -2) {
@@ -275,6 +285,83 @@ static void net_release(filename_ip_t *fn_ip)
     }
 }
 
+/**
+ * Load via information from a .INS file (which can be found on CD-ROMs
+ * for example)
+ */
+static int handle_ins_cfg(filename_ip_t *fn_ip, char *cfg, int cfgsize)
+{
+    char *ptr;
+    int rc = -1, llen;
+    void *destaddr;
+    char *insbuf = cfg;
+
+    ptr = strchr(insbuf, '\n');
+    if (!ptr) {
+        puts("Does not seem to be a valid .INS file");
+        return -1;
+    }
+
+    *ptr = 0;
+    printf("\nParsing .INS file:\n %s\n", &insbuf[2]);
+
+    insbuf = ptr + 1;
+    while (*insbuf && insbuf < cfg + cfgsize) {
+        ptr = strchr(insbuf, '\n');
+        if (ptr) {
+            *ptr = 0;
+        }
+        llen = strlen(insbuf);
+        if (!llen) {
+            insbuf = ptr + 1;
+            continue;
+        }
+        ptr = strchr(insbuf, ' ');
+        if (!ptr) {
+            puts("Missing space separator in .INS file");
+            return -1;
+        }
+        *ptr = 0;
+        strncpy((char *)fn_ip->filename, insbuf, sizeof(fn_ip->filename));
+        destaddr = (char *)atol(ptr + 1);
+        rc = tftp_load(fn_ip, destaddr, (long)_start - (long)destaddr);
+        if (rc <= 0) {
+            break;
+        }
+        insbuf += llen + 1;
+    }
+
+    return rc;
+}
+
+static int net_try_direct_tftp_load(filename_ip_t *fn_ip)
+{
+    int rc;
+    void *loadaddr = (void *)0x2000;  /* Load right after the low-core */
+
+    rc = tftp_load(fn_ip, loadaddr, KERNEL_MAX_SIZE - (long)loadaddr);
+    if (rc < 0) {
+        return rc;
+    } else if (rc < 8) {
+        printf("'%s' is too small (%i bytes only).\n", fn_ip->filename, rc);
+        return -1;
+    }
+
+    /* Check whether it is a configuration file instead of a kernel */
+    if (rc < sizeof(cfgbuf) - 1) {
+        memcpy(cfgbuf, loadaddr, rc);
+        cfgbuf[rc] = 0;    /* Make sure that it is NUL-terminated */
+        if (!strncmp("* ", cfgbuf, 2)) {
+            return handle_ins_cfg(fn_ip, cfgbuf, rc);
+        }
+    }
+
+    /* Move kernel to right location */
+    memmove(KERNEL_ADDR, loadaddr, rc);
+
+    return rc;
+}
+
 void panic(const char *string)
 {
     sclp_print(string);
@@ -356,7 +443,7 @@ static void virtio_setup(void)
 void main(void)
 {
     filename_ip_t fn_ip;
-    int rc;
+    int rc, fnlen;
 
     sclp_setup();
     sclp_print("Network boot starting...\n");
@@ -368,7 +455,10 @@ void main(void)
         panic("Network initialization failed. Halting.\n");
     }
 
-    rc = tftp_load(&fn_ip, NULL, (long)_start);
+    fnlen = strlen((char *)fn_ip.filename);
+    if (fnlen > 0 && fn_ip.filename[fnlen - 1] != '/') {
+        rc = net_try_direct_tftp_load(&fn_ip);
+    }
 
     net_release(&fn_ip);
 
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 09/10] s390-ccw: force diag 308 subcode to unsigned long
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (7 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 08/10] pc-bios/s390-ccw/net: Add support for .INS config files Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 10/10] pc-bios/s390: Update firmware images Thomas Huth
  2018-05-03 14:48 ` [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Cornelia Huck
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

From: Cornelia Huck <cohuck@redhat.com>

We currently pass an integer as the subcode parameter. However,
the upper bits of the register containing the subcode need to
be 0, which is not guaranteed unless we explicitly specify the
subcode to be an unsigned long value.

Fixes: d046c51dad3 ("pc-bios/s390-ccw: Get device address via diag 308/6")
Cc: qemu-stable@nongnu.org
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/iplb.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/iplb.h b/pc-bios/s390-ccw/iplb.h
index 5357a36..ded20c8 100644
--- a/pc-bios/s390-ccw/iplb.h
+++ b/pc-bios/s390-ccw/iplb.h
@@ -101,10 +101,11 @@ static inline bool manage_iplb(IplParameterBlock *iplb, bool store)
 {
     register unsigned long addr asm("0") = (unsigned long) iplb;
     register unsigned long rc asm("1") = 0;
+    unsigned long subcode = store ? 6 : 5;
 
     asm volatile ("diag %0,%2,0x308\n"
                   : "+d" (addr), "+d" (rc)
-                  : "d" (store ? 6 : 5)
+                  : "d" (subcode)
                   : "memory", "cc");
     return rc == 0x01;
 }
-- 
1.8.3.1

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

* [Qemu-devel] [PULL SUBSYSTEM s390x 10/10] pc-bios/s390: Update firmware images
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (8 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 09/10] s390-ccw: force diag 308 subcode to unsigned long Thomas Huth
@ 2018-05-02 14:33 ` Thomas Huth
  2018-05-03 14:48 ` [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Cornelia Huck
  10 siblings, 0 replies; 12+ messages in thread
From: Thomas Huth @ 2018-05-02 14:33 UTC (permalink / raw)
  To: qemu-devel, Cornelia Huck
  Cc: qemu-s390x, Christian Borntraeger, Collin L. Walling

s390-ccw.img contains fixes for the boot menu, and s390-netboot.img
contains the support for .INS files and the patch for resetting the
machine with diag308.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw.img     | Bin 30520 -> 34568 bytes
 pc-bios/s390-netboot.img | Bin 83856 -> 87872 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index fdd6809c707274be47b21fac102c41942f1379d7..450a076dc0ad9f2babc7f2e3005ea05a1082a808 100644
GIT binary patch
literal 34568
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

literal 30520
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

diff --git a/pc-bios/s390-netboot.img b/pc-bios/s390-netboot.img
index 31f3d141cde6320d696e6945046c75d140488df3..ef561efd2e222e03138705e9cf30d9e125a7970e 100644
GIT binary patch
literal 87872
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

literal 83856
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

-- 
1.8.3.1

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

* Re: [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master
  2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
                   ` (9 preceding siblings ...)
  2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 10/10] pc-bios/s390: Update firmware images Thomas Huth
@ 2018-05-03 14:48 ` Cornelia Huck
  10 siblings, 0 replies; 12+ messages in thread
From: Cornelia Huck @ 2018-05-03 14:48 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, qemu-s390x, Christian Borntraeger, Collin L. Walling

On Wed,  2 May 2018 16:33:19 +0200
Thomas Huth <thuth@redhat.com> wrote:

> This PULL request is not for master.
> 
> 
>  Hi Cornelia,
> 
> the following changes since commit 052888f043bacb18231046045b1f9cd946703170:
> 
>   hw/s390x: Allow to configure the consoles with the "-serial" parameter (2018-04-30 10:48:29 +0200)
> 
> are available in the git repository at:
> 
>   https://github.com/huth/qemu.git tags/s390x-2018-05-02
> 
> for you to fetch changes up to 312185cf35b5d8454a84c337ef9aadade877fb88:
> 
>   pc-bios/s390: Update firmware images (2018-05-02 15:42:57 +0200)
> 
> ----------------------------------------------------------------
> s390-ccw firmware updates:
> - Improvements to the boot menu (can now handle non-sequential entries)
> - s390-netboot now resets the machine before jumping into the OS kernel
> - s390-netboot now supports indirect loading via .INS files
> - some other minor fixes and clean-ups
> ----------------------------------------------------------------
> 
> Collin Walling (4):
>       pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES
>       pc-bios/s390-ccw: fix loadparm initialization and int conversion
>       pc-bios/s390-ccw: fix non-sequential boot entries (eckd)
>       pc-bios/s390-ccw: fix non-sequential boot entries (enum)
> 
> Cornelia Huck (1):
>       s390-ccw: force diag 308 subcode to unsigned long
> 
> Thomas Huth (5):
>       pc-bios/s390-ccw: size_t should be unsigned
>       pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts
>       pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS
>       pc-bios/s390-ccw/net: Add support for .INS config files
>       pc-bios/s390: Update firmware images
> 
>  hw/s390x/ipl.c               |   4 ++
>  pc-bios/s390-ccw.img         | Bin 30520 -> 34568 bytes
>  pc-bios/s390-ccw/Makefile    |   4 +-
>  pc-bios/s390-ccw/bootmap.c   |  79 +++-----------------
>  pc-bios/s390-ccw/bootmap.h   |   6 --
>  pc-bios/s390-ccw/iplb.h      |   3 +-
>  pc-bios/s390-ccw/jump2ipl.c  |  91 +++++++++++++++++++++++
>  pc-bios/s390-ccw/libc.c      |   2 +-
>  pc-bios/s390-ccw/libc.h      |   2 +-
>  pc-bios/s390-ccw/main.c      |  14 ++--
>  pc-bios/s390-ccw/menu.c      |  58 ++++++++++-----
>  pc-bios/s390-ccw/netboot.mak |   3 +-
>  pc-bios/s390-ccw/netmain.c   | 168 +++++++++++++++++++++++++++++++++++--------
>  pc-bios/s390-ccw/s390-ccw.h  |   8 ++-
>  pc-bios/s390-netboot.img     | Bin 83856 -> 87872 bytes
>  15 files changed, 307 insertions(+), 135 deletions(-)
>  create mode 100644 pc-bios/s390-ccw/jump2ipl.c

Thanks, pulled.

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

end of thread, other threads:[~2018-05-03 14:48 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-02 14:33 [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 01/10] pc-bios/s390-ccw: size_t should be unsigned Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 02/10] pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 03/10] pc-bios/s390-ccw: fix loadparm initialization and int conversion Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 04/10] pc-bios/s390-ccw: fix non-sequential boot entries (eckd) Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 05/10] pc-bios/s390-ccw: fix non-sequential boot entries (enum) Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 06/10] pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 07/10] pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 08/10] pc-bios/s390-ccw/net: Add support for .INS config files Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 09/10] s390-ccw: force diag 308 subcode to unsigned long Thomas Huth
2018-05-02 14:33 ` [Qemu-devel] [PULL SUBSYSTEM s390x 10/10] pc-bios/s390: Update firmware images Thomas Huth
2018-05-03 14:48 ` [Qemu-devel] [PULL SUBSYSTEM s390x 00/10] s390-ccw firmware update - not for master Cornelia Huck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.