qemu-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]