> -----Original Message----- > From: Benjamin Herrenschmidt [mailto:b...@kernel.crashing.org] > Sent: Friday, April 20, 2012 4:11 PM > To: Kumar Gala > Cc: Yoder Stuart-B08248; linuxppc-dev@lists.ozlabs.org > Subject: Re: pci node question > > On Fri, 2012-04-20 at 13:53 -0500, Kumar Gala wrote: > > On Apr 20, 2012, at 1:37 PM, Yoder Stuart-B08248 wrote: > > > > > There was refactoring change a while back that moved > > > the interrupt map down into the virtual pci bridge. > > > > > > example: > > > 42 /* controller at 0x200000 */ > > > 43 &pci0 { > > > 44 compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2"; > > > 45 device_type = "pci"; > > > 46 #size-cells = <2>; > > > 47 #address-cells = <3>; > > > 48 bus-range = <0x0 0xff>; > > > 49 clock-frequency = <33333333>; > > > 50 interrupts = <16 2 1 15>; > > > 51 pcie@0 { > > > 52 reg = <0 0 0 0 0>; > > > 53 #interrupt-cells = <1>; > > > 54 #size-cells = <2>; > > > 55 #address-cells = <3>; > > > 56 device_type = "pci"; > > > 57 interrupts = <16 2 1 15>; > > > 58 interrupt-map-mask = <0xf800 0 0 7>; > > > 59 interrupt-map = < > > > 60 /* IDSEL 0x0 */ > > > 61 0000 0 0 1 &mpic 40 1 0 0 > > > 62 0000 0 0 2 &mpic 1 1 0 0 > > > 63 0000 0 0 3 &mpic 2 1 0 0 > > > 64 0000 0 0 4 &mpic 3 1 0 0 > > > 65 >; > > > 66 }; > > > 67 }; > > > > > > Why was the interrupt-map moved here? > > > > Its been a while, but I think i moved it down because of which node is used > > for interrupt handling in > linux. > > Yeah, it would swizzle if going accross the virtual P2P bridge. On the > other hand, if it's PCIe, the children of the vP2P should always be at > device 0 and thus the swizzling should be a NOP no ? So we -could- leave > it in the PHB unless I'm mistaken... > > On the other hand, we probably want to fix the mapping code to handle > things like SR-IOV PFs with different device numbers... do those get > swizzled ? In that case we might want to keep things down the virtual > bridge. > > > > Do we really need the error interrupt specified twice? > > > > I put it twice because it has multiple purposes, one has to do with > > interrupts defined by the PCI spec > vs ones defined via FSL controller. > > > > > Why is there a zeroed out reg property: reg = <0 0 0 0 0> ?? > > > > scratching my head, what happens if you remove it? > > If you remove it, the kernel will fail to match the vP2P with the > corresponding struct pci_dev.... It's not "zeroed out". It contains a > valid bus/dev/fn ... of 0,0,0 :-)
Hmmm... I vaguely understand what you are saying. But why is the length zero, that is what doesn't make sense on the surface? We really should put a comment on that reg property-- can you suggest a short comment that would capture what the reg with all zeros is for? ...I'll submit a patch. Thanks, Stuart _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev