Re: [Qemu-devel] [PATCH 14/14] tests/boot-serial-test: Add support for the aarch64 virt machine

2018-02-08 Thread Eric Blake

On 02/08/2018 02:09 PM, Thomas Huth wrote:

From: Wei Huang 

This patch adds a small binary kernel to test aarch64 virt machine's
UART.

Signed-off-by: Wei Huang 
[thuth: Fixed contextual conflict with the hppa patch]
Signed-off-by: Thomas Huth 
---
  tests/Makefile.include   | 1 +
  tests/boot-serial-test.c | 9 +
  2 files changed, 10 insertions(+)




+++ b/tests/boot-serial-test.c
@@ -55,6 +55,13 @@ static const uint8_t bios_raspi2[] = {
  0x00, 0x10, 0x20, 0x3f, /* 0x3f201000 = UART0 base addr */
  };
  
+static const uint8_t kernel_aarch64[] = {

+0x81, 0x0a, 0x80, 0x52, /* mov w1, #0x54 */
+0x02, 0x20, 0xa1, 0xd2, /* mov x2, #0x900 */
+0x41, 0x00, 0x00, 0x39, /* strbw1, [x2] */
+0xfd, 0xff, 0xff, 0x17, /* b   -12 (loop) */
+};


Code like this reminds me of the 1984 IOCCC winner 
(https://www.ioccc.org/1984/mullender/mullender.c) - there's just 
something strangely satisfying about an array of integers being compiled 
into executable code ;)


Reviewed-by: Eric Blake 

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



[Qemu-devel] [PATCH 14/14] tests/boot-serial-test: Add support for the aarch64 virt machine

2018-02-08 Thread Thomas Huth
From: Wei Huang 

This patch adds a small binary kernel to test aarch64 virt machine's
UART.

Signed-off-by: Wei Huang 
[thuth: Fixed contextual conflict with the hppa patch]
Signed-off-by: Thomas Huth 
---
 tests/Makefile.include   | 1 +
 tests/boot-serial-test.c | 9 +
 2 files changed, 10 insertions(+)

diff --git a/tests/Makefile.include b/tests/Makefile.include
index 6609276..cc7e7dc 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -371,6 +371,7 @@ gcov-files-arm-y += hw/timer/arm_mptimer.c
 check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
 
 check-qtest-aarch64-y = tests/numa-test$(EXESUF)
+check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF)
 
 check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
 
diff --git a/tests/boot-serial-test.c b/tests/boot-serial-test.c
index 72873ee..511bf31 100644
--- a/tests/boot-serial-test.c
+++ b/tests/boot-serial-test.c
@@ -55,6 +55,13 @@ static const uint8_t bios_raspi2[] = {
 0x00, 0x10, 0x20, 0x3f, /* 0x3f201000 = UART0 base addr */
 };
 
+static const uint8_t kernel_aarch64[] = {
+0x81, 0x0a, 0x80, 0x52, /* mov w1, #0x54 */
+0x02, 0x20, 0xa1, 0xd2, /* mov x2, #0x900 */
+0x41, 0x00, 0x00, 0x39, /* strbw1, [x2] */
+0xfd, 0xff, 0xff, 0x17, /* b   -12 (loop) */
+};
+
 typedef struct testdef {
 const char *arch;   /* Target architecture */
 const char *machine;/* Name of the machine */
@@ -95,6 +102,8 @@ static testdef_t tests[] = {
 { "moxie", "moxiesim", "", "TT", sizeof(bios_moxiesim), 0, bios_moxiesim },
 { "arm", "raspi2", "", "TT", sizeof(bios_raspi2), 0, bios_raspi2 },
 { "hppa", "hppa", "", "SeaBIOS wants SYSTEM HALT" },
+{ "aarch64", "virt", "-cpu cortex-a57", "TT", sizeof(kernel_aarch64),
+  kernel_aarch64 },
 
 { NULL }
 };
-- 
1.8.3.1