On Wed, 2017-11-08 at 21:05 +0000, York Sun wrote:
> CAUTION: This email originated from outside of the organization. Do not click 
> links or open attachments unless you recognize the sender and know the 
> content is safe.
> 
> 
> On 10/22/2017 07:39 PM, Xiaowei Bao wrote:
> > 
> > -----Original Message-----
> > From: Joakim Tjernlund [mailto:joakim.tjernl...@infinera.com]
> > Sent: Friday, October 20, 2017 9:13 PM
> > To: w...@denx.de; Mingkai Hu <mingkai...@nxp.com>; 
> > tony.obr...@alliedtelesis.co.nz; u-boot@lists.denx.de; Z.q. Hou 
> > <zhiqiang....@nxp.com>; York Sun <york....@nxp.com>; Xiaowei Bao 
> > <xiaowei....@nxp.com>; hamish.mar...@alliedtelesis.co.nz; M.h. Lian 
> > <minghuan.l...@nxp.com>
> > Subject: Re: [U-Boot] [PATCH 3/3] Powerpc: pcie: Make pcie link state 
> > judgement more specific
> > 
> > On Fri, 2017-10-20 at 18:16 +0800, Bao Xiaowei wrote:
> > > CAUTION: This email originated from outside of the organization. Do not 
> > > click links or open attachments unless you recognize the sender and know 
> > > the content is safe.
> > > 
> > > 
> > > For some special reset times for longer pcie devices, the pcie device
> > > may on polling compliance state, the RC considers the pcie device is
> > > link up, but the pcie device is not link up, only the L0 state is link
> > > up state.
> > > 
> > > Signed-off-by: Bao Xiaowei <xiaowei....@nxp.com>
> > > ---
> > >  arch/powerpc/include/asm/fsl_pci.h |  2 ++
> > >  drivers/pci/fsl_pci_init.c         | 10 ++++++----
> > >  2 files changed, 8 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/arch/powerpc/include/asm/fsl_pci.h
> > > b/arch/powerpc/include/asm/fsl_pci.h
> > > index 70a5461..323b182 100644
> > > --- a/arch/powerpc/include/asm/fsl_pci.h
> > > +++ b/arch/powerpc/include/asm/fsl_pci.h
> > > @@ -25,6 +25,8 @@
> > >  #define PCI_LTSSM      0x404   /* PCIe Link Training, Status State 
> > > Machine */
> > >  #define PCI_LTSSM_L0   0x16    /* L0 state */
> > >  #define PCI_LTSSM_L0_PEX_REV3  0x11    /* L0 state for pex rev3*/
> > > +#define LTSSM_PCIE_DETECT_QUIET                0x00    /* Detect state */
> > > +#define LTSSM_PCIE_DETECT_ACTIVE       0x01    /* Detect state */
> > > 
> > >  int fsl_setup_hose(struct pci_controller *hose, unsigned long addr);
> > > int fsl_is_pci_agent(struct pci_controller *hose); diff --git
> > > a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c index
> > > be57e53..9b5f386 100644
> > > --- a/drivers/pci/fsl_pci_init.c
> > > +++ b/drivers/pci/fsl_pci_init.c
> > > @@ -335,15 +335,17 @@ static int fsl_pci_link_up(struct pci_controller 
> > > *hose,
> > >                 pci_ltssm_l0 = PCI_LTSSM_L0;
> > > 
> > >         ltssm = fsl_get_ltssm(hose, pci_info);
> > > -
> > > -       if (ltssm == pci_ltssm_l0) {
> > > +       if (ltssm == LTSSM_PCIE_DETECT_QUIET ||
> > > +               ltssm == LTSSM_PCIE_DETECT_ACTIVE) {
> > > +               enabled = 0;
> > > +       } else if (ltssm == pci_ltssm_l0) {
> > >                 enabled = 1;
> > >         } else {
> > > -               for (i = 0; i < 100 && ltssm < pci_ltssm_l0; i++) {
> > > +               for (i = 0; i < 100 && ltssm != pci_ltssm_l0; i++) {
> > >                         ltssm = fsl_get_ltssm(hose, pci_info);
> > >                         udelay(1000);
> > 
> > Do you really need this long loop here ? It causes a long delay in case the 
> > PCIe device is in permanent polling state. Our device is in polling state 
> > until clocks is configured and that will be done from user space in Linux
> > 
> > Yes, if the pcie device is in permanent polling state, it will take 
> > probably 100ms delay, but this case is occur very few special devices, if 
> > we want to use the pcie device in uboot, we have to wait the device link up 
> > state is ok, so need some time to wait the pcie device ready. if the pcie 
> > slot have no device, the function will return at once, will not bring delay.
> 
> Joakim,
> 
> Are we OK with this change? Can you test it to make sure no negative
> impact on your boards?

Not really happy, what device needs 100 ms extra to exit polling state? 
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to