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

From: Bjorn Helgaas
Date: Thu Jan 05 2023 - 14:44:50 EST


On Thu, Jan 05, 2023 at 02:23:45PM -0500, Liang, Kan wrote:
> 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.

Yes. Frustrating, but I think we have no choice but to make Linux
work with the firmware as it is, whether it is buggy or not. From
your first report, I hoped it was isolated to unreleased firmware that
had a chance of being fixed, but obviously that's not the case.

Bjorn