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.

AM6442: Is CPTS mandatory to achieve good performance PTP sync ?

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello Nick,

In these document, I can read " (CPTS) module is used to facilitate host control of time sync operations".

Can we use general purpose timer  (DMTIMER) or is CPTS use mandatory to achieve good performance  (< 100 ns) PTP time synchro 

- with CPSW in MAC or SWITCH Mode ?

- with external PTP trigger ?

- with PCIe ?

- with PRU managing 2 ports ETH ?

Can we use the general purpose CPTS for all the 4 use cases in a linux context ?

Thanks.

  • Yes, CPSW uses the CPTS in the subsystem for timestamping IEEE1588 frames which is the basis for PTP. In Linux you can check the support with ethtool -T eth0. The printout will show the ptp device index, underneath it is CPTS for CPSW. For ICSSG based Ethernet the hardware is IEP0 inside each ICSSG, the PTP device shows up the same.

    You can further use the time sync router to synchronize DMTIMER or the chip level CPTS, but that would be beyond typical PTP.

      Pekka

  • Keep in mind that there are 2 CPTS instances on the AM64x: one CPTS that is actually inside of the CPSW peripheral, and one CPTS that is in the mail domain. The CPTS within the CPSW is the one that is used for timestamping Ethernet packets.

  • Thanks to both of you for the quick answers. My concern is regarding the pins to book in the sysconfig tool (where the name of the peripherals are not the same than in the datasheet or tech ref).

    Let's simplify to our most common use case. We'd like to get the reference time from ETH packets coming from the PTP master. From your answers, I guess that CP GEMAC CPTS0  (= CPSW0 CPTS ? ) ressource are used (rather than CPTS0).
    For now, these are internal only process and signals (which signals by the way? ) ?  so nothing to book in sysconfig, right ? 

    Then I'd like to derive a trigger out sync on these reference time (to have IO or ADC synchronized acquisition)

    Which signals should I book in sysconfig ? It look like there is no SYNCx_OUT available in CP GEMAC CPTS0 only in CPTS0  !
    and how do I link it to the CPSW0 CPTS ? using the TSR ?

  • Hello JPK, 

    It looks like there is a CP_GEMAC_CPTS0_TS_SYNC signal from the table listed in the AM64x datasheet.

    In the TRM Figure 12-344, you can also see that the CPSW CPTS has an output CPSW0_CPTS_SYNC_0 (I believe this should be the same signal as CP_GEMAC_CPTS0_TS_SYNC).

    However, if you'd like to test this out on an AM64x SK or EVM, we have an example where we used TSR (Time Sync Router) to route the signal from CPSW0_CPTS_GENF1 (ID 22) to the SYNC0_OUT signal (ID 24, pin D18) in https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1300940/am6442-1-pps-from-sk-am64b 

    Let us know if you have additional questions about this!

    -Daolin