On 4/19/09, Steven Noonan steven@uplinklabs.net wrote:
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.
Good Luck.
Two more pre-XCOFF loader commits up: http://github.com/tycho/openbios/commit/e43daa3447b5ce4a2b05b2f32882e4989115... http://github.com/tycho/openbios/commit/7023b78a10f5632fd08d4749615efd3e73ab...
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.