[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v2 1/4] hw/arm/virt: Allow multiple agents to modi
From: |
alvise rigo |
Subject: |
Re: [Qemu-devel] [RFC v2 1/4] hw/arm/virt: Allow multiple agents to modify dt |
Date: |
Tue, 6 Jan 2015 10:56:16 +0100 |
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 <address@hidden> wrote:
> On 5 January 2015 at 17:35, alvise rigo <address@hidden> 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