On Mon, Sep 22, 2014 at 06:44:26PM +0200, Paolo Bonzini wrote: > Il 22/09/2014 00:43, Laszlo Ersek ha scritto: > > I mentioned earlier that grepping OvmfPkg for PCI_LIB_ADDRESS would be > > necessary. See PciInitialization() in > > "OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c".
I remember that, but back then I hadn't RTFMed enough for it to mean something useful to me. I get it now though, so thanks for the repetition :) > > // > > // Bus 0, Device 1, Function 0 - PCI to ISA Bridge > > // > > PciWrite8 (PCI_LIB_ADDRESS (0, 1, 0, 0x3c), 0x00); > > PciWrite8 (PCI_LIB_ADDRESS (0, 1, 0, 0x60), 0x0b); // LNKA routing target > > PciWrite8 (PCI_LIB_ADDRESS (0, 1, 0, 0x61), 0x0b); // LNKB routing target > > PciWrite8 (PCI_LIB_ADDRESS (0, 1, 0, 0x62), 0x0a); // LNKC routing target > > PciWrite8 (PCI_LIB_ADDRESS (0, 1, 0, 0x63), 0x0a); // LNKD routing target > > > > This is not appropriate for q35. See "ICH9 PCI to ISA irq remapping" in > > qemu's "q35-acpi-dsdt.dsl" file, vs. "PIIX PCI to ISA irq remapping" in > > "acpi-dsdt.dsl". > > If I understand the DSDT right, the field is still at 0x60, but the > bridge is now at 1f.0. Right? Also, LNKE-LNKH must be set at 0x68. > > However, these are only used if OS X runs in PIC mode rather than APIC > mode (see \_PIC). Why should OS X be running in PIC mode? So fixing > the above is right to do, but may not be enough. I'll take a pass at making these dependent on the host bridge DID (same as with the pmbase/pmtimer) instead of hard coded, then we'll see what else breaks :) Thanks again for