[U-Boot] [PATCH] fdt: pci: Permit use of reg property for setting device address

Bin Meng bmeng.cn at gmail.com
Tue Jan 20 13:59:00 CET 2015


Hi Simon,

On Tue, Jan 20, 2015 at 11:19 AM, Simon Glass <sjg at 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 at 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.

Regards,
Bin


More information about the U-Boot mailing list