Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/08/2014 05:58 PM, Xuetao Guan wrote: - Guenter Roeck 写道: On 09/08/2014 05:57 AM, Xuetao Guan wrote: Whatever is more recent. Guess you'll have to either update the toolchain or the kernel. If the plan is to update the kernel, can you send me a patch to do that so I can test it ? Thanks, Guenter I'll update unicore kernel at first, and cc patches to you. Ok. Thanks, Guenter -- 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/
回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck 写道: > On 09/08/2014 05:57 AM, Xuetao Guan wrote: > > Whatever is more recent. Guess you'll have to either update the toolchain > or the kernel. If the plan is to update the kernel, can you send me a patch > to do that so I can test it ? > > Thanks, > Guenter > I'll update unicore kernel at first, and cc patches to you. Thanks. Xuetao -- 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/
Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/08/2014 05:57 AM, Xuetao Guan wrote: - Guenter Roeck 写道: On 09/04/2014 11:13 PM, Xuetao Guan wrote: Hi, I made everything I have available at http://server.roeck-us.net/qemu/unicore32/. I tried multiple variants for creating the root file system, including the one on https://github.com/gxt/UniCore32.git and the one using mkrootfs.sh in the link above. No difference - I always see the same crash. Note that the 'init' program is loading, but crashes with above error (0x000b is SIGSEGV unless I am missing something). Note that I used the latest qemu for unicore from upstream sources; I was unable to compile it from g...@github.com:gxt/QEMU.git. Qemu configuration did not seem to make a difference. The toolchain was extracted from uc4-1.0.5-hard.tgz. Hope this helps, Guenter I guess you used the newest kernel to run busybox. However, as for unicore32, the newest kernel uses different ABI with uc4-1.0.5 toolchain. I'm sorry to make it so confusing. I'll update and submit another-ABI patches asap. Whatever is more recent. Guess you'll have to either update the toolchain or the kernel. If the plan is to update the kernel, can you send me a patch to do that so I can test it ? Thanks, Guenter -- 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/
回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck 写道: > On 09/04/2014 11:13 PM, Xuetao Guan wrote: > Hi, > > I made everything I have available at > http://server.roeck-us.net/qemu/unicore32/. > I tried multiple variants for creating the root file system, including the one > on https://github.com/gxt/UniCore32.git and the one using mkrootfs.sh in > the link above. No difference - I always see the same crash. Note that the > 'init' program is loading, but crashes with above error (0x000b is SIGSEGV > unless I am missing something). > > Note that I used the latest qemu for unicore from upstream sources; I was > unable > to compile it from g...@github.com:gxt/QEMU.git. Qemu configuration did not > seem > to make a difference. The toolchain was extracted from uc4-1.0.5-hard.tgz. > > Hope this helps, > Guenter > I guess you used the newest kernel to run busybox. However, as for unicore32, the newest kernel uses different ABI with uc4-1.0.5 toolchain. I'm sorry to make it so confusing. I'll update and submit another-ABI patches asap. Thanks, Xutao -- 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/
回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck li...@roeck-us.net 写道: On 09/04/2014 11:13 PM, Xuetao Guan wrote: Hi, I made everything I have available at http://server.roeck-us.net/qemu/unicore32/. I tried multiple variants for creating the root file system, including the one on https://github.com/gxt/UniCore32.git and the one using mkrootfs.sh in the link above. No difference - I always see the same crash. Note that the 'init' program is loading, but crashes with above error (0x000b is SIGSEGV unless I am missing something). Note that I used the latest qemu for unicore from upstream sources; I was unable to compile it from g...@github.com:gxt/QEMU.git. Qemu configuration did not seem to make a difference. The toolchain was extracted from uc4-1.0.5-hard.tgz. Hope this helps, Guenter I guess you used the newest kernel to run busybox. However, as for unicore32, the newest kernel uses different ABI with uc4-1.0.5 toolchain. I'm sorry to make it so confusing. I'll update and submit another-ABI patches asap. Thanks, Xutao -- 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/
Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/08/2014 05:57 AM, Xuetao Guan wrote: - Guenter Roeck li...@roeck-us.net 写道: On 09/04/2014 11:13 PM, Xuetao Guan wrote: Hi, I made everything I have available at http://server.roeck-us.net/qemu/unicore32/. I tried multiple variants for creating the root file system, including the one on https://github.com/gxt/UniCore32.git and the one using mkrootfs.sh in the link above. No difference - I always see the same crash. Note that the 'init' program is loading, but crashes with above error (0x000b is SIGSEGV unless I am missing something). Note that I used the latest qemu for unicore from upstream sources; I was unable to compile it from g...@github.com:gxt/QEMU.git. Qemu configuration did not seem to make a difference. The toolchain was extracted from uc4-1.0.5-hard.tgz. Hope this helps, Guenter I guess you used the newest kernel to run busybox. However, as for unicore32, the newest kernel uses different ABI with uc4-1.0.5 toolchain. I'm sorry to make it so confusing. I'll update and submit another-ABI patches asap. Whatever is more recent. Guess you'll have to either update the toolchain or the kernel. If the plan is to update the kernel, can you send me a patch to do that so I can test it ? Thanks, Guenter -- 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/
回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck li...@roeck-us.net 写道: On 09/08/2014 05:57 AM, Xuetao Guan wrote: Whatever is more recent. Guess you'll have to either update the toolchain or the kernel. If the plan is to update the kernel, can you send me a patch to do that so I can test it ? Thanks, Guenter I'll update unicore kernel at first, and cc patches to you. Thanks. Xuetao -- 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/
Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/08/2014 05:58 PM, Xuetao Guan wrote: - Guenter Roeck li...@roeck-us.net 写道: On 09/08/2014 05:57 AM, Xuetao Guan wrote: Whatever is more recent. Guess you'll have to either update the toolchain or the kernel. If the plan is to update the kernel, can you send me a patch to do that so I can test it ? Thanks, Guenter I'll update unicore kernel at first, and cc patches to you. Ok. Thanks, Guenter -- 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/
Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/04/2014 11:13 PM, Xuetao Guan wrote: - Guenter Roeck 写道: On 09/03/2014 01:32 AM, Xuetao Guan wrote: [ ... ] Please try the following patch. That seems to do it. I am sure it can be improved, but it is a start. Thanks, Guenter Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Here is where I am. User space code (busybox) was compiled using the unicore toolchain available on the web. ... serio: i8042 KBD port at 0x6eb00060,0x6eb00064 irq 22 mousedev: PS/2 mouse device common for all mice Enable UniCore-F64 support. Warning: unable to open an initial console. Freeing unused kernel memory: 1156K (c0408000 - c0529000) Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b The kernel tries to execute the init program, which fails with SIGSEGV. I confirmed that the init program is loaded and starts to execute. Any idea what might cause such a problem ? Thanks, Guenter 'slink /init /bin/busybox 777 0 0' should be inserted in initramfs config Also, I recommend compile busybox statically for initramfs. I need more information, including full kmsg and initramfs configs Hi, I made everything I have available at http://server.roeck-us.net/qemu/unicore32/. I tried multiple variants for creating the root file system, including the one on https://github.com/gxt/UniCore32.git and the one using mkrootfs.sh in the link above. No difference - I always see the same crash. Note that the 'init' program is loading, but crashes with above error (0x000b is SIGSEGV unless I am missing something). Note that I used the latest qemu for unicore from upstream sources; I was unable to compile it from g...@github.com:gxt/QEMU.git. Qemu configuration did not seem to make a difference. The toolchain was extracted from uc4-1.0.5-hard.tgz. Hope this helps, Guenter -- 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/
Re: 回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/04/2014 11:13 PM, Xuetao Guan wrote: - Guenter Roeck li...@roeck-us.net 写道: On 09/03/2014 01:32 AM, Xuetao Guan wrote: [ ... ] Please try the following patch. That seems to do it. I am sure it can be improved, but it is a start. Thanks, Guenter Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Here is where I am. User space code (busybox) was compiled using the unicore toolchain available on the web. ... serio: i8042 KBD port at 0x6eb00060,0x6eb00064 irq 22 mousedev: PS/2 mouse device common for all mice Enable UniCore-F64 support. Warning: unable to open an initial console. Freeing unused kernel memory: 1156K (c0408000 - c0529000) Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b The kernel tries to execute the init program, which fails with SIGSEGV. I confirmed that the init program is loaded and starts to execute. Any idea what might cause such a problem ? Thanks, Guenter 'slink /init /bin/busybox 777 0 0' should be inserted in initramfs config Also, I recommend compile busybox statically for initramfs. I need more information, including full kmsg and initramfs configs Hi, I made everything I have available at http://server.roeck-us.net/qemu/unicore32/. I tried multiple variants for creating the root file system, including the one on https://github.com/gxt/UniCore32.git and the one using mkrootfs.sh in the link above. No difference - I always see the same crash. Note that the 'init' program is loading, but crashes with above error (0x000b is SIGSEGV unless I am missing something). Note that I used the latest qemu for unicore from upstream sources; I was unable to compile it from g...@github.com:gxt/QEMU.git. Qemu configuration did not seem to make a difference. The toolchain was extracted from uc4-1.0.5-hard.tgz. Hope this helps, Guenter -- 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/
Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/03/2014 01:32 AM, Xuetao Guan wrote: [ ... ] Please try the following patch. That seems to do it. I am sure it can be improved, but it is a start. Thanks, Guenter Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Here is where I am. User space code (busybox) was compiled using the unicore toolchain available on the web. ... serio: i8042 KBD port at 0x6eb00060,0x6eb00064 irq 22 mousedev: PS/2 mouse device common for all mice Enable UniCore-F64 support. Warning: unable to open an initial console. Freeing unused kernel memory: 1156K (c0408000 - c0529000) Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b The kernel tries to execute the init program, which fails with SIGSEGV. I confirmed that the init program is loaded and starts to execute. Any idea what might cause such a problem ? Thanks, Guenter -- 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/
回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck 写道: > On 09/03/2014 01:32 AM, Xuetao Guan wrote: > > > [ ... ] > > >> Please try the following patch. That seems to do it. > >> I am sure it can be improved, but it is a start. > >> > >> Thanks, > >> Guenter > > > > Thanks. I'll test it. > > BTW, Qemu codestyle is different, and tab should be replaced with blanks. > > > > Here is where I am. User space code (busybox) was compiled > using the unicore toolchain available on the web. > > ... > serio: i8042 KBD port at 0x6eb00060,0x6eb00064 irq 22 > mousedev: PS/2 mouse device common for all mice > Enable UniCore-F64 support. > Warning: unable to open an initial console. > Freeing unused kernel memory: 1156K (c0408000 - c0529000) > > Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b > > ---[ end Kernel panic - not syncing: Attempted to kill init! > exitcode=0x000b > > The kernel tries to execute the init program, which fails with SIGSEGV. > I confirmed that the init program is loaded and starts to execute. > > Any idea what might cause such a problem ? > > Thanks, > Guenter > 'slink /init /bin/busybox 777 0 0' should be inserted in initramfs config Also, I recommend compile busybox statically for initramfs. I need more information, including full kmsg and initramfs configs My qemu commands as following. Maybe useful. qemu-new: @test -d $(DIR_WORKING)/qemu-unicore32 || \ mkdir -p $(DIR_WORKING)/qemu-unicore32 @echo "Remove old qemu repo ..." @rm -fr $(DIR_WORKING)/qemu @cd $(DIR_WORKING); git clone $(QEMU_GITREPO) @cd $(DIR_WORKING)/qemu;\ git br unicore32 origin/unicore32; \ git co unicore32 qemu-make: @echo "Configure qemu ..." @cd $(DIR_WORKING)/qemu; ./configure\ --enable-trace-backend=stderr \ --target-list=$(QEMU_TARGETS) \ --enable-debug \ --disable-sdl \ --interp-prefix=$(DIR_GNU_UC) \ --prefix=$(DIR_WORKING)/qemu-unicore32 \ >> $(QEMU_BUILDLOG) 2>&1 @echo "Make qemu and make install ..." @make -C $(DIR_WORKING)/qemu -j4 >> $(QEMU_BUILDLOG) 2>&1 @make -C $(DIR_WORKING)/qemu install >> $(QEMU_BUILDLOG) 2>&1 qemu-run: @echo "Remove old log file" @rm -fr $(QEMU_TRACELOG) @echo "Running QEMU in this tty ..." @$(DIR_WORKING)/qemu-unicore32/bin/qemu-system-unicore32\ -curses \ -M puv3 \ -m 512 \ -icount 0 \ -kernel $(DIR_WORKING)/zImage \ -net nic\ -net tap,ifname=tap_$(USER),script=no,downscript=no \ -append "root=/dev/nfs nfsroot=192.168.200.161:/export/guestroot/,tcp rw ip=192.168.122.4"\ 2> $(QEMU_TRACELOG) -- 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/
回复: Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck li...@roeck-us.net 写道: On 09/03/2014 01:32 AM, Xuetao Guan wrote: [ ... ] Please try the following patch. That seems to do it. I am sure it can be improved, but it is a start. Thanks, Guenter Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Here is where I am. User space code (busybox) was compiled using the unicore toolchain available on the web. ... serio: i8042 KBD port at 0x6eb00060,0x6eb00064 irq 22 mousedev: PS/2 mouse device common for all mice Enable UniCore-F64 support. Warning: unable to open an initial console. Freeing unused kernel memory: 1156K (c0408000 - c0529000) Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b The kernel tries to execute the init program, which fails with SIGSEGV. I confirmed that the init program is loaded and starts to execute. Any idea what might cause such a problem ? Thanks, Guenter 'slink /init /bin/busybox 777 0 0' should be inserted in initramfs config Also, I recommend compile busybox statically for initramfs. I need more information, including full kmsg and initramfs configs My qemu commands as following. Maybe useful. qemu-new: @test -d $(DIR_WORKING)/qemu-unicore32 || \ mkdir -p $(DIR_WORKING)/qemu-unicore32 @echo Remove old qemu repo ... @rm -fr $(DIR_WORKING)/qemu @cd $(DIR_WORKING); git clone $(QEMU_GITREPO) @cd $(DIR_WORKING)/qemu;\ git br unicore32 origin/unicore32; \ git co unicore32 qemu-make: @echo Configure qemu ... @cd $(DIR_WORKING)/qemu; ./configure\ --enable-trace-backend=stderr \ --target-list=$(QEMU_TARGETS) \ --enable-debug \ --disable-sdl \ --interp-prefix=$(DIR_GNU_UC) \ --prefix=$(DIR_WORKING)/qemu-unicore32 \ $(QEMU_BUILDLOG) 21 @echo Make qemu and make install ... @make -C $(DIR_WORKING)/qemu -j4 $(QEMU_BUILDLOG) 21 @make -C $(DIR_WORKING)/qemu install $(QEMU_BUILDLOG) 21 qemu-run: @echo Remove old log file @rm -fr $(QEMU_TRACELOG) @echo Running QEMU in this tty ... @$(DIR_WORKING)/qemu-unicore32/bin/qemu-system-unicore32\ -curses \ -M puv3 \ -m 512 \ -icount 0 \ -kernel $(DIR_WORKING)/zImage \ -net nic\ -net tap,ifname=tap_$(USER),script=no,downscript=no \ -append root=/dev/nfs nfsroot=192.168.200.161:/export/guestroot/,tcp rw ip=192.168.122.4\ 2 $(QEMU_TRACELOG) -- 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/
Re: 回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/03/2014 01:32 AM, Xuetao Guan wrote: [ ... ] Please try the following patch. That seems to do it. I am sure it can be improved, but it is a start. Thanks, Guenter Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Here is where I am. User space code (busybox) was compiled using the unicore toolchain available on the web. ... serio: i8042 KBD port at 0x6eb00060,0x6eb00064 irq 22 mousedev: PS/2 mouse device common for all mice Enable UniCore-F64 support. Warning: unable to open an initial console. Freeing unused kernel memory: 1156K (c0408000 - c0529000) Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b The kernel tries to execute the init program, which fails with SIGSEGV. I confirmed that the init program is loaded and starts to execute. Any idea what might cause such a problem ? Thanks, Guenter -- 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/
回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck 写道: > 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 Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Xuetao > > --- > From a7c89177b3c00e4c16bea25a0b4b2f9dc511e07b Mon Sep 17 00:00:00 2001 > From: Guenter Roeck > 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 > --- > 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/
回复: Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
- Guenter Roeck li...@roeck-us.net 写道: 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 Thanks. I'll test it. BTW, Qemu codestyle is different, and tab should be replaced with blanks. Xuetao --- 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/
Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
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 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 --- 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/
Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/02/2014 05:09 PM, 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. Another possibility would be to support "-display none". Unfortunately that also causes qemu to crash :-(. Guenter -- 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/
Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
On 09/02/2014 05:09 PM, 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. Another possibility would be to support -display none. Unfortunately that also causes qemu to crash :-(. Guenter -- 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/
Re: 回复: Re: 回复: Status of 'unicore32' architecture in Linux kernel
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/