qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Here is a patch to build qemu with powerpc (system) support on win32
@ 2004-05-09 23:57 Martin
  2004-05-10  1:57 ` Satadru Pramanik
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Martin @ 2004-05-09 23:57 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1184 bytes --]

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


[-- Attachment #2: qemu-0.5.5-powerpc-win32.patch --]
[-- Type: text/plain, Size: 2495 bytes --]

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;
 }
 

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2004-05-11  3:26 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-05-09 23:57 [Qemu-devel] Here is a patch to build qemu with powerpc (system) support on win32 Martin
2004-05-10  1:57 ` Satadru Pramanik
2004-05-10  3:42   ` Herbert Poetzl
2004-05-10 11:35     ` [Qemu-devel] " Gabriel Ebner
2004-05-10 13:45       ` [Qemu-devel] Mac OS X installer working Jamie Burns
2004-05-10 17:28   ` [Qemu-devel] Here is a patch to build qemu with powerpc (system) support on win32 Satadru Pramanik
2004-05-10 17:29     ` Satadru Pramanik
2004-05-10  8:04 ` [Qemu-devel] Here is a patch to build qemu with powerpc (system)support " kazu
2004-05-10 12:45 ` [Qemu-devel] pearpc (PPC) anyone? Johannes Schindelin
2004-05-10 15:10   ` Karel Gardas
2004-05-10 18:56   ` Fabrice Bellard
2004-05-10 21:40     ` Herbert Poetzl
2004-05-10 23:42       ` Satadru Pramanik
2004-05-10 23:54       ` Stefano Marinelli
2004-05-11  2:56       ` David Holm <dholm@gentoo.org>

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).