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.

TMS320C6678: Reset the C6678 via PCIe from external Host PCIe RC

Part Number: TMS320C6678

Hi,

we have been reviewing answers on e2e such as below, and are looking for confirmation that it is possible to reset a C6678 without having to do a POR. We are looking for a working proven mechanism to do the reset via PCIe from an external PCIe RC Host.

During warm boot, the reset is coming from platform reset, by executing Windows 10 restart, power stays on for entire platform. Windows 10 will perform PCIe bus reset, which causes typical PCIe cards to performs their own reset operations and come to the same  consistent state as from cold reset. Unfortunately C6678 does not respond to PCIe bus reset currently in any way. As a result of this situation, upon Windows 10 reboot and C6678 Windows driver re-loading, it finds C6678 in unknown state. 

 

What we need to do in this situation is to bring C6678 into consistent state, which would be to perform a reset operation on it via PCIe. Doing so is a common practice for Windows 10 drivers, which communicate with a peripheral device. What we are inquiring about is a 100% reliable way of resetting C6678 via PCIe. If it is possible, then please advise how to accomplish that.

As a side note, here is the current Cold boot flow:

During cold boot, the reset is coming from power off state, Windows 10 boots and enumerates PCIe bus. By that time C6678 completes its own POR reset and runs its boot rom code, which enables PCIe support (thus Windows can see C6678 as PCIe type device). Then Windows 10 device driver for C6678 will set up inbound and outbound translation, and configure C6678 using access to its registers via PCIe. Driver will then initialize C6678 PLLs, MSMC, DDR and program IBL, instruct C6678 jump to IBL, then program app and instruct C6678 jump to app to start executing it. Finally Windows 10 driver for C6678 will declare it ready. 

The sequence above works well.


Could you comment on how to accomplish a reliable reset via PCIe bus reset?

Thanks,

--Gunter

  • Hi Gunter,

    I've notified the sw team. Can you please share wich SDK version are you using?

    Best Regards,
    Yordan
  • Hi,

    Some questions for this setup: do you use TI 6678 EVM, do you use the AMC PCIE adapter card to put TI EVM into Windows PC? If yes, the cold boot should work 100% reliably.

    For the warm boot, see the previous E2E discussion: "The TMDXEVM667X EVMs are actually MicroTCA/AMC compatible cards. This form factor does not use the PCIe PE_RST line so a passive adapter between MicroTCA/AMC and PCIe cannot exist. Thus, when designing a production PCIe card, it is suggested to connect the PE_RST line on the PCIe connector to some logic that can sequence the POR and RESETFULL lines on the device." So, if the adapter is modified the warm boot should have the same effects as cold boot.

    Regards, Eric