Bug #227
closedSkylake/Kabylake breakage caused by 'soc/intel: Replace uses of dev_find_slot()'
0%
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.
Updated by Matt DeVillier about 4 years ago
- Status changed from New to Resolved
subsequent patches have mitigated the issue