On 11/08/2017 01:30 PM, Joakim Tjernlund wrote:
> 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:[email protected]]
>>> Sent: Friday, October 20, 2017 9:13 PM
>>> To: [email protected]; Mingkai Hu <[email protected]>; 
>>> [email protected]; [email protected]; Z.q. Hou 
>>> <[email protected]>; York Sun <[email protected]>; Xiaowei Bao 
>>> <[email protected]>; [email protected]; M.h. Lian 
>>> <[email protected]>
>>> 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 <[email protected]>
>>>> ---
>>>>  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? 
> 

Joakim,

I understand your concern. I don't like the delay either.

Xiaowei,

You said this only occur for very few special devices. Can you explain
more? How can you avoid this delay for general cases?

York
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to