Status of PCI-PCI bridge on UMAX S900

Chas Williams chas at cmf.nrl.navy.mil
Fri Dec 29 01:13:19 EST 2000


just a short followup to the message i sent to debian-powerpc, i applied the
following diff and was able to move my usb board to the other side of the
umax/s900 bridge w/o any ill effect:

--- prom.c.000  Thu Dec 28 08:43:12 2000
+++ prom.c      Thu Dec 28 09:06:16 2000
@@ -1563,8 +1563,8 @@
        }

        ip = (int *) get_property(np, "AAPL,interrupts", &l);
-       if (ip == 0)
-               ip = (int *) get_property(np, "interrupts", &l);
+       if (ip == 0 && np->parent != NULL)
+               ip = (int *) get_property(np->parent, "AAPL,interrupts", &l);
        if (ip != 0) {
                np->intrs = (struct interrupt_info *) mem_start;
                np->n_intrs = l / sizeof(int);

lspci, now shows:

01:00.0 VGA compatible controller: ATI Technologies Inc Rage 128 RE (prog-if 00 [VGA])
        Subsystem: Unknown device b530:0408
        Flags: bus master, stepping, medium devsel, latency 32, IRQ 25
        Memory at 84000000 (32-bit, prefetchable) [size=64M]
        I/O ports at 1000 [size=256]
        Memory at 80804000 (32-bit, non-prefetchable) [size=16K]
        Expansion ROM at 80820000 [disabled] [size=128K]
        Capabilities: <available only to root>

01:01.0 USB Controller: OPTi Inc. 82C861 (rev 10) (prog-if 10 [OHCI])
        Subsystem: OPTi Inc.: Unknown device c861
        Flags: bus master, medium devsel, latency 32, IRQ 25
        Memory at 80800000 (32-bit, non-prefetchable) [size=4K]

on a related, note, shouldnt the 'right' code be:

	ip = (int *) get_property(np, "interrupts", &l);
	if (ip > 0)
	{
		/* find and assign interrupt -- see above */
	}

pci boards should only get an interrupt if they have the interrupt property
(which seems to be the number of interrupts, not the interrupt number)

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list