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

From: Dan Williams
Date: Thu Jan 05 2023 - 14:45:19 EST


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.

Definitely an ambiguity / conflict, but not sure it is a bug when you
look at from the perspective of how would an EFI runtime service use
ECAM/MMCONFIG space?

Would it be enough to add this clarification in "EFI 2.9 Table 7-6
Memory Type Usage after ExitBootServices()"?

s/This memory is not used by the OS./This memory is not used by the OS,
unless ACPI declares it for another puporse./