All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <Laurent@vivier.eu>
To: The OpenBIOS Mailinglist <openbios@openbios.org>
Cc: Alexander Graf <alex@csgraf.de>, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [OpenBIOS] QEMU OpenBIOS booting?
Date: Sun, 19 Apr 2009 22:48:32 +0200	[thread overview]
Message-ID: <1240174112.5659.40.camel@Quad> (raw)
In-Reply-To: <f488382f0904191333l4fc742beo1772089f738690cd@mail.gmail.com>

Le dimanche 19 avril 2009 à 13:33 -0700, Steven Noonan a écrit :
> On Sun, Apr 19, 2009 at 1:24 PM, Laurent Vivier <Laurent@vivier.eu> wrote:
> > Le dimanche 19 avril 2009 à 13:14 -0700, Steven Noonan a écrit :
> >> On Sun, Apr 19, 2009 at 1:08 PM, Laurent Vivier <Laurent@lvivier.info> wrote:
> >> > Le dimanche 19 avril 2009 à 13:00 -0700, Steven Noonan a écrit :
> >> >> On Sun, Apr 19, 2009 at 12:23 PM, Blue Swirl <blauwirbel@gmail.com> wrote:
> >> >> > 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.
> >> >> >>  >> >
> >> >> [...]
> >> >> $=:>> XCOFF - load_xcoff: Loading 'System\Library\CoreServices\BootX'
> >> >> >> XCOFF - load_xcoff: XCOFF file with 3 sections entry:fff0a22c
> >> >> >> XCOFF - load_xcoff: Read next header (5c)
> >> >> >> XCOFF - load_xcoff: Load '.text' section from 5c d4 to 5600000 (28000)
> >> >> >> XCOFF - load_xcoff: Read next header (84)
> >> >> >> XCOFF - load_xcoff: Load '.data' section from 84 280d4 to 5628000 (2000)
> >> >> >> XCOFF - load_xcoff: Read next header (ac)
> >> >> >> XCOFF - load_xcoff: Erase '.bss' section at 562a000 size: 3a000
> >> >> >> ELF - transfer_control_to_elf: Starting ELF boot loader
> >> >> invalid/unsupported opcode: 02 - 0e - 0c (0b717b1c) 05616ed8 1
> >> >> invalid/unsupported opcode: 00 - 14 - 13 (000064e8) 000094d0 0
> >> >> Alcarin:qemu steven$
> >> >>
> >> >>
> >> >> So at least with my patches, we're getting what people with QEMU 0.8.0
> >> >> were getting: http://tinyurl.com/qemu080
> >> >>
> >> >> So now what's left is resolving -why- that 'invalid/unsupported
> >> >> opcode' issue crops up.
> >> >
> >> > I think the booloader is loaded at addresses overwriting some parts of
> >> > openbios.
> >> >
> >>
> >> That would make sense, but that tells me QEMU is loading OpenBIOS to
> >
> > The problem is in OpenBios: I put some structures in memory without
> > knowing this... but this is not part of openfirmware specification.
> 
> Agreed, this seems to be an undocumented Apple-ism. But since OSes
> other than Mac OS X run on PowerPC macs (i.e. BSD, Linux), I must

AIX is also using OpenFirmware / PPC / CHRP, and I think they don't care
of Apple-ism.

> assume that they are aware of these quirks and don't hammer those
> memory locations. Since that's the case, it may be wise to conform to
> what Apple's Open Firmware does, even if it _is_ undocumented.

'Yes, we can' (R).

