[U-Boot] [PATCH] pci: restore initialization for DM_PCI

Bin Meng
2016-01-22T03:53:59Z

On Fri, Jan 22, 2016 at 11:36 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 21 January 2016 at 18:39, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Hi Stephen,
>>
>> On Fri, Jan 22, 2016 at 7:35 AM, Stephen Warren <swarren@wwwdotorg.org> 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.
>>>
>>
>> What exact issue are you trying to fix? I posted the same question on
>> Simon's patch [1] before. Does your patch and Simon's fix the same
>> issue?
>>
>> Note I submitted a similar patch [2] last year for x86 only, to
>> explicitly trigger the PCI enueration. But it was not accepted.
>>
>>> 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.
>>> ---
>>
>> [1] http://patchwork.ozlabs.org/patch/569323/
>> [2] http://patchwork.ozlabs.org/patch/500246/
>>
>> Regards,
>> Bin
>
> This does go against the driver-model philosophy of lazy init. I
> wonder if we should add this patch with a Kconfig option to enable it?
> Then it can be enabled only for boards that need it.
>

I suspect the issue is somewhere else. On Intel Galileo with a PCI
ethernet, it works fine without such explicit pci init. Which PCI
ethernet driver does not work on Tegra?

Regards,
Bin