On Wed, Sep 03, 2014 at 08:09:28AM +0800, Xuetao Guan wrote: > > [...] > > > > > > > > > > > unicore32: Add ocd console and qemu-defconfig to support qemu simulator > > > > This patch adds a primitive OCD console to communicate with > > > > qemu. > > > > The same code is already used for early console support. > > > > > > Do you mean there's the same/similar code in QEMU. > > > > > No, I mean that the ocd functions in the linux kernel (such as ocd_putc) are > > used by both earlyprintk and the ocd console code. > Yes. By the way, it's only for qemu and fpga debug. > > > > > > > > > > > With this patch added, and with qemu_defconfig as provided by the same > > > > patch, > > > > it is possible to build and load a unicore32 image in qemu using the > > > > following > > > > qemu command line. > > > > > > > > qemu-system-unicore32 -curses -M puv3 -m 512 -kernel > > > > arch/unicore32/boot/zImage > > > > > > > > Caveats: > > > > - The use of -nographic instead of -curses causes a qemu crash > > > Yes, since qemu curses code was modified to meet the simple OCD console > > > requirement. > > > > > The lack of support for -nographic is a problem for scripted testing. > > The issue is that we have to interpret console output for scripted testing, > > and having to go through curses makes that a bit difficult. > > > > Wonder if '-nographic' can be modeled as '-curses' with no available > > terminal > > configuration. At least in theory that should work, but executing the above > > command with TERM=dumb yields no output. Wonder how difficult it would be to > > change that. > > I see. I'll try to make -nographic work anyway. > Please try the following patch. That seems to do it. I am sure it can be improved, but it is a start.
Thanks, Guenter --- >From a7c89177b3c00e4c16bea25a0b4b2f9dc511e07b Mon Sep 17 00:00:00 2001 From: Guenter Roeck <li...@roeck-us.net> Date: Tue, 2 Sep 2014 20:55:02 -0700 Subject: [PATCH] qemu: unicore32: Add support for non-curses display Add basic support for DT_NONE and DT_NOGRAPHIC display types. Signed-off-by: Guenter Roeck <li...@roeck-us.net> --- target-unicore32/helper.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c index e5ebbf4..dda3772 100644 --- a/target-unicore32/helper.c +++ b/target-unicore32/helper.c @@ -13,6 +13,7 @@ #include "exec/gdbstub.h" #include "exec/helper-proto.h" #include "qemu/host-utils.h" +#include "sysemu/sysemu.h" #ifndef CONFIG_USER_ONLY #include "ui/console.h" #endif @@ -223,7 +224,18 @@ static void putc_on_screen(unsigned char ch) void helper_cp1_putc(target_ulong x) { - putc_on_screen((unsigned char)x); /* Output to screen */ + switch(display_type) { + case DT_CURSES: + putc_on_screen((unsigned char)x); /* Output to screen */ + break; + case DT_NOGRAPHIC: + case DT_NONE: + putchar((int)x); + break; + default: + break; + } + DPRINTF("%c", x); /* Output to stdout */ } #endif -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/