[U-Boot] [PATCH 2/9] dm: pci: remove pci_bus_to_hose(0) calling

M.H. Lian minghuan.lian at nxp.com
Tue Oct 11 09:26:32 CEST 2016


Hi Bin,

Please see my comments inline.

Thanks,
Minghuan

> -----Original Message-----
> From: Bin Meng [mailto:bmeng.cn at gmail.com]
> Sent: Monday, October 10, 2016 7:55 PM
> To: M.H. Lian <minghuan.lian at nxp.com>; Simon Glass <sjg at chromium.org>
> Cc: U-Boot Mailing List <u-boot at lists.denx.de>; Mingkai Hu
> <mingkai.hu at nxp.com>; Leo Li <leoyang.li at nxp.com>
> Subject: Re: [U-Boot] [PATCH 2/9] dm: pci: remove pci_bus_to_hose(0)
> calling
> 
> +Simon
> 
> Hi Minghuan,
> 
> On Mon, Oct 10, 2016 at 4:47 PM, Minghuan Lian <Minghuan.Lian at nxp.com>
> wrote:
> > There may be multiple PCIe controllers in a SoC.
> > It is not correct that always calling pci_bus_to_hose(0) to get the
> > first PCIe controller for the PCIe device connected other controllers.
> > We just remove this calling because hose always point the correct PCIe
> > controller.
> >
> > Signed-off-by: Minghuan Lian <Minghuan.Lian at nxp.com>
> > ---
> >  drivers/pci/pci_common.c | 10 ----------
> >  1 file changed, 10 deletions(-)
> >
> > diff --git a/drivers/pci/pci_common.c b/drivers/pci/pci_common.c index
> > 1755914..448e814 100644
> > --- a/drivers/pci/pci_common.c
> > +++ b/drivers/pci/pci_common.c
> > @@ -181,11 +181,6 @@ phys_addr_t pci_hose_bus_to_phys(struct
> pci_controller *hose,
> >                 return phys_addr;
> >         }
> >
> > -#ifdef CONFIG_DM_PCI
> > -       /* The root controller has the region information */
> > -       hose = pci_bus_to_hose(0);
> > -#endif
> 
> Again if you fully convert the driver to use DM PCI, this API won't be called.
> And what's broken here? The comment says "The root controller has the
> region information", which is correct.

[Minghuan Lian]  Our SoCs have multiple PCIe controllers - RCs.
Each PCIe controller has different region information.
Only the first PCIe controller is assigned to bus number 0.
The second/third PCIe controllers may be assigned bus number 2 / 3.
 pci_bus_to_hose(0)  is only correct for the first PCIe controller.


> 
> > -
> >         /*
> >          * if PCI_REGION_MEM is set we do a two pass search with preference
> >          * on matches that don't have PCI_REGION_SYS_MEMORY set @@
> > -248,11 +243,6 @@ pci_addr_t pci_hose_phys_to_bus(struct pci_controller
> *hose,
> >                 return bus_addr;
> >         }
> >
> > -#ifdef CONFIG_DM_PCI
> > -       /* The root controller has the region information */
> > -       hose = pci_bus_to_hose(0);
> > -#endif
> > -
> >         /*
> >          * if PCI_REGION_MEM is set we do a two pass search with preference
> >          * on matches that don't have PCI_REGION_SYS_MEMORY set
> > --
> 
> Regards,
> Bin


More information about the U-Boot mailing list