On 02/08/2018 02:09 PM, Thomas Huth wrote:
From: Wei Huang <w...@redhat.com>

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

Signed-off-by: Wei Huang <w...@redhat.com>
[thuth: Fixed contextual conflict with the hppa patch]
Signed-off-by: Thomas Huth <th...@redhat.com>
---
  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, #0x9000000 */
+    0x41, 0x00, 0x00, 0x39,                 /* strb    w1, [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 <ebl...@redhat.com>

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

Reply via email to