[OpenBIOS] QEMU OpenBIOS booting?
blauwirbel at gmail.com
Sun Apr 19 21:23:04 CEST 2009
On 4/19/09, Steven Noonan <steven at uplinklabs.net> wrote:
> 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.
> > Good Luck.
> Two more pre-XCOFF loader commits up:
These look fine to me.
> And I have something (uncommitted) that at least -loads- the
> CHRP-embedded XCOFF binaries now, but I am not sure what to do to
> execute the result. With ELF, it seems you can just use the call_elf()
> function. I don't know PowerPC assembler (nor the XCOFF format) well
> enough yet to know what would be necessary for a call_xcoff()
> function. Anyone want to help out with this?
Well, call_elf should work regardless of the format. The first and
second parameters will be passed verbatim to OS (Linux uses those for
initrd address and size), the third is the start address that should
be available for all formats. There's some more description near the
function call_elf in start.S.
So I'd just add something like call_elf(0, 0, xcoff_start) somewhere.
More information about the OpenBIOS