qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: peter.maydell@linaro.org
Cc: qemu-devel@nongnu.org, rth@twiddle.net, agraf@suse.de,
	thuth@redhat.com, borntraeger@de.ibm.com, david@redhat.com,
	Cornelia Huck <cohuck@redhat.com>
Subject: [Qemu-devel] [PULL 06/44] tests/pxe: Check virtio-net-ccw on s390x
Date: Wed, 30 Aug 2017 18:52:14 +0200	[thread overview]
Message-ID: <20170830165252.13421-7-cohuck@redhat.com> (raw)
In-Reply-To: <20170830165252.13421-1-cohuck@redhat.com>

From: Thomas Huth <thuth@redhat.com>

Now that we've got a firmware that can do TFTP booting on s390x (i.e.
the pc-bios/s390-netboot.img), we can enable the PXE tester for this
architecture, too.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <1502431076-22849-3-git-send-email-thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 tests/Makefile.include |  1 +
 tests/boot-sector.c    | 20 ++++++++++++++++++++
 tests/pxe-test.c       |  7 +++++++
 3 files changed, 28 insertions(+)

diff --git a/tests/Makefile.include b/tests/Makefile.include
index 37c1bed683..ea0f15f70b 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -360,6 +360,7 @@ check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
 check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
 
 check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)
+check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF)
 
 check-qtest-generic-y += tests/qom-test$(EXESUF)
 check-qtest-generic-y += tests/test-hmp$(EXESUF)
diff --git a/tests/boot-sector.c b/tests/boot-sector.c
index 87295624d2..9ee85370b0 100644
--- a/tests/boot-sector.c
+++ b/tests/boot-sector.c
@@ -67,6 +67,21 @@ static uint8_t x86_boot_sector[512] = {
     [0x1FF] = 0xAA,
 };
 
+/* For s390x, use a mini "kernel" with the appropriate signature */
+static const uint8_t s390x_psw[] = {
+    0x00, 0x08, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00
+};
+static const uint8_t s390x_code[] = {
+    0xa7, 0xf4, 0x00, 0x0a,                                /* j 0x10010 */
+    0x00, 0x00, 0x00, 0x00,
+    'S', '3', '9', '0',
+    'E', 'P', 0x00, 0x01,
+    0xa7, 0x38, HIGH(SIGNATURE_ADDR), LOW(SIGNATURE_ADDR), /* lhi r3,0x7c10 */
+    0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE),           /* lhi r4,0xadde */
+    0x40, 0x40, 0x30, 0x00,                                /* sth r4,0(r3) */
+    0xa7, 0xf4, 0xff, 0xfa                                 /* j 0x10010 */
+};
+
 /* Create boot disk file.  */
 int boot_sector_init(char *fname)
 {
@@ -92,6 +107,11 @@ int boot_sector_init(char *fname)
                                     LOW(SIGNATURE), SIGNATURE_ADDR,
                                     HIGH(SIGNATURE), SIGNATURE_ADDR + 1);
         len = strlen(boot_code);
+    } else if (g_str_equal(arch, "s390x")) {
+        len = 0x10000 + sizeof(s390x_code);
+        boot_code = g_malloc0(len);
+        memcpy(boot_code, s390x_psw, sizeof(s390x_psw));
+        memcpy(&boot_code[0x10000], s390x_code, sizeof(s390x_code));
     } else {
         g_assert_not_reached();
     }
diff --git a/tests/pxe-test.c b/tests/pxe-test.c
index cf6e225330..0d70afccd6 100644
--- a/tests/pxe-test.c
+++ b/tests/pxe-test.c
@@ -51,6 +51,11 @@ static void test_pxe_spapr_vlan(void)
     test_pxe_one("-device spapr-vlan,netdev=" NETNAME, true);
 }
 
