[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Here is a patch to build qemu with powerpc (system) sup
From: |
Herbert Poetzl |
Subject: |
Re: [Qemu-devel] Here is a patch to build qemu with powerpc (system) support on win32 |
Date: |
Mon, 10 May 2004 05:42:45 +0200 |
User-agent: |
Mutt/1.4.1i |
On Sun, May 09, 2004 at 09:57:31PM -0400, Satadru Pramanik wrote:
> Has anybody been able to run MacOnLinux inside qemu's ppc emulation?
hmm, please enlighten me, how would that be
better than either
- run MOL on a PPC linux or
- run MacOS inside QEMU
> ;)
>
> If so, this development could be very interesting...
hmm, probably ... ;)
TIA,
Herbert
> Satadru
>
> On May 9, 2004, at 7:57 PM, Martin wrote:
>
> >I mad a little patch to be able to enable powerpc system emulation on
> >windows
> >The patch is against qemu 0.5.5.
> >Just run configure with
> >./configure --target-list=i386-softmmu ppc-softmmu
> >(Which is the default with this patch)
> >and it builds both qemu.exe (which is i386 system emulation) and
> >qemu-system-ppc.exe (which is ppc system emulation)
> >
> >I tested it with the VGA framebuffer enabled linux kernel zIamge and
> >the debian install disk on Jocelyns page
> >http://jocelyn.mayer.free.fr/qemu-ppc/
> >
> >It seems to work for me.
> >I used the commandline:
> >qemu-system-ppc.exe --kernel zImage_vgafb.prep --fda
> >debian_install_root.bin --boot a
> >and it just boots.
> >
> >If anyone is interested I can make my binary qemu-system-ppc.exe
> >available but I think it would be better to place one on the Fabrices
> >qemu homepage or on Jocelyns qemu-ppc homepage if it is ready for
> >primetime
> >
> >Strange thing about the patch is I had to manually set the env struct
> >to zero in cpu_ppc_init (in translate.c)
> >for(i=0;i<sizeof(CPUPPCState);i++)
> >{
> > ((char*) env)[i]=0;
> >}
> >
> >With the standard
> >memset(env, 0, sizeof(CPUPPCState));
> >The compiler complained about not being able to free a register.
> >Greetings,
> >Martin
> >
> >diff -urbN qemu-0.5.5/configure qemu-0.5.5-win32/configure
> >--- qemu-0.5.5/configure 2004-05-08 16:51:18.000000000 +0200
> >+++ qemu-0.5.5-win32/configure 2004-05-10 00:48:46.000000000 +0200
> >@@ -140,7 +140,7 @@
> > strip="${cross_prefix}${strip}"
> >
> > if test "$mingw32" = "yes" ; then
> >- target_list="i386-softmmu"
> >+ target_list="i386-softmmu ppc-softmmu"
> > EXESUF=".exe"
> > gdbstub="no"
> > fi
> >diff -urbN qemu-0.5.5/hw/m48t59.c qemu-0.5.5-win32/hw/m48t59.c
> >--- qemu-0.5.5/hw/m48t59.c 2004-05-08 16:51:18.000000000 +0200
> >+++ qemu-0.5.5-win32/hw/m48t59.c 2004-05-10 00:20:44.000000000 +0200
> >@@ -67,7 +67,11 @@
> > time_t t;
> >
> > t = time(NULL) + NVRAM->time_offset;
> >- localtime_r(&t, tm);
> >+ #ifdef WIN32
> >+ memcpy(tm,localtime(&t),sizeof(*tm));
> >+ #else
> >+ localtime_r (&t, &local) ;
> >+ #endif
> > }
> >
> > static void set_time (m48t59_t *NVRAM, struct tm *tm)
> >@@ -129,7 +133,11 @@
> >
> > static void get_alarm (m48t59_t *NVRAM, struct tm *tm)
> > {
> >- localtime_r(&NVRAM->alarm, tm);
> >+ #ifdef WIN32
> >+ memcpy(tm,localtime(&NVRAM->alarm),sizeof(*tm));
> >+ #else
> >+ localtime_r (&NVRAM->alarm, tm);
> >+ #endif
> > }
> >
> > static void set_alarm (m48t59_t *NVRAM, struct tm *tm)
> >diff -urbN qemu-0.5.5/target-ppc/helper.c
> >qemu-0.5.5-win32/target-ppc/helper.c
> >--- qemu-0.5.5/target-ppc/helper.c 2004-05-08 16:51:18.000000000 +0200
> >+++ qemu-0.5.5-win32/target-ppc/helper.c 2004-05-10
> >00:02:46.000000000 +0200
> >@@ -17,7 +17,13 @@
> > * License along with this library; if not, write to the Free Software
> > * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> >02111-1307 USA
> > */
> >+
> >+#ifdef _WIN32
> >+#define PROT_READ 1
> >+#define PROT_WRITE 2
> >+#else
> > #include <sys/mman.h>
> >+#endif
> >
> > #include "exec.h"
> > #if defined (USE_OPEN_FIRMWARE)
> >diff -urbN qemu-0.5.5/target-ppc/translate.c
> >qemu-0.5.5-win32/target-ppc/translate.c
> >--- qemu-0.5.5/target-ppc/translate.c 2004-05-08 16:51:18.000000000
> >+0200
> >+++ qemu-0.5.5-win32/target-ppc/translate.c 2004-05-10
> >01:30:06.000000000 +0200
> >@@ -2933,13 +2933,21 @@
> > CPUPPCState *cpu_ppc_init(void)
> > {
> > CPUPPCState *env;
> >+ int i;
> >
> > cpu_exec_init();
> >
> > env = malloc(sizeof(CPUPPCState));
> > if (!env)
> > return NULL;
> >+#ifdef WIN32
> >+for(i=0;i<sizeof(CPUPPCState);i++)
> >+{
> >+ ((char*) env)[i]=0;
> >+}
> >+#else
> > memset(env, 0, sizeof(CPUPPCState));
> >+#endif
> > #if !defined(CONFIG_USER_ONLY) && defined (USE_OPEN_FIRMWARE)
> > setup_machine(env, 0);
> > #else
> >@@ -2961,7 +2969,6 @@
> > msr_pr = 1;
> > #endif
> > env->access_type = ACCESS_INT;
> >-
> > return env;
> > }
> >
> >_______________________________________________
> >Qemu-devel mailing list
> >address@hidden
> >http://mail.nongnu.org/mailman/listinfo/qemu-devel
> _______________________________________________
> Qemu-devel mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/qemu-devel