* [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x
@ 2017-08-03 13:30 Thomas Huth
2017-08-03 15:20 ` Cornelia Huck
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Thomas Huth @ 2017-08-03 13:30 UTC (permalink / raw)
To: qemu-devel, Cornelia Huck
Cc: Jason Wang, Christian Borntraeger, Michael S. Tsirkin, Victor Kaplansky
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>
---
Since this only adds a test, I guess this could still be included
for 2.10 ... otherwise, I think it's also OK to simply postpone this
to 2.11 instead
tests/Makefile.include | 1 +
tests/boot-sector.c | 25 ++++++++++++++++++++++---
tests/pxe-test.c | 7 +++++++
3 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 59e536b..f9af5e3 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -337,6 +337,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-y += 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 e3880f4..87a8fb5 100644
--- a/tests/boot-sector.c
+++ b/tests/boot-sector.c
@@ -21,6 +21,7 @@
#define SIGNATURE 0xdead
#define SIGNATURE_OFFSET 0x10
#define BOOT_SECTOR_ADDRESS 0x7c00
+#define SIGNATURE_ADDR (BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET)
/* Boot sector code: write SIGNATURE into memory,
* then halt.
@@ -73,6 +74,7 @@ int boot_sector_init(char *fname)
{
int fd, ret;
size_t len = sizeof boot_sector;
+ const char *arch = qtest_get_arch();
fd = mkstemp(fname);
if (fd < 0) {
@@ -81,10 +83,27 @@ int boot_sector_init(char *fname)
}
/* For Open Firmware based system, we can use a Forth script instead */
- if (strcmp(qtest_get_arch(), "ppc64") == 0) {
+ if (g_str_equal(arch, "ppc64")) {
len = sprintf((char *)boot_sector, "\\ Bootscript\n%x %x c! %x %x c!\n",
- LOW(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET,
- HIGH(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);
+ LOW(SIGNATURE), SIGNATURE_ADDR,
+ HIGH(SIGNATURE), SIGNATURE_ADDR + 1);
+ } else if (g_str_equal(arch, "s390x")) {
+ /* For s390x, fake a kernel signature */
+ const uint8_t psw[] = {
+ 0x00, 0x08, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00
+ };
+ const uint8_t 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 */
+ 0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE), /* lhi r4,0xadde */
+ 0x40, 0x40, 0x30, 0x00, /* sth r4,0(r3) */
+ 0xa7, 0xf4, 0xff, 0xfa /* j 0x10010 */
+ };
+ memcpy(boot_sector, psw, 8);
+ memcpy(&boot_sector[0x10000], code, sizeof(code));
}
ret = write(fd, boot_sector, len);
diff --git a/tests/pxe-test.c b/tests/pxe-test.c
index cf6e225..0d70afc 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);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x
2017-08-03 13:30 [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x Thomas Huth
@ 2017-08-03 15:20 ` Cornelia Huck
2017-08-07 16:09 ` Cornelia Huck
2017-08-07 20:35 ` Michael S. Tsirkin
2 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-08-03 15:20 UTC (permalink / raw)
To: Thomas Huth
Cc: qemu-devel, Jason Wang, Christian Borntraeger,
Michael S. Tsirkin, Victor Kaplansky
On Thu, 3 Aug 2017 15:30:19 +0200
Thomas Huth <thuth@redhat.com> wrote:
> 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>
> ---
> Since this only adds a test, I guess this could still be included
> for 2.10 ... otherwise, I think it's also OK to simply postpone this
> to 2.11 instead
Personally, I think it is a bit late for non-bugfixes - even if it is
just a test.
>
> tests/Makefile.include | 1 +
> tests/boot-sector.c | 25 ++++++++++++++++++++++---
> tests/pxe-test.c | 7 +++++++
> 3 files changed, 30 insertions(+), 3 deletions(-)
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 59e536b..f9af5e3 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -337,6 +337,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-y += 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 e3880f4..87a8fb5 100644
> --- a/tests/boot-sector.c
> +++ b/tests/boot-sector.c
> @@ -21,6 +21,7 @@
> #define SIGNATURE 0xdead
> #define SIGNATURE_OFFSET 0x10
> #define BOOT_SECTOR_ADDRESS 0x7c00
> +#define SIGNATURE_ADDR (BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET)
>
> /* Boot sector code: write SIGNATURE into memory,
> * then halt.
> @@ -73,6 +74,7 @@ int boot_sector_init(char *fname)
> {
> int fd, ret;
> size_t len = sizeof boot_sector;
> + const char *arch = qtest_get_arch();
>
> fd = mkstemp(fname);
> if (fd < 0) {
> @@ -81,10 +83,27 @@ int boot_sector_init(char *fname)
> }
>
> /* For Open Firmware based system, we can use a Forth script instead */
> - if (strcmp(qtest_get_arch(), "ppc64") == 0) {
> + if (g_str_equal(arch, "ppc64")) {
> len = sprintf((char *)boot_sector, "\\ Bootscript\n%x %x c! %x %x c!\n",
> - LOW(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET,
> - HIGH(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);
> + LOW(SIGNATURE), SIGNATURE_ADDR,
> + HIGH(SIGNATURE), SIGNATURE_ADDR + 1);
> + } else if (g_str_equal(arch, "s390x")) {
> + /* For s390x, fake a kernel signature */
> + const uint8_t psw[] = {
> + 0x00, 0x08, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00
> + };
> + const uint8_t 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 */
> + 0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE), /* lhi r4,0xadde */
> + 0x40, 0x40, 0x30, 0x00, /* sth r4,0(r3) */
> + 0xa7, 0xf4, 0xff, 0xfa /* j 0x10010 */
> + };
> + memcpy(boot_sector, psw, 8);
> + memcpy(&boot_sector[0x10000], code, sizeof(code));
> }
>
> ret = write(fd, boot_sector, len);
> diff --git a/tests/pxe-test.c b/tests/pxe-test.c
> index cf6e225..0d70afc 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);
No objection, but I'll have to look at this some more as I'm not
familiar with the test.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x
2017-08-03 13:30 [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x Thomas Huth
2017-08-03 15:20 ` Cornelia Huck
@ 2017-08-07 16:09 ` Cornelia Huck
2017-08-07 20:35 ` Michael S. Tsirkin
2 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-08-07 16:09 UTC (permalink / raw)
To: Thomas Huth
Cc: qemu-devel, Jason Wang, Christian Borntraeger,
Michael S. Tsirkin, Victor Kaplansky
On Thu, 3 Aug 2017 15:30:19 +0200
Thomas Huth <thuth@redhat.com> wrote:
> 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.
I'll take this through the s390x tree, unless someone objects.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> Since this only adds a test, I guess this could still be included
> for 2.10 ... otherwise, I think it's also OK to simply postpone this
> to 2.11 instead
>
> tests/Makefile.include | 1 +
> tests/boot-sector.c | 25 ++++++++++++++++++++++---
> tests/pxe-test.c | 7 +++++++
> 3 files changed, 30 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x
2017-08-03 13:30 [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x Thomas Huth
2017-08-03 15:20 ` Cornelia Huck
2017-08-07 16:09 ` Cornelia Huck
@ 2017-08-07 20:35 ` Michael S. Tsirkin
2017-08-08 5:19 ` Thomas Huth
2 siblings, 1 reply; 6+ messages in thread
From: Michael S. Tsirkin @ 2017-08-07 20:35 UTC (permalink / raw)
To: Thomas Huth
Cc: qemu-devel, Cornelia Huck, Jason Wang, Christian Borntraeger,
Victor Kaplansky
On Thu, Aug 03, 2017 at 03:30:19PM +0200, Thomas Huth wrote:
> 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>
> ---
> Since this only adds a test, I guess this could still be included
> for 2.10 ... otherwise, I think it's also OK to simply postpone this
> to 2.11 instead
I think 2.11 is preferable.
> tests/Makefile.include | 1 +
> tests/boot-sector.c | 25 ++++++++++++++++++++++---
> tests/pxe-test.c | 7 +++++++
> 3 files changed, 30 insertions(+), 3 deletions(-)
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 59e536b..f9af5e3 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -337,6 +337,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-y += 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 e3880f4..87a8fb5 100644
> --- a/tests/boot-sector.c
> +++ b/tests/boot-sector.c
> @@ -21,6 +21,7 @@
> #define SIGNATURE 0xdead
> #define SIGNATURE_OFFSET 0x10
> #define BOOT_SECTOR_ADDRESS 0x7c00
> +#define SIGNATURE_ADDR (BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET)
>
> /* Boot sector code: write SIGNATURE into memory,
> * then halt.
> @@ -73,6 +74,7 @@ int boot_sector_init(char *fname)
> {
> int fd, ret;
> size_t len = sizeof boot_sector;
> + const char *arch = qtest_get_arch();
>
> fd = mkstemp(fname);
> if (fd < 0) {
> @@ -81,10 +83,27 @@ int boot_sector_init(char *fname)
> }
>
> /* For Open Firmware based system, we can use a Forth script instead */
> - if (strcmp(qtest_get_arch(), "ppc64") == 0) {
> + if (g_str_equal(arch, "ppc64")) {
> len = sprintf((char *)boot_sector, "\\ Bootscript\n%x %x c! %x %x c!\n",
> - LOW(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET,
> - HIGH(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);
> + LOW(SIGNATURE), SIGNATURE_ADDR,
> + HIGH(SIGNATURE), SIGNATURE_ADDR + 1);
> + } else if (g_str_equal(arch, "s390x")) {
> + /* For s390x, fake a kernel signature */
> + const uint8_t psw[] = {
> + 0x00, 0x08, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00
> + };
> + const uint8_t 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 */
> + 0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE), /* lhi r4,0xadde */
> + 0x40, 0x40, 0x30, 0x00, /* sth r4,0(r3) */
> + 0xa7, 0xf4, 0xff, 0xfa /* j 0x10010 */
> + };
> + memcpy(boot_sector, psw, 8);
> + memcpy(&boot_sector[0x10000], code, sizeof(code));
Could we avoid overwriting boot sector?
We really should have
x86_boot_sector
ppc64_boot_sector
s390_boot_sector
And write out the correct thing.
Also:
* Q35 machine requires a minimum 0x7e000 bytes disk.
* (bug or feature?)
probably does not apply to s390x, does it?
BTW I'm guessing it actually does not apply to the pxe test
at all.
> }
>
> ret = write(fd, boot_sector, len);
> diff --git a/tests/pxe-test.c b/tests/pxe-test.c
> index cf6e225..0d70afc 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);
> --
> 1.8.3.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x
2017-08-07 20:35 ` Michael S. Tsirkin
@ 2017-08-08 5:19 ` Thomas Huth
2017-08-08 7:26 ` Cornelia Huck
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Huth @ 2017-08-08 5:19 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: qemu-devel, Cornelia Huck, Jason Wang, Christian Borntraeger,
Victor Kaplansky
On 07.08.2017 22:35, Michael S. Tsirkin wrote:
> On Thu, Aug 03, 2017 at 03:30:19PM +0200, Thomas Huth wrote:
>> 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>
>> ---
>> Since this only adds a test, I guess this could still be included
>> for 2.10 ... otherwise, I think it's also OK to simply postpone this
>> to 2.11 instead
>
> I think 2.11 is preferable.
>
>> tests/Makefile.include | 1 +
>> tests/boot-sector.c | 25 ++++++++++++++++++++++---
>> tests/pxe-test.c | 7 +++++++
>> 3 files changed, 30 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/Makefile.include b/tests/Makefile.include
>> index 59e536b..f9af5e3 100644
>> --- a/tests/Makefile.include
>> +++ b/tests/Makefile.include
>> @@ -337,6 +337,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-y += 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 e3880f4..87a8fb5 100644
>> --- a/tests/boot-sector.c
>> +++ b/tests/boot-sector.c
>> @@ -21,6 +21,7 @@
>> #define SIGNATURE 0xdead
>> #define SIGNATURE_OFFSET 0x10
>> #define BOOT_SECTOR_ADDRESS 0x7c00
>> +#define SIGNATURE_ADDR (BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET)
>>
>> /* Boot sector code: write SIGNATURE into memory,
>> * then halt.
>> @@ -73,6 +74,7 @@ int boot_sector_init(char *fname)
>> {
>> int fd, ret;
>> size_t len = sizeof boot_sector;
>> + const char *arch = qtest_get_arch();
>>
>> fd = mkstemp(fname);
>> if (fd < 0) {
>> @@ -81,10 +83,27 @@ int boot_sector_init(char *fname)
>> }
>>
>> /* For Open Firmware based system, we can use a Forth script instead */
>> - if (strcmp(qtest_get_arch(), "ppc64") == 0) {
>> + if (g_str_equal(arch, "ppc64")) {
>> len = sprintf((char *)boot_sector, "\\ Bootscript\n%x %x c! %x %x c!\n",
>> - LOW(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET,
>> - HIGH(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);
>> + LOW(SIGNATURE), SIGNATURE_ADDR,
>> + HIGH(SIGNATURE), SIGNATURE_ADDR + 1);
>> + } else if (g_str_equal(arch, "s390x")) {
>> + /* For s390x, fake a kernel signature */
>> + const uint8_t psw[] = {
>> + 0x00, 0x08, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00
>> + };
>> + const uint8_t 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 */
>> + 0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE), /* lhi r4,0xadde */
>> + 0x40, 0x40, 0x30, 0x00, /* sth r4,0(r3) */
>> + 0xa7, 0xf4, 0xff, 0xfa /* j 0x10010 */
>> + };
>> + memcpy(boot_sector, psw, 8);
>> + memcpy(&boot_sector[0x10000], code, sizeof(code));
>
>
> Could we avoid overwriting boot sector?
> We really should have
> x86_boot_sector
> ppc64_boot_sector
> s390_boot_sector
>
> And write out the correct thing.
Ok, I don't mind either way ... I can try to come up with a patch.
> Also:
> * Q35 machine requires a minimum 0x7e000 bytes disk.
> * (bug or feature?)
>
> probably does not apply to s390x, does it?
We can also just load 0x10000 + sizeof(code) bytes here. I'll fix it.
Cornelia, please unqueue the patch, I'll send a v2...
Thomas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x
2017-08-08 5:19 ` Thomas Huth
@ 2017-08-08 7:26 ` Cornelia Huck
0 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-08-08 7:26 UTC (permalink / raw)
To: Thomas Huth
Cc: Michael S. Tsirkin, qemu-devel, Jason Wang,
Christian Borntraeger, Victor Kaplansky
On Tue, 8 Aug 2017 07:19:54 +0200
Thomas Huth <thuth@redhat.com> wrote:
> On 07.08.2017 22:35, Michael S. Tsirkin wrote:
> > On Thu, Aug 03, 2017 at 03:30:19PM +0200, Thomas Huth wrote:
> >> 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>
> >> @@ -81,10 +83,27 @@ int boot_sector_init(char *fname)
> >> }
> >>
> >> /* For Open Firmware based system, we can use a Forth script instead */
> >> - if (strcmp(qtest_get_arch(), "ppc64") == 0) {
> >> + if (g_str_equal(arch, "ppc64")) {
> >> len = sprintf((char *)boot_sector, "\\ Bootscript\n%x %x c! %x %x c!\n",
> >> - LOW(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET,
> >> - HIGH(SIGNATURE), BOOT_SECTOR_ADDRESS + SIGNATURE_OFFSET + 1);
> >> + LOW(SIGNATURE), SIGNATURE_ADDR,
> >> + HIGH(SIGNATURE), SIGNATURE_ADDR + 1);
> >> + } else if (g_str_equal(arch, "s390x")) {
> >> + /* For s390x, fake a kernel signature */
> >> + const uint8_t psw[] = {
> >> + 0x00, 0x08, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00
> >> + };
> >> + const uint8_t 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 */
> >> + 0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE), /* lhi r4,0xadde */
> >> + 0x40, 0x40, 0x30, 0x00, /* sth r4,0(r3) */
> >> + 0xa7, 0xf4, 0xff, 0xfa /* j 0x10010 */
> >> + };
> >> + memcpy(boot_sector, psw, 8);
> >> + memcpy(&boot_sector[0x10000], code, sizeof(code));
> >
> >
> > Could we avoid overwriting boot sector?
> > We really should have
> > x86_boot_sector
> > ppc64_boot_sector
> > s390_boot_sector
> >
> > And write out the correct thing.
That sounds good.
>
> Ok, I don't mind either way ... I can try to come up with a patch.
>
> > Also:
> > * Q35 machine requires a minimum 0x7e000 bytes disk.
> > * (bug or feature?)
> >
> > probably does not apply to s390x, does it?
>
> We can also just load 0x10000 + sizeof(code) bytes here. I'll fix it.
>
> Cornelia, please unqueue the patch, I'll send a v2...
OK, I had not yet pushed out anyway.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-08-08 7:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-03 13:30 [Qemu-devel] [PATCH] tests/pxe: Check virtio-net-ccw on s390x Thomas Huth
2017-08-03 15:20 ` Cornelia Huck
2017-08-07 16:09 ` Cornelia Huck
2017-08-07 20:35 ` Michael S. Tsirkin
2017-08-08 5:19 ` Thomas Huth
2017-08-08 7:26 ` 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.