[U-Boot] [PATCH] pci: Add PCI_SLOT macro to include/pci.h

Stefan Roese sr at denx.de
Tue Jan 22 09:53:20 UTC 2019


Hi Simon,

On 22.01.19 01:32, Simon Glass wrote:
> On Sat, 19 Jan 2019 at 00:46, Stefan Roese <sr at denx.de> wrote:
>>
>> This macro will be used the by the Marvell Armada XP/38x PCIe driver,
>> which is moved to DM right now.
>>
>> Signed-off-by: Stefan Roese <sr at denx.de>
>> Cc: Bin Meng <bmeng.cn at gmail.com>
>> Cc: Simon Glass <sjg at chromium.org>
>> ---
>>   include/pci.h | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/include/pci.h b/include/pci.h
>> index 785d7d28b7..f4a9e025b3 100644
>> --- a/include/pci.h
>> +++ b/include/pci.h
>> @@ -501,6 +501,7 @@ typedef int pci_dev_t;
>>   #define PCI_BUS(d)             (((d) >> 16) & 0xff)
>>   #define PCI_DEV(d)             (((d) >> 11) & 0x1f)
>>   #define PCI_FUNC(d)            (((d) >> 8) & 0x7)
>> +#define PCI_SLOT(d)            (((d) >> 3) & 0x1f)
> 
> This seems unrelated to the other macros, since is shifts left only 3
> positions. Can you perhaps move it to the end and add a comment as to
> what the input is and what it returns? It seems different to the
> others.

We seem to have the same different interpretation (U-Boot vs Linux)
as remarked in my last mail. It seems that U-Boot expects devfn
to reside in bits 15-8.

Regarding the input and what it returns: My current understanding is,
that PCI_DEV in U-Boot is identical to PCI_SLOT in Linux (PCI_DEV is
not used there at all). The input here is devfn as well.

I can adapt my driver to use PCI_DEV instead. But frankly, these
different macro implementations (U-Boot vs Linux) are confusing.

Thanks,
Stefan


More information about the U-Boot mailing list