Re: Bug report: the extended PCI config space is missed with 6.2-rc2

From: Liang, Kan
Date: Thu Jan 05 2023 - 14:31:43 EST




On 2023-01-05 1:29 p.m., Bjorn Helgaas wrote:
> On Thu, Jan 05, 2023 at 06:04:52PM +0000, Luck, Tony wrote:
>>> Hi Tony, can you share a dmesg log? Does it look like the same thing
>>> Kan reported, where the ECAM space is reported only via an
>>> EfiMemoryMappedIO region and is not otherwise reserved by firmware?
>>
>> Attached are serial logs. "broken" is the one from v6.2-rc2, "revert" is the
>> one with your commit reverted.
>>
>> I don't see the string "ECAM" in either of them.
>
> Yeah, "ECAM" is what the PCIe spec calls it, but Linux logging uses
> "MMCONFIG". Probably should change that.
>
> Anyway, your dmesg log shows the same problem:
>
> DMI: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRBDXSD1.86B.0338.V01.1603162127 03/16/2016
> efi: Remove mem48: MMIO range=[0x80000000-0x8fffffff] (256MB) from e820 map
> PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0x80000000-0x8fffffff] (base 0x80000000)
> [Firmware Info]: PCI: MMCONFIG at [mem 0x80000000-0x8fffffff] not reserved in ACPI motherboard resources
> PCI: not using MMCONFIG
> acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended configuration space under this bridge
>
> Apparently the only mention of [mem 0x80000000-0x8fffffff] in the
> firmware/kernel interface is as an EfiMemoryMappedIO region.
>
> I think this is a firmware bug, but obviously we're going to have to
> figure out a way around it.
>

I just want to share that I did more tests on an Ice Lake server (a
different generation from my original report and Tony's machine).

The same problem can be found as well.

[ 0.000000] DMI: Intel Corporation M50CYP2SB2U/M50CYP2SB2U, BIOS
SE5C6200.86B.4018.D65.2010201151 10/20/2020
[ 0.000000] efi: Remove mem375: MMIO range=[0x80000000-0x8fffffff]
(256MB) from e820 map
[ 0.000000] e820: remove [mem 0x80000000-0x8fffffff] reserved

[ 1.528341] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem
0x80000000-0x8fffffff] (base 0x80000000)
[ 1.566605] [Firmware Info]: PCI: MMCONFIG at [mem
0x80000000-0x8fffffff] not reserved in ACPI motherboard resources
[ 1.566611] PCI: not using MMCONFIG

This firmware implementation should exist on the existing platforms for
a long time.

Thanks,
Kan