Hi, On Wed, Jan 21, 2015 at 3:05 AM, Simon Glass <s...@chromium.org> wrote: > Hi Sjoerd, > > On 20 January 2015 at 10:06, Sjoerd Simons > <sjoerd.sim...@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.sim...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot