[U-Boot] [PATCH 1/1] cmd: usb: display bus number

Marek Vasut marex at denx.de
Mon Mar 18 20:39:59 UTC 2019


On 3/18/19 9:05 PM, Heinrich Schuchardt wrote:
> On 1/2/19 7:33 PM, Heinrich Schuchardt wrote:
>> On 1/2/19 5:37 PM, Marek Vasut wrote:
>>> On 1/2/19 5:03 PM, Heinrich Schuchardt wrote:
>>>> On 1/2/19 3:21 PM, Marek Vasut wrote:
>>>>> On 1/2/19 12:29 PM, Heinrich Schuchardt wrote:
>>>>>> If multiple USB buses exist, the output of the commands 'usb tree' and 'usb
>>>>>> info' is confusing because it is not clear where the output for a new bus
>>>>>> starts.
>>>>>>
>>>>>> Print an additional line for each bus indicating the bus number, e.g.
>>>>>>
>>>>>> => usb tree
>>>>>> USB device tree:
>>>>>> USB bus 0
>>>>>>   1  Hub (5 Gb/s, 0mA)
>>>>>>      U-Boot XHCI Host Controller
>>>>>>
>>>>>> USB bus 1
>>>>>>   1  Hub (5 Gb/s, 0mA)
>>>>>>      U-Boot XHCI Host Controller
>>>>>>
>>>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>>>>>> ---
>>>>>>  cmd/usb.c | 1 +
>>>>>>  1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/cmd/usb.c b/cmd/usb.c
>>>>>> index 0ccb1b5148..6da945c376 100644
>>>>>> --- a/cmd/usb.c
>>>>>> +++ b/cmd/usb.c
>>>>>> @@ -470,6 +470,7 @@ static void usb_for_each_root_dev(usb_dev_func_t func)
>>>>>>  		if (!device_active(bus))
>>>>>>  			continue;
>>>>>>  
>>>>>> +		printf("USB bus %d\n", bus->seq);
>>>>>
>>>>> Isn't this only valid if you use SEQ_ALIAS ?
>>>>
>>>> Kconfig symbol SEQ_ALIAS does not exist. I assume you mean DM_SEQ_ALIAS.
>>>>
>>>> In device_probe() seq is set unconditionally
>>>> (drivers/core/device.c:306).
>>>>
>>>> CONFIG_DM_SEQ_ALIAS=y allows to influence the value of seq via the
>>>> device tree.
>>>
>>> I know what it does. Without this option being set, the bus->seq number
>>> will be either some obscure gigantic number or undefined, right ?
>>>
>>
>> I disabled CONFIG_DM_SEQ_ALIAS and this is the output on my MACCHIATObin
>> (with the second USB bus enabled in the device tree).
>>
>> => usb start
>> starting USB...
>> USB0:   Register 2000120 NbrPorts 2
>> Starting the controller
>> USB XHCI 1.00
>> USB1:   Register 2000120 NbrPorts 2
>> Starting the controller
>> USB XHCI 1.00
>> scanning bus 0 for devices... 1 USB Device(s) found
>> scanning bus 1 for devices... 1 USB Device(s) found
>>        scanning usb for storage devices... 0 Storage Device(s) found
>> => usb tree
>> USB device tree:
>> USB bus 0
>>   1  Hub (5 Gb/s, 0mA)
>>      U-Boot XHCI Host Controller
>>
>> USB bus 1
>>   1  Hub (5 Gb/s, 0mA)
>>      U-Boot XHCI Host Controller
>>
>> Could you, please, indicate under which circumstances seq might be
>> undefined.
>>
>> Best regards
>>
>> Heinrich
>>
> 
> Hello Marek,
> 
> In device_bind_common() dev->seq is set to -1 independent of
> DM_SEQ_ALIAS. dev->req_seq is set to -1 if DM_SEQ_ALIAS is not set.
> 
> When the device is probed in device_probe() a call to function
> uclass_resolve_seq() is used to set the actual value of dev->seq.
> 
> As shown in the example above devices are number beginning with zero if
> dev->req_seq is not set via DM_SEQ_ALIAS.
> 
> Do you still see any reason why this patch should not be merged?

Would it rather make sense to print the bus name ? That might be a much
better identifier than a random number.

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list