[U-Boot] PCI configuration Issue for QEMU ACPI Support

Hi,
This is regarding the PCI configuration Issue for QEMU ACPI Support.
I am comparing arch/x86/cpu/qemu/acpi/pci-crs.asl and arch/x86/dts/qemu-x86_q35.dts and we find there are different ranges been specified for PCI configuration in both the files.
As per my understanding for Qemu q35 (emulation of the ICH9 host chipset) where we have PCIe support which is made possible by PCI express enhanced accessmechanism (ECAM). This address is 0xe0000000 which is what I have put in arch/x86/dts/qemu-x86_q35.dts when I am memory mapping the PCI bus.
I do not find this range in listed in arch/x86/dts/qemu-x86_q35.dts where 0x80000000 which is the start of the range in the device tree.
Thus U-Boot sets PCI to map into memory starting at 0x80000000 but when Linux starts booting with ACPI support it gets different values and we get PCI configuration errors in the Linux boot bootup logs.
Regards, Saket Sinha

Hi Saket,
On Wed, Sep 9, 2015 at 12:44 PM, Saket Sinha saket.sinha89@gmail.com wrote:
Hi,
This is regarding the PCI configuration Issue for QEMU ACPI Support.
I am comparing arch/x86/cpu/qemu/acpi/pci-crs.asl and arch/x86/dts/qemu-x86_q35.dts and we find there are different ranges been specified for PCI configuration in both the files.
As per my understanding for Qemu q35 (emulation of the ICH9 host chipset) where we have PCIe support which is made possible by PCI express enhanced accessmechanism (ECAM). This address is 0xe0000000 which is what I have put in arch/x86/dts/qemu-x86_q35.dts when I am memory mapping the PCI bus.
0xe0000000 is for PCI configuration space.
I do not find this range in listed in arch/x86/dts/qemu-x86_q35.dts where 0x80000000 which is the start of the range in the device tree.
0x80000000 and above (below 0xe0000000) is for PCI memory space, IO space, prefetch space. These two are totally different spaces.
Thus U-Boot sets PCI to map into memory starting at 0x80000000 but when Linux starts booting with ACPI support it gets different values and we get PCI configuration errors in the Linux boot bootup logs.
The ACPI error is due to arch/x86/cpu/qemu/acpi/pci-crs.asl which does not use consistent address space as dts. As I said in previous review comments, we should understand every bits in the ASL file otherwise we never know what potential issue will happen.
BTW: I hope I can have some time after this release to focus on the ACPI spec issues.
Regards, Bin
participants (2)
-
Bin Meng
-
Saket Sinha