Bug #227

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

Added by Matt DeVillier 11 months ago. Updated 6 months ago.

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


Category:chipset configuration
Target version:-


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.


#1 Updated by Matt DeVillier 6 months ago

  • Status changed from New to Resolved

subsequent patches have mitigated the issue

Also available in: Atom PDF