Le dimanche 19 avril 2009 à 13:23 -0700, Steven Noonan a écrit :
On Sun, Apr 19, 2009 at 1:21 PM, Laurent Vivier Laurent@vivier.eu wrote:
Le dimanche 19 avril 2009 à 13:01 -0700, Steven Noonan a écrit :
On Sun, Apr 19, 2009 at 12:47 PM, Laurent Vivier Laurent@lvivier.info wrote:
Le dimanche 19 avril 2009 à 11:59 -0700, Steven Noonan a écrit :
On Sun, Apr 19, 2009 at 1:24 AM, Laurent Vivier Laurent@lvivier.info wrote:
Le dimanche 19 avril 2009 à 00:50 -0700, Steven Noonan a écrit : > On Tue, Apr 14, 2009 at 10:46 PM, Steven Noonan steven@uplinklabs.net wrote: > > On Sun, Apr 12, 2009 at 1:39 AM, Laurent Vivier Laurent@lvivier.info 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 read > 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/e43daa3447b5ce4a2b05b2f32882e4989115... http://github.com/tycho/openbios/commit/7023b78a10f5632fd08d4749615efd3e73ab...
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 ?
Oh, I should say that it does _execute_ the boot-script, but I don't know if it's properly handled by the Forth interpreter. Any idea what the boot-script you cite is supposed to actually _do_ (I gave up trying to read Forth at around 3 AM last night)?
I think the script seeks in itself the address of the embedded XCOFF (after "-BOOT"), computes it size, copies it to load-base, initializes it ("init-program") and executes it ("go").
Ah, duh, that should've been obvious to me. I'm a Forth flunkie, so if someone could implement these:
You can write it in C... I have written a Mach-O loader (but it seems broken now)
( xcoff-base ) load-size over load-base - - ( xcoff-base xcoff-size ) load-base swap move init-program go
Then we'd be doing what we -really- should be doing instead of my hackish "oh, there's an XCOFF here! let's load it."
This explains why OpenHackware is written as it is.
In Panther Install CD, BootX is:
<CHRP-BOOT> <COMPATIBLE> MacRISC MacRISC3 MacRISC4 </COMPATIBLE> <DESCRIPTION> Boot Loader for Mac OS X. </DESCRIPTION> <OS-BADGE-ICONS> </OS-BADGE-ICONS> <BOOT-SCRIPT> ... <BOOT-SCRIPT> load-base begin dup 6 " </CHRP" $= if 6 + dup 6 " -BOOT>" $= if 8 + true else false then else 1+ false then until ( xcoff-base ) load-size over load-base - - ( xcoff-base xcoff-size ) load-base swap move init-program go </BOOT-SCRIPT> </CHRP-BOOT> [...XCOFF HERE]