[OpenBIOS] QEMU OpenBIOS booting?

Laurent Vivier Laurent at vivier.eu
Sun Apr 19 22:29:28 CEST 2009


Le dimanche 19 avril 2009 à 13:23 -0700, Steven Noonan a écrit :
> On Sun, Apr 19, 2009 at 1:21 PM, Laurent Vivier <Laurent at 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 at 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 at 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 at uplinklabs.net> wrote:
> >> >> >> > On Sun, Apr 12, 2009 at 1:39 AM, Laurent Vivier <Laurent at 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/e43daa3447b5ce4a2b05b2f32882e49891156200
> >> >> http://github.com/tycho/openbios/commit/7023b78a10f5632fd08d4749615efd3e73ab1036
> >> >
> >> > 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 " &lt;/CHRP" $= if
> >> >  6 + dup 6 " -BOOT&gt;" $= 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]
> >> >
> >> >
> 




More information about the OpenBIOS mailing list