Port-ofppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: booting Efika with ppc-oea-renovation



Tim Rightnour wrote:

> In ofwoea_map_space it tries to do a find_ranges() call for
> RANGE_TYPE_ISA. It then looks to see if the range and cur values are zero,
> and if either are, it should exit out. I'd throw some printfs in the
> find_ranges call and try to figure out why it's not failing on the efika,
> which has no ISA.

Ok. ofwoea_map_space() returns with -1 and doesn't detect any ISA.

But the crash is caused by doing bus_map_space() in map_isa_ioregs() for the
genppc_isa_io_space_tag without the function-pointers of this structure being
ever initialized by bus_space_init(). Therefore, crash while jumping to 0!


>> - ofwpci is not detected (SmartFirmware shows: /pci@80000000)
> 
> Yeah.. I don't have a dump of the pci node itself for the efika. Could you
> cd to /pci and do a .properties for me there? It would help a bunch. The
> match routine just probably needs some fiddling.

I wonder how this match routine ever worked for other systems. The problem
is in ofwpci.c, where you access a property named "device-type", but correct
would have been "device_type".

After fixing that the PCI bus is recognized and mapped, but then a crash of
OFW follows in genofw_setup_pciintr_map() while calling
  OF_getprop(parent, "#interrupt-cells", &pcells, sizeof(pcells)
with a parent-node of 0.

Refering to my previous mail, the properties of "pci" were:

#address-cells        0x3 (3)
#size-cells           0x2 (2)
clock-frequency       0x3EF1480 (66000000)
ranges                [0x30 bytes]
        [000] 01000000 00000000 00000000 F8000000
        [010] 00000000 00010000 02000000 00000000
        [020] 80000000 80000000 00000000 40000000

reg                   80000000:40000000
#interrupt-cells      0x1 (1)
interrupt-map-mask    [0x10 bytes]
        [000] 00000000 00000000 00000000 00000007

bus-range             0:1
interrupt-map         [0x20 bytes]
        [000] 00008000 00000000 00000000 00000001
        [010] 07C57D30 00000000 00000000 00000003

...which means that "adress-cells + interrupt-cells + 1" would access a zero
entry at interrupt-map[5].

I have no idea which is the right one, though...


-- 
    _  Frank Wille (frank%phoenix.owl.de@localhost)
 _ //  http://sun.hasenbraten.de/~frank/
 \X/   Phx @ #AmigaGer




Home | Main Index | Thread Index | Old Index