From e4f869621203955761cf274c87d5595e9facd319 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 13 Apr 2018 16:22:13 +0200 Subject: [PATCH 01/10] pc-bios/s390-ccw: size_t should be unsigned "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 Reviewed-by: Halil Pasic Reviewed-by: Collin Walling Signed-off-by: Thomas Huth --- 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 38ea77d7aa..a786566c4c 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 63ece70c6b..818517ff5d 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; From 6df2a829dfacfbf10a78199ad4b023a7ea65d9cd Mon Sep 17 00:00:00 2001 From: Collin Walling Date: Mon, 16 Apr 2018 12:56:07 -0400 Subject: [PATCH 02/10] pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES 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 Reviewed-by: Thomas Huth Reviewed-by: Janosch Frank Signed-off-by: Thomas Huth --- 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 9287b7a70f..b767fa2afc 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 07eb600b00..732c1112ce 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 fd18da22c6..2c9e6017b7 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"; From 074afe60d4c8167dcfaee7aca1065c6360449eaa Mon Sep 17 00:00:00 2001 From: Collin Walling Date: Mon, 16 Apr 2018 12:56:08 -0400 Subject: [PATCH 03/10] pc-bios/s390-ccw: fix loadparm initialization and int conversion 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 Reported-by: Vasily Gorbik Reviewed-by: Thomas Huth Reviewed-by: Janosch Frank Signed-off-by: Thomas Huth --- 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 fb554ab156..150f6c0582 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 9d9f8cf4d3..26f9adf84a 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)); From 7385e947fc65a44dd05abb86c874beb915c1989c Mon Sep 17 00:00:00 2001 From: Collin Walling Date: Mon, 16 Apr 2018 12:56:09 -0400 Subject: [PATCH 04/10] pc-bios/s390-ccw: fix non-sequential boot entries (eckd) 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 Reported-by: Vasily Gorbik Reviewed-by: Thomas Huth Reviewed-by: Janosch Frank Signed-off-by: Thomas Huth --- 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 96eec81e84..aaf5d61ae6 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); } From 622b39178057289a1c8c1b5148f513e658e90ea1 Mon Sep 17 00:00:00 2001 From: Collin Walling Date: Mon, 16 Apr 2018 12:56:10 -0400 Subject: [PATCH 05/10] pc-bios/s390-ccw: fix non-sequential boot entries (enum) 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 Reported-by: Vasily Gorbik Reviewed-by: Thomas Huth Reviewed-by: Janosch Frank Signed-off-by: Thomas Huth --- 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 b767fa2afc..e41e715624 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 aaf5d61ae6..82a4ae6315 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 2c9e6017b7..a1bdb4cc2a 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 From 0c18822953011ec0a3038c8a5eca1803b72a213e Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 17 Apr 2018 07:36:10 +0200 Subject: [PATCH 06/10] pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts 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 Signed-off-by: Thomas Huth --- 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 d86d46b03f..8fa9e6c945 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"); From 9a848adf45d6732e62551decb3c0255173090767 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 20 Apr 2018 11:30:42 +0200 Subject: [PATCH 07/10] pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS 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 Signed-off-by: Thomas Huth --- 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 1712c2d95d..439e3cc9c9 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 e41e715624..7aef65ab67 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 732c1112ce..a085212077 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 0000000000..266f1502b9 --- /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 a25d238144..4f64128c6c 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 8fa9e6c945..69a82c0d56 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 a1bdb4cc2a..9828aa233d 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); From c4942ee94271052b68125ec8c06e8c71a967aad3 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 18 Apr 2018 14:02:37 +0200 Subject: [PATCH 08/10] pc-bios/s390-ccw/net: Add support for .INS config files 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 Signed-off-by: Thomas Huth --- 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 69a82c0d56..600024155b 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); From 63d8b5ace31c1e1f3996fe4cd551d6d377594d5a Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Wed, 2 May 2018 14:52:21 +0200 Subject: [PATCH 09/10] s390-ccw: force diag 308 subcode to unsigned long 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 Acked-by: Christian Borntraeger Tested-by: Thomas Huth Signed-off-by: Thomas Huth --- 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 5357a36d51..ded20c834e 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; } From 312185cf35b5d8454a84c337ef9aadade877fb88 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 2 May 2018 15:42:57 +0200 Subject: [PATCH 10/10] pc-bios/s390: Update firmware images 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 --- 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 83856 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