> How easy would it be to get OpenBIOS to load to the position Mac OS X
> and BootX expect it to be? Based on what the book says, there are 8MB
> of memory available to the Open Firmware, would that be enough for the
> OpenBIOS executable image and any allocations it would need to
> perform?
> 
> >
> >> the wrong location. From the book "Mac OS X Internals: A Systems
> >> Approach":
> >>
> >> Table 45. BootX Logical Memory Map
> >>
> >> Starting Address   Ending Address    Purpose
> >> 0x00000000    0x00003FFF    Exception vectors.
> >> 0x00004000    0x03FFFFFF    Kernel image, boot structures, and drivers.
> >
> > I put there some memory allocation information.
> >
> >> 0x04000000    0x04FFFFFF    File load area.
> >> 0x05000000    0x053FFFFF    Simple read-time cache for file system
> >> metadata. Cache hits are serviced from memory, whereas cache misses
> >> result in disk access.
> >> 0x05400000    0x055FFFFF    Malloc zone: a simple memory allocator is
> >> implemented in BootX's libclite subproject. The starting and ending
> >> addresses of this range define the block of memory used by the
> >> allocator.
> >
> > BootX should use openBIOS functions to allocate memory (as Yaboot
> > does...)
> 
> Apparently BootX is tricky that way. I don't have the BootX source
> code, so I can't verify the author's statement, but I would guess he
> knows what he's talking about.

Look here:

http://www.opensource.apple.com/darwinsource/tarballs/apsl/BootX-81.tar.gz

(You need an Apple Developer ID)

Regards,
Laurent

  reply	other threads:[~2009-04-19 20:48 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <f488382f0904111806i64421ff8t68e6d34aa2990f3a@mail.gmail.com>
     [not found] ` <1239525550.5516.3.camel@Quad>
     [not found]   ` <f488382f0904142246ga431e99obe666b7fb16adb02@mail.gmail.com>
     [not found]     ` <f488382f0904190050x1d6e9562sf000e9e9763735b7@mail.gmail.com>
2009-04-19  8:03       ` [Qemu-devel] Re: [OpenBIOS] QEMU OpenBIOS booting? Andreas Färber
2009-04-19  8:28         ` Steven Noonan
2009-04-19  9:44           ` Andreas Färber
2009-04-19 17:47           ` M. Warner Losh
2009-04-19 17:56             ` Steven Noonan
2009-04-19 18:44             ` Blue Swirl
2009-04-19 23:18               ` M. Warner Losh
2009-04-20 19:39                 ` Blue Swirl
2009-04-20 21:01                   ` François Revol
2009-04-20 22:15                   ` [OpenBIOS] [Qemu-devel] " Laurent Vivier
2009-04-19  8:31         ` [Qemu-devel] Re: [OpenBIOS] " Laurent Vivier
2009-05-20 13:51           ` Dave Willoughby
2009-05-20 14:14             ` Alexander Graf
     [not found]       ` <1240129450.5671.7.camel@Quad>
2009-04-19 18:59         ` [Qemu-devel] " Steven Noonan
2009-04-19 19:23           ` [Qemu-devel] Re: [OpenBIOS] " Blue Swirl
2009-04-19 20:00             ` Steven Noonan
2009-04-19 20:08               ` Laurent Vivier
2009-04-19 20:14                 ` Steven Noonan
2009-04-19 20:24                   ` Laurent Vivier
2009-04-19 20:33                     ` Steven Noonan
2009-04-19 20:48                       ` Laurent Vivier [this message]
2009-04-19 21:02                         ` Steven Noonan
2009-04-19 21:32                           ` Steven Noonan
2009-04-19 22:28                             ` Steven Noonan
2009-04-19 22:36                               ` Steven Noonan
2009-04-20  0:15                                 ` malc
2009-04-20  3:27                                 ` Steven Noonan
2009-04-20  3:50                                   ` Steven Noonan
2009-04-26  8:13                                     ` Alexander Graf
2009-04-19 19:47           ` Laurent Vivier
2009-04-19 19:53             ` Steven Noonan
2009-04-19 20:01             ` Steven Noonan
2009-04-19 20:21               ` Laurent Vivier
2009-04-19 20:23                 ` Steven Noonan
2009-04-19 20:29                   ` Laurent Vivier
2009-04-20  9:39 Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1240174112.5659.40.camel@Quad \
    --to=laurent@vivier.eu \
    --cc=alex@csgraf.de \
    --cc=openbios@openbios.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.