Bug #227

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

Added by Matt DeVillier 3 months ago.

Status:NewStart date:08/29/2019
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:chipset configuration
Target version:-

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.

Also available in: Atom PDF