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: Power management through PCIe

Part Number: TMS320C6678

Hi,

I have a question from my customer about below scenario.

Suppose two C6678 devices are connected with PCIe.
DSP1 is Root Complex and DSP2 is End Point.
To reduce system power consumption, customer is planning to power off all eight C66x cores inside DSP2 side.

As all C66x cores are off, DSP2 cannot wake up by itself.
So customer is thinking to wake up DSP2 from DSP1 by accessing Power Sleep Controller(PSC) through PCIe.
(PCIe Inbound is configured to enable PSC accesses.)

Questions:
1) Is above scenario is possible?
DSP1 can control all C66x on/off via PCIe accesses?

2) If answer to #1 is yes, which parts of DSP2 need to be re-initialized after DSP2 wakeup?
C66x core domains(address 0x0180:0000~) are enough?
Other peripheral modules are not power-off, so no initialization is required?

3) How long does it take DSP2 cores start working after power-on again?

Thanks and regards,
Koichiro Tashiro

  • Hi,

    #1, Yes, it is possible from DSP 1 to power off, then power on 8 all cores of DSP 2.

    #2. For the sequence, see the example code under: pdk_c667x_2_0_16\packages\ti\boot\examples\pcie. The example uses the Linux PC as the PCIE RC, in your case. The RC is DSP1.

    • DSP1 side: Please check the \linux_host_loader\pciedemo.c function dspLocalReset(). If you just want to reset DSP cores, ignore the peripheral reset code.
    • DSP2 side: pcieboot_localreset

    #3, We didn't measure that. The PCIE transaction is fast, major time will be spent in PSC domain switch, also you need to load some application code into DSP2 before out of reset, this take some time.

    Regards, Eric