diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2019-12-18 14:28:36 +0000 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2020-01-09 11:41:29 +0000 |
commit | 9c354591cae35d91e97244469904ab4483482d34 (patch) | |
tree | c383d3190e58b9e5e18133be35f43b8b3e993c91 /tests/tcg/aarch64/system | |
parent | 8de702cb677c8381fb702cae252d6b69aa4c653b (diff) | |
download | qemu-9c354591cae35d91e97244469904ab4483482d34.zip qemu-9c354591cae35d91e97244469904ab4483482d34.tar.gz qemu-9c354591cae35d91e97244469904ab4483482d34.tar.bz2 |
tests/tcg: add a dumb-as-bricks semihosting console test
We don't run this during check-tcg as we would need to check stuff is
echoed back. However we can still build the binary so people can test
it manually.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tests/tcg/aarch64/system')
-rw-r--r-- | tests/tcg/aarch64/system/semiconsole.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/tcg/aarch64/system/semiconsole.c b/tests/tcg/aarch64/system/semiconsole.c new file mode 100644 index 0000000..bfe7c9e --- /dev/null +++ b/tests/tcg/aarch64/system/semiconsole.c @@ -0,0 +1,38 @@ +/* + * Semihosting Console Test + * + * Copyright (c) 2019 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include <inttypes.h> +#include <minilib.h> + +#define SYS_READC 0x7 + +uintptr_t __semi_call(uintptr_t type, uintptr_t arg0) +{ + register uintptr_t t asm("x0") = type; + register uintptr_t a0 asm("x1") = arg0; + asm("hlt 0xf000" + : "=r" (t) + : "r" (t), "r" (a0)); + + return t; +} + +int main(void) +{ + char c; + + ml_printf("Semihosting Console Test\n"); + ml_printf("hit X to exit:"); + + do { + c = __semi_call(SYS_READC, 0); + __sys_outc(c); + } while (c != 'X'); + + return 0; +} |