This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

About C6657 PCIe Hot reset

Guru 15520 points

Hi,

I'm using C6657 as PCIe endpoint.
I have a question about Hot Reset of PCIe.

If PCIe endpoint get Hot Reset from root complex,
does it affect to LTSSM_STATE?
I would like to know after Hot reset whether LTSSM will be in what kind of state.
Is it HOT_RESET_ENTRY(0x1E) or HOT_RESET(0x1F) which are written in
PCIe User's Guide page.214 "Appendix A LTSSM States"?

best regards,
g.f.

  • Hi,

    Yes, RC Hot Reset affect the endpoint LTSSM_STATE. It is goes to HOT_RESET state.

    Thanks,

  • Hi Ganapathi,

    Thank you for the reply.

    I understood that it goes to HOT_RESET state.
    But somehow it never goes to HOT_RESET state after hot reset.

    As I mentioned at other post it's value is 0x11 even if hot reset occur.

    best regards,
    g.f.

  • Hi,

    I think DSP does not receive the Hot Reset properly from Host. Please close any one thread and continue another one thread for the same issue discussion.

    Thanks,

  • Hi,

    Thank you for the reply.

    >I think DSP does not receive the Hot Reset properly from Host.
    Does it mean problem is Root complex side?

    Sorry, I will close other thread.

    best regards,
    g.f.

  • Hi Ganapathi,

    When Root Complex send Hot Reset,
    the state of LTSSM_STATE was "HOT_RESET_ENTRY" and it never be to "HOT_RESET" state.
    Is this mean that C6657 didn't detect the Hot reset?

    I have another question about hot reset.
    Is there any method to detect hot reset other than LTSSM_STATE at C6657?
    (For example, polling the interrupt.)

    best regards,
    g.f.

  • Hi,

    The DSP didn't detect the Root complex Hot Reset means End point software should issue a local reset to the PCIESS and re-initialize the PCIe module. Refer section "2.14.4.1 Hot Reset Request Interrupt" on PCIe user guide.

    Please take a look at below e2e thread.

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/237375/851186.aspx#851186

    Thanks,

  • Hi Ganapathi,

    Thank you for the reply.

    I will try re-initialization after local reset.

    By the way, is there any method to detect hot reset other than LTSSM_STATE at C6657?
    (For example, polling the interrupt.)

    best regards,
    g.f.

  • Hi,

    Please take a look at PCIe as End Point Initialization Sequence on PCIe user guide.

    In step6: Disable link training by de-asserting the LTSSM_EN bit in the PCIESS Command Status Register (CMD_STATUS[LTSSM_EN]=0). Upon reset, the LTSSM_EN is de-asserted automatically by hardware.

    Thanks,

  • Hi Ganapathi,

    I'm very sorry but let me ask again.
    This problem occured at my customer and they still having the problem.
    They have no clue to fix this problem right now.

    They have following questions :

    1. In the specification of PCIe, does Endpoint always need to consider the hot reset
       which is come from RootComplex after link training?
       And does it only need to consider the 1st hot reset after start-up?

    2.
    They are looking at PCIe user guide page.55 Initialization Sequence #8
    and have a question to make them sure.
    Does re-training of PCIe will be performed if the LTSSM_EN is re-enabled?

    3.
    If consideration of hot reset is required, I recognize that the following process is needed.
    After hot reset is asserted, the RootComplex will recognize the Endpoint by doing following process,
    so that re-training of PCIe will performed. Is my recognition correct?
     
      Re-enable the LTSSM_EN.

    4.
    They have a question again about statement of LTSSM_STATE after Hot Reset.
    I told that it will go to "HOT_RESET(0x1F)" after Hot Reset is asserted.
    But in their system it goes to "HOT_RESET_ENTRY(0x1E) and if they de-assert the Hot Reset
    the statement of LTSSM_STATE will be "DETECT_QUIET(0x00)".

    They want to be sure whether the statement of LTSSM_STATE will really
    become "HOT_RESET(0x1F)" after Hot Reset.

    So, the statement will not be "HOT_RESET_ENTRY(0x1E)" but "HOT_RESET(0x1F)".
    If it's not "HOT_RESET(0x1F)", the Hot Reset from RootComplex are not recognized at Endpoint.
    Is it correct?

    So, they need to assert local reset to PCIeSS and re-initialize the PCIeSS, right?

    best regards,
    g.f.