Hi Stephen,

On 22 January 2016 at 12:38, Stephen Warren <[email protected]> wrote:
>
> On 01/21/2016 09:03 PM, Simon Glass wrote:
>>
>> Hi Bin,
>>
>> On 21 January 2016 at 20:53, Bin Meng <[email protected]> wrote:
>>>
>>> On Fri, Jan 22, 2016 at 11:36 AM, Simon Glass <[email protected]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> On 21 January 2016 at 18:39, Bin Meng <[email protected]> wrote:
>>>>>
>>>>> Hi Stephen,
>>>>>
>>>>> On Fri, Jan 22, 2016 at 7:35 AM, Stephen Warren <[email protected]> 
>>>>> wrote:
>>>>>>
>>>>>> From: Stephen Warren <[email protected]>
>>>>>>
>>>>>> 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 <[email protected]>
>>>>>> ---
>>>>>> 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?
>>
>>
>> It could be because that board probes PCI to get its serial to work.
>>
>> This could be fixed on Tegra by adding an Ethernet node to the device
>> tree to cause it to be probed. But I don't think that should be a
>> requirement.
>
>
> Since PCI devices are automatically probed via standard bus protocols, I 
> believe we shouldn't have to add them to the DT.
>
> However, I could accept that we should add the PCI controller to DT in order 
> for the controller to be probed, and when that happens, the bus should be 
> enumerated thus causing all the Ethernet devices to be probed. However, the 
> PCI controller is already in DT, and this process isn't being kicked off, so 
> if that's the way it's supposed to work, there's a bug there.

So what do you think about a Kconfig option that tells U-Boot that PCI
must be probed after relocation?

Regards,
Simon
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to