Commit 903b40a [soc/intel: Replace uses of dev_find_slot()] replaced calls
to dev_find_slot() with calls to pcidev_path_on_root() for all Intel common
SoCs, but it seems unclear exactly what problem this was intended to fix,
and has created problems with locating hidden PCI devices.

Commit f2ac0137 [soc/intel: Fix regression with hidden PCI devices] fixed
this partially by creating a debug version of pcidev_path_on_root() which
falls back on dev_find_slot(), but did not apply it to all devices which
need it. On SKL/KBL alone, there are at least 5 different function calls
accessing a dozen PCI devices which require falling back on dev_find_slot().

Kyosti has expressed a desire to eliminate the use of dev_find_slot() since
it can potentially return false positives prior to device enumeration in
ramstage, but as currently implemented the cure seems worse than the
disease.

Short term, it seems like having pcidev_path_on_root() fall back on
dev_find_slot() with a loud warning (like pcidev_path_on_root_debug() does
now) makes the most sense, vs having two nearly identical function calls
used inconsistently. Long term, we need a better strategy for dealing with
PCI devices which get hidden by FSP / are in violation of PCI spec.

But since discussion on Gerrit seems to have died, reviving it here for a
larger audience.

cheers,
Matt
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to