[U-Boot] [PATCH 2/4 v3] pci: pci_mvebu: Add DM_PCI support and move CONFIG_PCI_MVEBU to defconfig

Stefan Roese sr at denx.de
Mon Feb 11 06:46:02 UTC 2019


Hi Bin,

On 11.02.19 04:25, Bin Meng wrote:
> Hi Stefan,
> 
> On Thu, Jan 31, 2019 at 10:41 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>>
>> Hi Stefan,
>>
>> On Fri, Jan 25, 2019 at 6:53 PM Stefan Roese <sr at denx.de> wrote:
>>>
>>> This patch adds DM_PCI support to the MVEBU PCIe driver. This is
>>> necessary, since all PCI drivers have to be moved to DM (driver model)
>>> until the v2019.07 release.
>>>
>>> To not break git bisect'ablility, this patch also moves CONFIG_PCI_MVEBU
>>> from config headers to the defconfig files.
>>>
>>> Signed-off-by: Stefan Roese <sr at denx.de>
>>> Cc: Dirk Eibach <dirk.eibach at gdsys.cc>
>>> Cc: Mario Six <mario.six at gdsys.cc>
>>> Cc: Chris Packham <chris.packham at alliedtelesis.co.nz>
>>> Cc: Phil Sutter <phil at nwl.cc>
>>> Cc: Marek BehĂșn <marek.behun at nic.cz>
>>> Cc: VlaoMao <vlaomao at gmail.com>
>>> ---
>>> v3:
>>> - Add x530 defconfig / config/foo.h changes
>>> - Remove misleading function comment
>>> - Use PCI_DEV instead of PCI_SLOT
>>> - Introduce mvebu_pcie_ofdata_to_platdata() to remove most functions
>>>    from the loop in mvebu_pcie_bind(). This also enables to usage of
>>>    a udevice pointer for the newly introduced function pci_get_devfn()
>>>
>>>
>>> v2:
>>> - Completely configure the controller based on DT properties. Now
>>>    port and lane are read from the DT nodes and also the tgt and
>>>    attr values are generated using the DT similar to how this is
>>>    done in the Linux driver version. All A38x / XP specific defines
>>>    can now be removed from this driver because of this.
>>> - Please note that now the board specific dts file needs to enable
>>>    the used PCIe ports, as this is also done in Linux.
>>>
>>>   configs/clearfog_defconfig          |   1 +
>>>   configs/controlcenterdc_defconfig   |   3 +
>>>   configs/db-88f6820-amc_defconfig    |   1 +
>>>   configs/db-88f6820-gp_defconfig     |   1 +
>>>   configs/db-mv784mp-gp_defconfig     |   1 +
>>>   configs/ds414_defconfig             |   1 +
>>>   configs/theadorable_debug_defconfig |   2 +
>>>   configs/turris_omnia_defconfig      |   3 +-
>>>   configs/x530_defconfig              |   3 +-
>>>   drivers/pci/Kconfig                 |   9 +
>>>   drivers/pci/pci_mvebu.c             | 470 ++++++++++++++++------------
>>>   include/configs/clearfog.h          |   1 -
>>>   include/configs/controlcenterdc.h   |   3 -
>>>   include/configs/db-88f6820-amc.h    |   1 -
>>>   include/configs/db-88f6820-gp.h     |   1 -
>>>   include/configs/db-mv784mp-gp.h     |   1 -
>>>   include/configs/ds414.h             |   1 -
>>>   include/configs/theadorable.h       |   7 -
>>>   include/configs/turris_omnia.h      |   1 -
>>>   include/configs/x530.h              |   1 -
>>>   scripts/config_whitelist.txt        |   1 -
>>>   21 files changed, 296 insertions(+), 217 deletions(-)
>>>
>>
>> [snip]
>>
>>> +static int mvebu_get_tgt_attr(ofnode node, int devfn,
>>> +                             unsigned long type,
>>> +                             unsigned int *tgt,
>>> +                             unsigned int *attr)
>>> +{
>>> +       const int na = 3, ns = 2;
>>> +       const __be32 *range;
>>> +       int rlen, nranges, rangesz, pna, i;
>>> +
>>> +       *tgt = -1;
>>> +       *attr = -1;
>>> +
>>> +       range = ofnode_get_property(node, "ranges", &rlen);
>>> +       if (!range)
>>> +               return -EINVAL;
>>> +
>>> +       pna = 2; /* hardcoded for now because of lack of of_n_addr_cells() */
>>
>> Why? U-Boot has of_n_addr_cells() API.
> 
> Is this comment addressed?

I did send an answer ~ one week ago:

https://www.mail-archive.com/u-boot@lists.denx.de/msg314633.html

I'll send a patch to add the comment shortly.

Thanks,
Stefan


More information about the U-Boot mailing list