On Mon, 2014-04-14 at 17:12 +1000, Alexey Kardashevskiy wrote:
> Our additional PHBs require @index property which is used to calculate
> base
> MMIO and IO ranges. That we could use for LSI/MSI too.
That works. We need to decide how much interrupt "space" we give to
each.
The HW on P8 does 2048 MSIs plus the LSIs but we don't have to copy
that. The HW does that many because it can be split into 256 PE's but
our virtual PHBs represent a single PE#.
I think 4 LSIs + 256 MSIs is a reasonable number and should be fairly
future proof.
The numbers can be interleaved. IE the number space can be made to
look like
PHB0 LSIs
PHB1 LSIs
PHB2 LSIs
....
PHB0 MSIs
PHB1 MSIs
PHB2 MSIs
So the numbering remains compact (I would recommend doing that so the
ranges themselves remains power-of-2 sized).
I don't remember how we divide our interrupts into ranges/BUIDs
internally, so we might need to chose something that matches what we
do there a bit better, we'll see.
Cheers,
Ben.