
+Thierry
Hi Bin,
On 20 January 2015 at 05:59, Bin Meng bmeng.cn@gmail.com wrote:
Hi Simon,
On Tue, Jan 20, 2015 at 11:19 AM, Simon Glass sjg@chromium.org wrote:
In commit a62e84d the old functionality of obtaining a PCI address from the 'reg' property was lost. Add it back, so we can support both a compatible string list and a 'reg' property.
This patch fixes PCIe ethernet on Tegra boards.
Signed-off-by: Simon Glass sjg@chromium.org
lib/fdtdec.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 89dac4c..0488607 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -219,8 +219,14 @@ int fdtdec_get_pci_bdf(const void *blob, int node,
/* get vendor id & device id from the compatible string */ ret = fdtdec_get_pci_vendev(blob, node, &dt_vendor, &dt_device);
if (ret)
return ret;
if (ret) {
/* Fall back to using the 'reg' property */
ret = fdtdec_get_int(blob, node, "reg", -1);
if (ret == -1)
return -ENOENT;
*bdf = ret & 0xffffff;
return 0;
} /* extract the bdf from fdt_pci_addr */ *bdf = addr->phys_hi & 0xffff00;
--
How is 'reg' encodeded in Tegra's dts? I feel we should start using standard bindings instead of custom one.
This is as per the 'Numerical Representation' of the Physical Address Formats (in pci supplement v2.1). It seems just as valid as the textual ones.
Regards, Simon