+static void test_pxe_virtio_ccw(void)
+{
+    test_pxe_one("-device virtio-net-ccw,bootindex=1,netdev=" NETNAME, false);
+}
+
 int main(int argc, char *argv[])
 {
     int ret;
@@ -68,6 +73,8 @@ int main(int argc, char *argv[])
     } else if (strcmp(arch, "ppc64") == 0) {
         qtest_add_func("pxe/virtio", test_pxe_virtio_pci);
         qtest_add_func("pxe/spapr-vlan", test_pxe_spapr_vlan);
+    } else if (g_str_equal(arch, "s390x")) {
+        qtest_add_func("pxe/virtio-ccw", test_pxe_virtio_ccw);
     }
     ret = g_test_run();
     boot_sector_cleanup(disk);
-- 
2.13.5

  parent reply	other threads:[~2017-08-30 16:53 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-30 16:52 [Qemu-devel] [PULL 00/44] first batch of s390x patches for 2.11 Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 01/44] s390x/css: use macro for event-information pending error recover code Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 02/44] s390x/css: generate solicited crw for rchp completion signaling Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 03/44] s390x: introduce 2.11 compat machine Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 04/44] s390x/ipl: The s390-ipl device is not hot-pluggable Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 05/44] tests/boot-sector: Do not overwrite the x86 buffer on other architectures Cornelia Huck
2017-08-30 16:52 ` Cornelia Huck [this message]
2017-08-30 16:52 ` [Qemu-devel] [PULL 07/44] tests: Run filter-redirector and -mirror test only on POSIX systems Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 08/44] tests: Add network filter tests to the check-qtest-s390x list Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 09/44] s390x/tcg: specification exception for unknown diag Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 10/44] watchdog/wdt_diag288: Mark diag288 watchdog as non-hotpluggable Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 11/44] s390x: wire up diag288 in tcg Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 12/44] configure: enable --s390-pgste linker option Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 13/44] 9pfs: fix dependencies Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 14/44] kvm: remove hard dependency on pci Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 15/44] s390x/pci: add stubs Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 16/44] s390x: chsc nt2 events are pci-only Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 17/44] s390x/pci: do not advertise pci on non-pci builds Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 18/44] s390x/ccw: create s390 phb conditionally Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 19/44] s390x/sclp: properly guard pci-specific functions Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 20/44] s390x/pci: fence off instructions for non-pci Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 21/44] s390x: refine pci dependencies Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 22/44] s390x/s390-skeys: Mark the storage key devices with user_creatable = false Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 23/44] s390x/kvm: drop KVMState parameter from s390_get_memslot_count() Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 24/44] s390x/kvm: drop KVMState parameter from kvm_s390_set_mem_limit() Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 25/44] target/s390x: simplify ri_allowed() Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 26/44] target/s390x: simplify gs_allowed() Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 27/44] target/s390x: no need to pass kvm_state to savevm_gtod handlers Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 28/44] s390x/cpumodel: factor out determination of default model name Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 29/44] s390x: drop inclusion of sysemu/kvm.h from some files Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 30/44] target/s390x: move gtod_*() declarations to s390-virtio.h Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 31/44] target/s390x: move cc_name() to helper.c Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 32/44] target/s390x: move cpu_mmu_idx_to_asc() to excp_helper.c Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 33/44] target/s390x: move psw_key_valid() to mem_helper.c Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 34/44] target/s390x: move s390_do_cpu_reset() to diag.c Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 35/44] target/s390x: move get_per_in_range() to misc_helper.c Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 36/44] target/s390x: introduce internal.h Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 37/44] target/s390x: move a couple of functions to cpu.c Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 38/44] s390x: avoid calling kvm_ functions outside of target/s390x/ Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 39/44] s390x/kvm: move KVM declarations and stubs to separate files Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 40/44] target/s390x: cleanup cpu.h Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 41/44] s390x/s390-stattrib: Mark the storage attribute as not user_creatable Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 42/44] s390-ccw: Fix alignment for CCW1 Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 43/44] pc-bios/s390-ccw.img: update image Cornelia Huck
2017-08-30 16:52 ` [Qemu-devel] [PULL 44/44] s390x/pci: fixup trap_msix() Cornelia Huck
2017-08-31 12:50 ` [Qemu-devel] [PULL 00/44] first batch of s390x patches for 2.11 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170830165252.13421-7-cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).