
On Thu, Jan 21, 2016 at 04:35:33PM -0700, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
PCI controllers should be enumerated at startup so that PCI devices such as Ethernet controllers are available at startup. Fix board_init_r() not to skip calling pci_init() when CONFIG_DM_PCI is defined, and provide an implementation of pci_init() for the DM case.
Fixes: 96350f729c42 ("dm: tegra: net: Convert tegra boards to driver model for Ethernet") Signed-off-by: Stephen Warren swarren@nvidia.com
I'm not sure if relying on the side-effects of calling uclass_{first,ext}_device is the correct approach; is there a more explicit way to probe all PCI controllers?
Arguably, perhaps we should introduce a "pci start" command instead of this change to be consistent with e.g. USB. However, that would be a regression relative to earlier versions of U-Boot.
I think a command should work fine. Given that some boards might rely on the existing behaviour, perhaps this could be controlled via a configuration option. Another alternative might be to move the call to pci_init() into board files. Then boards can choose to integrate the new "pci start" command into their boot commands and remove the pci_init() call at that point to preserve compatibility.
common/board_r.c | 2 -- drivers/pci/pci-uclass.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-)
Either way, this change restores network support on Jetson TK1, so
Tested-by: Thierry Reding treding@nvidia.com