[OpenBIOS] Macintosh device tree

Amadeusz Sławiński amade at asmblr.net
Tue Feb 5 15:39:24 CET 2013

On Mon, Feb 04, 2013 at 11:23:59PM -0500, Programmingkid wrote:
> On Feb 3, 2013, at 9:47 PM, Programmingkid wrote:
> > 
> > On Feb 3, 2013, at 7:17 PM, Amadeusz Sławiński wrote:
> > 
> >> On Mon, Feb 04, 2013 at 12:24:26AM +0100, Andreas Färber wrote:
> >>> Am 02.02.2013 22:27, schrieb Programmingkid:
> >>>> I am investigating the device tree of the mac99 model. It looks like it is wrong. The part that I am concerned with is the via-cuda node. Both my iMac and iBook don't even have a via-cuda. They both have a via-pmu at 16000 node. I'm hoping someone has an original blue and white PowerMac G3. I would like the full device tree printout from it. The question I am trying to answer is does any newworld Mac have a via-cuda? If they don't, we know that it should be changed to a via-pmu at 16000 node.
> >>> 
> >>> I have one around, and it has a via-cuda at 16000 node. There's a
> >>> power-mgt at 0 node at the same level (under mac-io at 5) but no pmu node.
> >> 
> >> With regards to mac99 target I would rather be concerned with lack of /uni-n, as
> >> darwin seems to check for this (it panics when checking machine type)
> Do you think this is a QEMU or OpenBIOS issue?

Fast grep through qemu newworld machine shows that it is at least
partly implemented:

% grep uni hw/ppc/mac_newworld.c
static void unin_write(void *opaque, hwaddr addr, uint64_t value,
static uint64_t unin_read(void *opaque, hwaddr addr, unsigned size)
static const MemoryRegionOps unin_ops = {
    .read = unin_read,
    .write = unin_write,
    MemoryRegion *unin_memory = g_new(MemoryRegion, 1);
    memory_region_init_io(unin_memory, &unin_ops, NULL, "unin", 0x1000);
    memory_region_add_subregion(get_system_memory(), 0xf8000000, unin_memory);

In OpenBios it is only mentioned in PCI database
and I think it is just used to setup /pci properties

As far as I can see the /uni-n node has following properties
name = "uni-n"
model = "AAPL,UniNorth"
device_type = "memory-controller"
compatible = "uni-north"
device-rev = 0x7


More information about the OpenBIOS mailing list