[U-Boot] [PATCH] pci: tegra: Fix port information parsing
Bin Meng
bmeng.cn at gmail.com
Wed Jan 21 03:37:07 CET 2015
Hi,
On Wed, Jan 21, 2015 at 3:05 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Sjoerd,
>
> On 20 January 2015 at 10:06, Sjoerd Simons
> <sjoerd.simons at collabora.co.uk> wrote:
>> commit a62e84d7b1824a202dd incorrectly changed the tegra pci code to the
>> new fdtdec pci helpers. To get the device index of the root port, the
>> "reg" property should be parsed from the dtb (as was previously the
>> case).
>>
>> With this patch i can successfully network boot my jetson tk1
>>
>> Signed-off-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
>> ---
>> drivers/pci/pci_tegra.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> Can you also please take a look at this patch?
>
> http://patchwork.ozlabs.org/patch/430815/
>
> It tries to support both options.
Although I still don't see how the Tegra's dts is written, I feel this
patch is doing correctly.
>>
>> diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c
>> index f9e05ad..67b5fdf 100644
>> --- a/drivers/pci/pci_tegra.c
>> +++ b/drivers/pci/pci_tegra.c
>> @@ -459,7 +459,6 @@ static int tegra_pcie_parse_port_info(const void *fdt, int node,
>> unsigned int *lanes)
>> {
>> struct fdt_pci_addr addr;
>> - pci_dev_t bdf;
>> int err;
>>
>> err = fdtdec_get_int(fdt, node, "nvidia,num-lanes", 0);
>> @@ -470,13 +469,13 @@ static int tegra_pcie_parse_port_info(const void *fdt, int node,
>>
>> *lanes = err;
>>
>> - err = fdtdec_get_pci_bdf(fdt, node, &addr, &bdf);
>> + err = fdtdec_get_pci_addr(fdt, node, 0, "reg", &addr);
I suggest replace 0 to FDT_PCI_SPACE_CONFIG.
>> if (err < 0) {
>> error("failed to parse \"reg\" property");
>> return err;
>> }
>>
>> - *index = PCI_DEV(bdf) - 1;
>> + *index = PCI_DEV(addr.phys_hi) - 1;
>>
>> return 0;
>> }
Based on this patch, I think Tegra's dts just uses "reg" to encode the
device number into fdt_pci_addr.phys_hi. The bus number and function
number are not there.
Regards,
Bin
More information about the U-Boot
mailing list