Re: Device Tree & PCI

2008-01-11 Thread Scott Wood
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

2008-01-11 Thread Rune Torgersen
>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

2008-01-12 Thread Benjamin Herrenschmidt

> [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