All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/PCI: Mark Ice Lake Power Control Unit as having non-compliant BARs
@ 2020-05-15  3:31 Xiaochun Lee
  0 siblings, 0 replies; only message in thread
From: Xiaochun Lee @ 2020-05-15  3:31 UTC (permalink / raw)
  To: bhelgaas, linux-pci; +Cc: tglx, mingo, bp, x86, hpa, linux-kernel, Xiaochun Lee

From: Xiaochun Lee <lixc17@lenovo.com>

The device [8086:a26c] have the same PCI BARs problem as
the device [8086:2fc0], it is a  Power Control Unit of
Intel Ice Lake Server Processor, kernel treats the
"Power Control Unit's CONFIG_TDP_NOMINAL CSR" as a base
address register leading to a boot failure like
"pci 0000:00:11.0: [Firmware Bug]: reg 0x30: invalid BAR (can't size)".

The information of the device list as below:
00:11.0 Unassigned class [ff00]: Intel Corporation Device a26c (rev 03)
        Subsystem: Lenovo Device 7811
        Flags: fast devsel, NUMA node 0
        Expansion ROM at <ignored> [disabled]
        Capabilities: [80] Power Management version 3

There are no other BARs on this device, so mark the PCU as having
non-compliant BARs, therefore we don't try to probe any of them.

Signed-off-by: Xiaochun Lee <lixc17@lenovo.com>
---
 arch/x86/pci/fixup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index e723559..d1170c8 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -563,6 +563,8 @@ static void twinhead_reserve_killing_zone(struct pci_dev *dev)
  * Erratum BDF2
  * PCI BARs in the Home Agent Will Return Non-Zero Values During Enumeration
  * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html
+ *
+ * Device [8086:a26c]
  */
 static void pci_invalid_bar(struct pci_dev *dev)
 {
@@ -572,6 +574,7 @@ static void pci_invalid_bar(struct pci_dev *dev)
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6f60, pci_invalid_bar);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fa0, pci_invalid_bar);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa26c, pci_invalid_bar);
 
 /*
  * Device [1022:7808]
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-05-15  3:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-15  3:31 [PATCH] x86/PCI: Mark Ice Lake Power Control Unit as having non-compliant BARs Xiaochun Lee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.