Re: OpenFirmware memory management?
Re: OpenFirmware memory management?
- Subject: Re: OpenFirmware memory management?
- From: Joshua LeVasseur <email@hidden>
- Date: Tue, 28 Mar 2006 21:22:30 +0200
Don't use open firmware in your kernel, as you don't know what OF is
doing behind the scenes. Quiesce open firmware, and have your kernel
take control of the processor. If you need a debugger, then consider
keeping OF around as a debug console. For a debug console, you can
restore the OF environment each time you need to execute an OF
callback; this includes restoring the hash table, the segments, etc.
that are used by OF. I highly recommend to avoid mixing your
kernel's virtual memory infrastructure with OF's; give them different
hash tables, segment IDs, etc.
Last time I looked at the Darwin boot logic, I noticed that it also
avoids using OF, and instead relies on the boot loader to copy the
device tree into a canonical format in memory.
Joshua
On Mar 27, 2006, at 19:36 , Andrei Warkentin wrote:
Hello,
I'm not sure who else I can approach with this question. I am
trying to write a "kernel", and I am fairly confused on the PowerPC
front . This is on a 1.33 Ghz iBook, so its a G4 and the OF version
is 4.9.3f0. Since the IR and DR bits are set, OF operates in virt-
mode. I tried putting it in real-mode, but the machine never booted
up again and I needed to perform an uber-reset to get it going again.
Right now I've gotten to the point where I'd like control over the
virtual memory. I am not familiar with PowerPC MMU, so I was
thinking of (at first) relying on claim(...). However, I realized
that I still don't know how the address space is utilized by
OpenFirmware. Are all mappings identity mappings? So, if OF loaded
by kernel at linear 2MB, is it also at 2MB physical? If it is not
identity mapped, what ranges are in active use by OF and are to be
avoided?
Whenever I figure out my way around the PowerPC MMU, is making OF
use my routines really as easy as calling set-callback? My only
reference are the PowerPC bindings which are more than ten years
old, so I'm not sure. Will OF automagically remap all its existing
mappings using my routines, or will I be responsible for that? I'd
like to keep the client interface functional, as it is currently
the only way I can do console output.
Is it possible for me to (non-destructively) modify the interrupt/
exception vectors while OF is still in control of VM? (assuming I
don't touch ISI/DSI vectors, of course).
Thank you for your time.
Andrei Evgenievich Warkentin
email@hidden
Cell: (+1) (847) 321-15-55
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden