Efika OF problems
Matt Sealey
matt at genesi-usa.com
Tue Aug 19 16:36:25 UTC 2008
There are two problems with OF calls in FreeBSD; one is that FreeBSD has no
support for a "real mode" Open Firmware - Apple's runs in "virtual mode"
which means it has all kinds of MMU stuff set up.
Solaris had the same problem and Sun fixed it by implementing a slim "VOF"
on top of our real OF, which implemented the virtual mode stuff.
There is very, very little point in addressing this issue in firmware and
implementing virtual addressing inside firmware, as OF client calls are
stupidly slow. What you need to do is get it up and running and get all the
OF stuff *well* out of the way *well* before any MMU stuff is set up by
the OS itself.
NetBSD manages it somehow, I don't know how. You could have a chat with
Frank Wille.. (see the port-ofppc at netbsd.org list)
As for dumps, once the processor crashes, OF crashes too. There is no way
to do a client call with the processor dumping an exception (recovery would
probably destroy the state, and a "soft reset" would too).
I'm not sure about SPRG0 (or 1 or 2 or 3) but my personal, uninformed
opinion is that it should not be in use at all by the firmware..
--
Matt Sealey <matt at genesi-usa.com>
Genesi, Manager, Developer Relations
vi0 wrote:
> Hi there!
>
> I have a question about openfirmware in Efika. I have big problems with
> calls to OF. The most recent problem is with the instruction that
> move a new value to sprg0:
>
> mtspr r8, sprg0
>
> and in r8 at the moment is zero. The problem is that sometimes it works
> and sometimes does not. I can't actually understand why
> does it happend. One function sometimes works perfectly well and just
> after that it crashes. All around the OF, in the very same place.
> Could you tell me, does the Efika's openfirmware use sprg0 for
> something special? Or maybe you have some advice concerning OF in Efika?
>
> Other thing I were wondering is, how to make a memdump. After the crash
> efika is dead, nothing works (deadend). But
> the OF supports the mem dump: ldump. Is it possible to get the content
> of the memory after the deadend? For example
> by softreset? Is there a control sequence I could send via serial
> console to efika to do it?
> (or is there other way to get the crashdump?)
>
> Best regards,
> Przemek
>
>
More information about the freebsd-ppc
mailing list