[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/6] i386: acpi: add IVHD device entry for IOAPI
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 4/6] i386: acpi: add IVHD device entry for IOAPIC |
Date: |
Thu, 13 Sep 2018 14:18:47 -0400 |
On Wed, Sep 12, 2018 at 02:24:52PM -0500, Brijesh Singh wrote:
>
>
> On 09/12/2018 11:35 AM, Igor Mammedov wrote:
> ...
>
> > > + /*
> > > + * When interrupt remapping is enabled, Linux IOMMU driver also
> > > checks
> > > + * for special IVHD device (type IO-APIC), which is typically
> > > presented
> > > + * as PCI device 14:00.0.
> > Probably it shouldn't be a 'typically' device from somewhere but rather
> > address
> > fetched from corresponding device model QEMU implements.
> >
>
> IOAPIC is not presented as a true PCI device to guest OS. When IOMMU is
> enabled a pseudo address space to added under root PCI bus. PCI 14:0.0
> presents to this pseudo device.
>
> >
> > > + */
> > > + if (s->intr_enabled) {
> > > + build_append_int_noprefix(table_data, 0x0100a00000000048, 8);
> > ^^ this is
> > incomprehensible,
> > where does this magic number comes from and how was it calculated?
> >
>
> In order to provide interrupt remap support, a special IVHD device need
> to be added, the magic number uses the format defined in Table 95 (IVHD
> device entry type codes).
>
> 0x01 00a0 00 00 0000 48
>
> Byte 0: 0x48 (special device)
> Byte 1 & 2: must be zero
> Byte 3: 0 (dte setting)
> Byte 4: 0 (handle)
> Byte 5 & 6: IOAPIC devfn (14:0.0)
Do you mean *bus* devfn? devfn is 0.0.
> Byte 7: 0x1 (IOAPIC) - See Table 97 in spec
Above should go into code comment, along with
first (oldest) version of spec that has this table.
Additionally the number is IMHO more readable as:
(0x1ull << 56) | (PCI_BUILD_BDF(14, 0) << 40) | 0x48
(assuming I got what it should be).
>
> > > + }
> > > +
> > > build_header(linker, table_data, (void *)(table_data->data +
> > > iommu_start),
> > > "IVRS", table_data->len - iommu_start, 1, NULL, NULL);
> > > }
> >
Re: [Qemu-devel] [PATCH 6/6] x86_iommu/amd: Enable Guest virtual APIC support, Igor Mammedov, 2018/09/12
[Qemu-devel] [PATCH 4/6] i386: acpi: add IVHD device entry for IOAPIC, Brijesh Singh, 2018/09/11
Re: [Qemu-devel] [PATCH 4/6] i386: acpi: add IVHD device entry for IOAPIC, Igor Mammedov, 2018/09/12
[Qemu-devel] [PATCH 1/6] x86_iommu: move the kernel-irqchip check in common code, Brijesh Singh, 2018/09/11
[Qemu-devel] [PATCH 3/6] x86_iommu/amd: Add interrupt remap support when VAPIC is not enabled, Brijesh Singh, 2018/09/11
[Qemu-devel] [PATCH 2/6] x86_iommu/amd: Prepare for interrupt remap support, Brijesh Singh, 2018/09/11