[PATCH 2/4] pci: Extend 'pci regions' command with bus number

Stefan Roese sr at denx.de
Wed Jan 26 16:43:50 CET 2022


On 1/25/22 17:50, Pali Rohár wrote:
> On Tuesday 25 January 2022 16:53:05 Stefan Roese wrote:
>> On 1/17/22 16:38, Pali Rohár wrote:
>>> 'pci regions' currently prints only region information from bus 0 which
>>> belongs to controller 0. Parser for 'pci regions' cmdline currently ignores
>>> any additional arguments and so U-Boot always uses bus 0.
>>>
>>> Regions are stored in controller (not on the bus) and therefore to retrieve
>>> controller from the bus, it is needed to call pci_get_controller() which
>>> returns root bus. Because bus 0 is root bus, current code worked fine for
>>> controller 0.
>>>
>>> Extend cmdline parser for 'pci regions' to allows specifying bus number,
>>> extend pci_show_regions() code to accept also non-zero bus number and
>>> print bus ranges for which is regions configuration assigned.
>>>
>>> Signed-off-by: Pali Rohár <pali at kernel.org>
>>
>> Nitpicking comment below. But still:
>>
>> Reviewed-by: Stefan Roese <sr at denx.de>
>>
>> Thanks,
>> Stefan
>>
>>> ---
>>>    cmd/pci.c | 10 ++++++----
>>>    1 file changed, 6 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/cmd/pci.c b/cmd/pci.c
>>> index 3b1863f139c9..53edf0d90010 100644
>>> --- a/cmd/pci.c
>>> +++ b/cmd/pci.c
>>> @@ -443,7 +443,7 @@ static const struct pci_flag_info {
>>>    static void pci_show_regions(struct udevice *bus)
>>>    {
>>> -	struct pci_controller *hose = dev_get_uclass_priv(bus);
>>> +	struct pci_controller *hose = dev_get_uclass_priv(pci_get_controller(bus));
>>>    	const struct pci_region *reg;
>>>    	int i, j;
>>> @@ -452,6 +452,7 @@ static void pci_show_regions(struct udevice *bus)
>>>    		return;
>>>    	}
>>> +	printf("Buses %02x-%02x\n", hose->first_busno, hose->last_busno);
>>>    	printf("#   %-18s %-18s %-18s  %s\n", "Bus start", "Phys start", "Size",
>>>    	       "Flags");
>>>    	for (i = 0, reg = hose->regions; i < hose->region_count; i++, reg++) {
>>> @@ -520,8 +521,9 @@ static int do_pci(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>>>    				value = 0;
>>>    				argc--;
>>>    			}
>>> -			if (argc > 1)
>>> -				busnum = hextoul(argv[1], NULL);
>>> +			if (argc > 2 || (argc > 1 && cmd != 'r' && argv[1][0] != 's')) {
>>> +				busnum = hextoul(argv[argc - 1], NULL);
>>> +			}
>>
>> Nitpicking:
>> Single line statements without parentheses is preferred.
> 
> In next patches I'm adding more statements into this branch and I did
> not wanted to make next patches too noisy.

Thanks for the explanation. Fine with me. RB tag is already sent.

Thanks,
Stefan


More information about the U-Boot mailing list