Thank you. I will keep this in mind for the next spin of the patches. Regards, alvise
On Mon, Jan 5, 2015 at 7:07 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 5 January 2015 at 17:35, alvise rigo <a.r...@virtualopensystems.com> wrote: >> So I suppose we need to define a fixed number of PCI slots according >> to the number of interrupts available in mach-virt. In this regard, >> should this number be a qdev property? > > The PCI spec means that a bus has an implicit maximum of > 32 slots (the devfn in a PCI address is only 5 bits). > Note that this doesn't imply having 32 interrupt lines. > > What you can do is something like this (which is what the > versatilepb device-tree-binding will have): > > + interrupt-map-mask = <0x1800 0 0 7>; > + interrupt-map = <0x1800 0 0 1 &sic 28 > + 0x1800 0 0 2 &sic 29 > + 0x1800 0 0 3 &sic 30 > + 0x1800 0 0 4 &sic 27 > + > + 0x1000 0 0 1 &sic 27 > + 0x1000 0 0 2 &sic 28 > + 0x1000 0 0 3 &sic 29 > + 0x1000 0 0 4 &sic 30 > + > + 0x0800 0 0 1 &sic 30 > + 0x0800 0 0 2 &sic 27 > + 0x0800 0 0 3 &sic 28 > + 0x0800 0 0 4 &sic 29 > + > + 0x0000 0 0 1 &sic 29 > + 0x0000 0 0 2 &sic 30 > + 0x0000 0 0 3 &sic 27 > + 0x0000 0 0 4 &sic 28>; > > That says "we have four interrupts, which are swizzled in > the usual way between slots", and doesn't impose any > particular maximum number of slots. (Notice that the > mask value is 0x1800 0 0 0 7, which means we only match > on the low two bits of the devfn, so a unit-interrupt-specifier > of <0x2000 0x0 0x0 1> for slot 4 matches the entry > <0x0000 0x0 0x0 1> in the map table, as required.) > > (You'll want to do something more sensible than 27..30, > which is just what the interrupt lines on the versatilepb > happen to be.) > > -- PMM