Re: Device Tree & PCI
On Fri, Jan 11, 2008 at 12:17:41PM -0600, Rune Torgersen wrote: > PCI_INT: [EMAIL PROTECTED],10 { > #interrupt-cells = <1>; > interrupt-controller; > reg = <5 10 4>; // > Chip select, offset, length > compatible = "apmax-pciintmux"; > interrupt-parent = <&PIC>; > interrupts = <19 8>;// > IRQ7, interrupt#25 > }; Is this interrupt controller getting registered before the PCI bus gets probed? -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
RE: Device Tree & PCI
>From: Scott Wood >Sent: Fri 1/11/2008 1:02 PM >To: Rune Torgersen >Cc: linuxppc-dev@ozlabs.org >Subject: Re: Device Tree & PCI > >On Fri, Jan 11, 2008 at 12:17:41PM -0600, Rune Torgersen wrote: >> PCI_INT: [EMAIL PROTECTED],10 { >> #interrupt-cells = <1>; >> interrupt-controller; >> reg = <5 10 4>; // >> Chip select, offset, length >> compatible = "apmax-pciintmux"; >> interrupt-parent = <&PIC>; >> interrupts = <19 8>;// >> IRQ7, interrupt#25 >> }; > >Is this interrupt controller getting registered before the PCI bus gets >probed? Yes, and we got the disk controller on the primary side to work fully. The kernel is still spitting those messages out, and we have determined it does so when scanning the secondary side of the bridge, so we're suspecting our bridge node in the device tree is not correct. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: Device Tree & PCI
> [EMAIL PROTECTED] { > interrupt-map-mask = <0f800 0 0 7>; > interrupt-map = < > /* IDSEL 0x10 */ > 8000 0 0 1 &PCI_INT 1 > > /* IDSEL 0x11 */ > 8800 0 0 1 &PCI_INT 2 > > /* IDSEL 0x12 */ > 9000 0 0 1 &PCI_INT 3 > > /* IDSEL 0x13 */ > 9800 0 0 1 &PCI_INT 4>; > }; Your PCI bridge node needs more than those 2 properties. At the very least it needs device_type "pci" and name "pci" (rather than pci-bridge) to make the kernel parser happier, it also needs a proper class code and a "reg" property providing its configuration address (devfn) so that the kernel can do the matching between what it finds on the PCI bus and that node. Basically, you need to make sure the function pci_device_to_OF_node() works for your bridge or the interrupt resolution will not work. I'd suggest you add debugging to that function to dump what it's doing so you can get your tree in order. Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev