[U-Boot] [PATCH] fdt: pci: Permit use of reg property for setting device address
Bin Meng
bmeng.cn at gmail.com
Wed Jan 21 03:00:39 CET 2015
Hi Simon,
On Tue, Jan 20, 2015 at 10:31 PM, Simon Glass <sjg at chromium.org> wrote:
> +Thierry
>
> Hi Bin,
>
> On 20 January 2015 at 05:59, Bin Meng <bmeng.cn at gmail.com> wrote:
>> 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.
>
> 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.
>
I still don't get it. The 'Numerical Representation' of the Physical
Address Formats (in pci supplement v2.1) is already supported in
commit a62e84d. That's why I want to see how the Tegra's dts is
written and how commit a62e84d could not handle that case.
Regards,
Bin
More information about the U-Boot
mailing list