sb/intel/bd82x6x: Warn about slow PCIe downstream devices
Warn when a device took longer than usual to appear. Use the PDS bit to detect if a root port has a downstream device connected and warn if enumeration failed. Test: On Lenovo X220 all PCIe device are visible, thus the added code path is never taken. Change-Id: I86b498b89d672b239d9951e116dc3680030666a6 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/78229 Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
f94a522086
commit
2fcef78ff8
1 changed files with 6 additions and 0 deletions
|
@ -243,12 +243,18 @@ static void pch_pcie_enable(struct device *dev)
|
||||||
|
|
||||||
static void pch_pciexp_scan_bridge(struct device *dev)
|
static void pch_pciexp_scan_bridge(struct device *dev)
|
||||||
{
|
{
|
||||||
|
uint32_t cap = pci_find_capability(dev, PCI_CAP_ID_PCIE);
|
||||||
|
|
||||||
if (CONFIG(PCIEXP_HOTPLUG) && pci_is_hotplugable(dev)) {
|
if (CONFIG(PCIEXP_HOTPLUG) && pci_is_hotplugable(dev)) {
|
||||||
pciexp_hotplug_scan_bridge(dev);
|
pciexp_hotplug_scan_bridge(dev);
|
||||||
} else {
|
} else {
|
||||||
/* Normal PCIe Scan */
|
/* Normal PCIe Scan */
|
||||||
pciexp_scan_bridge(dev);
|
pciexp_scan_bridge(dev);
|
||||||
}
|
}
|
||||||
|
if ((pci_read_config16(dev, cap + PCI_EXP_SLTSTA) & PCI_EXP_SLTSTA_PDS) &&
|
||||||
|
!dev_is_active_bridge(dev))
|
||||||
|
printk(BIOS_WARNING, "%s: Has a slow downstream device. Enumeration failed.\n",
|
||||||
|
dev_path(dev));
|
||||||
|
|
||||||
/* Late Power Management init after bridge device enumeration */
|
/* Late Power Management init after bridge device enumeration */
|
||||||
pch_pcie_pm_late(dev);
|
pch_pcie_pm_late(dev);
|
||||||
|
|
Loading…
Reference in a new issue