From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lvd5P-0002EQ-HG for qemu-devel@nongnu.org; Sun, 19 Apr 2009 15:53:55 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lvd5L-00029l-Rj for qemu-devel@nongnu.org; Sun, 19 Apr 2009 15:53:55 -0400 Received: from [199.232.76.173] (port=51162 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lvd5L-00029U-KP for qemu-devel@nongnu.org; Sun, 19 Apr 2009 15:53:51 -0400 Received: from mail-gx0-f176.google.com ([209.85.217.176]:32868) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Lvd5L-0002Bq-66 for qemu-devel@nongnu.org; Sun, 19 Apr 2009 15:53:51 -0400 Received: by gxk24 with SMTP id 24so3469720gxk.10 for ; Sun, 19 Apr 2009 12:53:50 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1240170424.5659.7.camel@Quad> References: <1239525550.5516.3.camel@Quad> <1240129450.5671.7.camel@Quad> <1240170424.5659.7.camel@Quad> Date: Sun, 19 Apr 2009 12:53:50 -0700 Message-ID: From: Steven Noonan Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] Re: [OpenBIOS] QEMU OpenBIOS booting? Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: The OpenBIOS Mailinglist Cc: Alexander Graf , qemu-devel@nongnu.org On Sun, Apr 19, 2009 at 12:47 PM, Laurent Vivier wro= te: > Le dimanche 19 avril 2009 =E0 11:59 -0700, Steven Noonan a =E9crit : >> On Sun, Apr 19, 2009 at 1:24 AM, Laurent Vivier w= rote: >> > Le dimanche 19 avril 2009 =E0 00:50 -0700, Steven Noonan a =E9crit : >> >> On Tue, Apr 14, 2009 at 10:46 PM, Steven Noonan wrote: >> >> > On Sun, Apr 12, 2009 at 1:39 AM, Laurent Vivier wrote: >> >> >> OpenBIOS is not able to boot MacOS X. >> >> > >> >> > Well, that's a silly limitation. Is there a reason this isn't >> >> > implemented? I see that the Mac-on-Linux OpenBIOS version has such >> >> > support, so it seems strange that the QEMU version does not. >> >> >> >> I don't know if anyone here is actually interested (this list seems >> >> -very- quiet), but... >> > >> > Hi, >> > >> >> I've been hacking at OpenBIOS for a bit, and I got it to properly rea= d >> >> Mac OS X discs (it kept failing because it would hit an Apple >> >> Partition Map header instead of an HFS+ filesystem header). I'm >> >> working on adding an XCOFF loader, too, so it should be able to boot >> >> Mac OS X soon. >> > >> > You can copy it from OpenHackWare. >> > I made some tests and it seems to have some memory conflicts between >> > MacOS kernel and OpenBIOS. > > In fact what I have is a Mach-O loader which load mach_kernel from "/". > >> > Good Luck. >> > >> >> Two more pre-XCOFF loader commits up: >> http://github.com/tycho/openbios/commit/e43daa3447b5ce4a2b05b2f32882e498= 91156200 >> http://github.com/tycho/openbios/commit/7023b78a10f5632fd08d4749615efd3e= 73ab1036 > > Seems good but do you really need to check for embedded XCOFF in this > patch and are you really able to execute the boot-script ? Yes, it does properly execute the boot-script. And no, it doesn't actually _check_ for an XCOFF, despite the comment I added. I suppose these lines could be removed from that patch: + + /* check for an embedded XCOFF binary */ + + /* eat newline */ + if (read_io(fd, tagbuf, 1) < 0) + goto badf; + + /* eat '\x04', ASCII 'end-of-transmission' */ + if (read_io(fd, tagbuf, 1) < 0) + goto badf; + + /* next bytes should be XCOFF magic */ + + /* TODO: Add XCOFF loader here. */ + But they don't have any side effects. They are essentially just prep work for loading an embedded XCOFF which would begin after consuming the two bytes after the CHRP-BOOT block. > > In Panther Install CD, BootX is: > > > > MacRISC MacRISC3 MacRISC4 > > > Boot Loader for Mac OS X. > > > > > ... > > load-base > begin > =A0dup 6 " </CHRP" $=3D if > =A06 + dup 6 " -BOOT>" $=3D if > =A0 8 + true > =A0else > =A0 false > =A0then > =A0else > =A01+ false > =A0then > until > ( xcoff-base ) > load-size over load-base - - > ( xcoff-base xcoff-size ) > load-base swap move > init-program go > > > [...XCOFF HERE] > >