Other Parts Discussed in Thread: DRA821
Dear TI team,
we've got some questions regarding details of the AM64x' PCIe Precision Time Measurement (PTM) implementation.
- What Endianness does the AM64x use/expect for the delay field in PTM ResponseD messages, and is this configurable?
- What values should we program in the PTM PHY latency parameters for Gen1 and for Gen2 speeds?
Some background on AM64x PCIe in general:
- The AM64x TRM doesn't yet contain any description of the PCIe registers, but according to e.g. TI's linux sources the AM64x's PCIe controller is "the same" as on the J721e and J7200. I'm thus looking at the J7200 / DRA821 TRM, and this was a close enough match so far.
Some background regarding ResponseD endianness:
- The original PCIe specification for PTM was ambiguous on the endianness of the propagation delay in ResponseD messages. The PCIe specification assumed that to be big-endian, the implementors like AM65x SR1.0 or Intel Apollo Lake assumed it to be little-endian.
- The AM65x SR 2.0 has a bit PTM_REQ_PDEL_BYTE_REV that allows the endianness to be reversed. The AM65x SR2.0 is thus configurable to match link partners that use either endianness, which is a big plus.
- There's a PCI-SIG ECN that defines a method to auto-detect the endianness.
Some background regarding PHY latency parameters:
- PCIe PTM assumes that the propagation delay "on the wire" between EP and RC is symmetrical.
- Actual implementations are apparently not symmetrical with regard to these delays.
- The J7200/DRA821 TRM says "This field should be programmed with the parameter Receive Latency in [ns] from the PHY Datasheet." - I believe this means TI should specify the actual values that should be programmed.
Best regards,
Dominic