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: 回复: Status of 'unicore32' architecture in Linux kernel
[...] > > > > > > > > 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. > > > > - The qemu emulation only accepts a built-in initramfs. > > Yes, github version only support built-in initramfs. > > NFS+LFS could be also supported, and puv3-pci sim should be added at first. > > > > > - The only working image is arch/unicore32/boot/zImage. > > > All other variants, arch/unicore32/boot/Image and vmlinux, cause a > > > crash. > > > The same (or a similar) crash is also seen if I don't provide a built-in > > > kernel command line and try to load zImage. > > Sorry for that. That should be fixed. > > > > > - There is no networking. There is another patch in the github linux > > > respository [4] which is not available upstream. The driver was > > > submitted > > > for integration back in 2011 [5] but it was never accepted or merged. > > Yes, exactly. > > Too bad. Not exactly necessary for our current scope of testing, but it would > be > nice to be able to test networking. I'll review and submit networking code again. Or, maybe pci-nic function, to support qemu as well. > > > Thanks Guenter. > > > You are welcome. Thanks for the feedback. > > Guenter 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: 回复: Status of 'unicore32' architecture in Linux kernel
[...] 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. - The qemu emulation only accepts a built-in initramfs. Yes, github version only support built-in initramfs. NFS+LFS could be also supported, and puv3-pci sim should be added at first. - The only working image is arch/unicore32/boot/zImage. All other variants, arch/unicore32/boot/Image and vmlinux, cause a crash. The same (or a similar) crash is also seen if I don't provide a built-in kernel command line and try to load zImage. Sorry for that. That should be fixed. - There is no networking. There is another patch in the github linux respository [4] which is not available upstream. The driver was submitted for integration back in 2011 [5] but it was never accepted or merged. Yes, exactly. Too bad. Not exactly necessary for our current scope of testing, but it would be nice to be able to test networking. I'll review and submit networking code again. Or, maybe pci-nic function, to support qemu as well. Thanks Guenter. You are welcome. Thanks for the feedback. Guenter 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: 回复: 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/