Project

General

Profile

Actions

Bug #227

closed

Skylake/Kabylake breakage caused by 'soc/intel: Replace uses of dev_find_slot()'

Added by Matt DeVillier over 4 years ago. Updated about 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
chipset configuration
Target version:
-
Start date:
08/29/2019
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

Commit 903b40a (https://review.coreboot.org/c/coreboot/+/33996) replaced all usages of dev_find_slot() with pcidev_path_on_root() for all Intel SoC's selecting CONFIG_SOC_INTEL_COMMON. This caused some breakage due to certain PCI devices which are hidden at times - usually prior to FSP platform init (and do not conform to the PCI spec), and was partially mitigated with the addition of pcidev_path_on_root_debug in f2ac0137 (https://review.coreboot.org/c/coreboot/+/34285) which falls back to dev_find_slot in the case where no device is found using the new enumeration method.

However, this did not fully capture all instances where a PCI device needs to fall back on dev_find_slot(), and on Skylake/Kabylake (at least, possibly others) caused issues with USB/SATA failing to init (w/Heads payload) and the Windows installer failing to load (w/Tianocore).

Two highly suboptimal mitigations have been presented: using pcidev_path_on_root_debug() for all PCI devices (https://review.coreboot.org/c/coreboot/+/35088), and reverting back to use dev_find_slot() (https://review.coreboot.org/c/coreboot/+/35087), but a better long-term solution is required.

Actions #1

Updated by Matt DeVillier about 4 years ago

  • Status changed from New to Resolved

subsequent patches have mitigated the issue

Actions

Also available in: Atom PDF