From: Thierry Reding <treding@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] pci: tegra: Fix port information parsing
Date: Wed, 21 Jan 2015 09:59:35 +0100 [thread overview]
Message-ID: <20150121085933.GA26340@ulmo.nvidia.com> (raw)
In-Reply-To: <CAPnjgZ2Y3km965KuUFh7MFffzu+yVFxzzf1CuFU57Sx=vcxP7Q@mail.gmail.com>
On Tue, Jan 20, 2015 at 12:05:40PM -0700, Simon Glass wrote:
> Hi Sjoerd,
>
> On 20 January 2015 at 10:06, Sjoerd Simons
> <sjoerd.simons@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@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.
Only that patch isn't sufficient because tegra_pcie_parse_port_info()
then never calls fdtdec_get_pci_addr() so the index returned will be
undefined (as in whatever happened to be on the stack - 1).
I use the below patch to fix networking on Jetson TK1. It's kind of a
mix between both 430815 and this one, so I didn't feel like making it a
proper patch because I assume you'll want to fix this in fdtdec and the
Tegra bits in a follow-up patch?
Thierry
-------------- next part --------------
diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c
index d344673cc549..0ad959e598c6 100644
--- a/drivers/pci/pci_tegra.c
+++ b/drivers/pci/pci_tegra.c
@@ -479,6 +479,12 @@ static int tegra_pcie_parse_port_info(const void *fdt, int node,
pci_dev_t bdf;
int err;
+ err = fdtdec_get_pci_addr(fdt, node, 0, "reg", &addr);
+ if (err < 0) {
+ error("failed to parse \"reg\" property");
+ return err;
+ }
+
err = fdtdec_get_int(fdt, node, "nvidia,num-lanes", 0);
if (err < 0) {
error("failed to parse \"nvidia,num-lanes\" property");
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 487122eebcf6..77e694d6f53f 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -224,13 +224,13 @@ int fdtdec_get_pci_bdf(const void *blob, int node,
u16 dt_vendor, dt_device, vendor, device;
int ret;
+ /* extract the bdf from fdt_pci_addr */
+ *bdf = addr->phys_hi & 0xffff00;
+
/* get vendor id & device id from the compatible string */
ret = fdtdec_get_pci_vendev(blob, node, &dt_vendor, &dt_device);
if (ret)
- return ret;
-
- /* extract the bdf from fdt_pci_addr */
- *bdf = addr->phys_hi & 0xffff00;
+ return 0;
/* read vendor id & device id based on bdf */
pci_read_config_word(*bdf, PCI_VENDOR_ID, &vendor);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150121/12a77553/attachment.pgp>
next prev parent reply other threads:[~2015-01-21 8:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-20 17:06 [U-Boot] [PATCH] pci: tegra: Fix port information parsing Sjoerd Simons
2015-01-20 19:05 ` Simon Glass
2015-01-21 2:37 ` Bin Meng
2015-01-21 8:24 ` Thierry Reding
2015-01-21 9:15 ` Bin Meng
2015-01-21 9:40 ` Thierry Reding
2015-01-21 16:04 ` Bin Meng
2015-01-23 10:19 ` Thierry Reding
2015-01-23 16:49 ` Stephen Warren
2015-01-24 4:37 ` Bin Meng
2015-01-24 6:35 ` Stephen Warren
2015-01-24 13:24 ` Simon Glass
2015-01-26 17:44 ` Stephen Warren
2015-01-26 18:18 ` Simon Glass
2015-01-24 4:19 ` Bin Meng
2015-01-30 12:24 ` Thierry Reding
2015-01-30 16:29 ` Simon Glass
2015-01-31 14:41 ` Bin Meng
2015-01-21 9:19 ` Sjoerd Simons
2015-01-21 8:59 ` Thierry Reding [this message]
2015-01-21 9:50 ` Thierry Reding
2015-01-21 16:07 ` Bin Meng
2015-01-22 16:37 ` Simon Glass
2015-01-24 3:33 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150121085933.GA26340@ulmo.nvidia.com \
--to=treding@nvidia.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox