From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.33) id 1BN1j7-00058F-Rx for qemu-devel@nongnu.org; Sun, 09 May 2004 23:45:14 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.33) id 1BN1ib-0004vS-Md for qemu-devel@nongnu.org; Sun, 09 May 2004 23:45:12 -0400 Received: from [212.16.62.51] (helo=mail.13thfloor.at) by monty-python.gnu.org with esmtp (Exim 4.33) id 1BN1gk-0003r9-An for qemu-devel@nongnu.org; Sun, 09 May 2004 23:42:46 -0400 Date: Mon, 10 May 2004 05:42:45 +0200 From: Herbert Poetzl Subject: Re: [Qemu-devel] Here is a patch to build qemu with powerpc (system) support on win32 Message-ID: <20040510034245.GA25096@MAIL.13thfloor.at> References: <409EC554.9060103@olifantasia.com> <664A7F9C-A225-11D8-81BF-000A95EB7FDC@umich.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <664A7F9C-A225-11D8-81BF-000A95EB7FDC@umich.edu> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Satadru Pramanik Cc: qemu-devel@nongnu.org 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 >{ > > ((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 > >+#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 >+{ > >+ ((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 > >Qemu-devel@nongnu.org > >http://mail.nongnu.org/mailman/listinfo/qemu-devel > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://mail.nongnu.org/mailman/listinfo/qemu-devel