From: Bjorn Helgaas <helgaas@kernel.org>
To: linux-pci@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
"Rafael J . Wysocki" <rjw@rjwysocki.net>,
Dan Williams <dan.j.williams@intel.com>,
Kan Liang <kan.liang@linux.intel.com>,
Tony Luck <tony.luck@intel.com>,
Giovanni Cabiddu <giovanni.cabiddu@intel.com>,
Yunying Sun <yunying.sun@intel.com>,
Tomasz Pala <gotar@polanet.pl>,
Sebastian Manciulea <manciuleas@protonmail.com>,
linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>
Subject: [PATCH 0/9] x86/pci: Work around lack of ECAM space reservation
Date: Tue, 21 Nov 2023 12:36:34 -0600 [thread overview]
Message-ID: <20231121183643.249006-1-helgaas@kernel.org> (raw)
From: Bjorn Helgaas <bhelgaas@google.com>
The ECAM space described in the ACPI MCFG table should be reserved via a
PNP0C02 _CRS method, per PCI Firmware spec (r3.3, sec 4.1.2).
Some platforms (at least Supermicro X9DRi-LN4+, HP Proliant ML30 Gen9) do
not include these PNP0C02 reservations, and at the same time, they *do*
include that space in the PNP0A03 host bridge windows, which makes it
available for assignment to PCI devices.
In this case, we treat the ECAM space as valid (after fd3a8cff4d4a
("x86/pci: Treat EfiMemoryMappedIO as reservation of ECAM space")), but
there was no actual reservation to prevent assignment to PCI devices.
This series adds that reservation to prevent assigning ECAM space to PCI
BARs, adds more debug logging, changes "MMCONFIG" to "ECAM" to match the
spec terminology, and cleans up some coding style.
I propose to merge this via the PCI tree for v6.8.
Bjorn Helgaas (9):
x86/pci: Reserve ECAM if BIOS didn't include it in PNP0C02 _CRS
x86/pci: Reword ECAM EfiMemoryMappedIO logging to avoid 'reserved'
x86/pci: Add MCFG debug logging
x86/pci: Rename 'MMCONFIG' to 'ECAM', use pr_fmt
x86/pci: Rename acpi_mcfg_check_entry() to acpi_mcfg_valid_entry()
x86/pci: Rename pci_mmcfg_check_reserved() to pci_mmcfg_reserved()
x86/pci: Comment pci_mmconfig_insert() obscure MCFG dependency
x86/pci: Return pci_mmconfig_add() failure early
x86/pci: Reorder pci_mmcfg_arch_map() definition before calls
arch/x86/pci/acpi.c | 3 +
arch/x86/pci/mmconfig-shared.c | 178 ++++++++++++++++++---------------
arch/x86/pci/mmconfig_32.c | 2 +-
arch/x86/pci/mmconfig_64.c | 42 ++++----
4 files changed, 120 insertions(+), 105 deletions(-)
--
2.34.1
next reply other threads:[~2023-11-21 18:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-21 18:36 Bjorn Helgaas [this message]
2023-11-21 18:36 ` [PATCH 1/9] x86/pci: Reserve ECAM if BIOS didn't include it in PNP0C02 _CRS Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 2/9] x86/pci: Reword ECAM EfiMemoryMappedIO logging to avoid 'reserved' Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 3/9] x86/pci: Add MCFG debug logging Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 4/9] x86/pci: Rename 'MMCONFIG' to 'ECAM', use pr_fmt Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 5/9] x86/pci: Rename acpi_mcfg_check_entry() to acpi_mcfg_valid_entry() Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 6/9] x86/pci: Rename pci_mmcfg_check_reserved() to pci_mmcfg_reserved() Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 7/9] x86/pci: Comment pci_mmconfig_insert() obscure MCFG dependency Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 8/9] x86/pci: Return pci_mmconfig_add() failure early Bjorn Helgaas
2023-11-21 18:36 ` [PATCH 9/9] x86/pci: Reorder pci_mmcfg_arch_map() definition before calls Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231121183643.249006-1-helgaas@kernel.org \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=giovanni.cabiddu@intel.com \
--cc=gotar@polanet.pl \
--cc=hpa@zytor.com \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=manciuleas@protonmail.com \
--cc=mingo@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yunying.sun@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox