PCIe Clock synchronization issue

My question is related to Tegra TK1. I want to connect it to an end point through PCIe. My endpoint has its own clock. When I connect reference clock from root complex (TK1) to end point device, then PCIe communication/enumeration works fine. I wanted to ask that if there is some feature available in Tegra K1 processor through which (by programming) I can disable this common clock so that both root complex and the endpoint devices work with independent clocks?

Hi, I am facing same issue. Endpoint is only enumerated in TK1’s Linux when the PCIe reference clock is supplied by TK1 to endpoint. No enumeration occurs in case of separate (provided via an oscillator) PCIe reference clock on endpoint.

I also tried disabling spread spectrum clocking in L4T kernel by changing

#define USE_PLLE_SS 1

to

#define USE_PLLE_SS 0

in arch/arm/mach-tegra/clock.h but still getting same results. Can someone comment on the issue?

P.S: I am running R21.7 version of L4T.

There is no such feature. For the endpoint to work, the reference clock must come only from TK1.

Thanks for confirmation.