[Jetson-TK1, Tegra K1] Explanation of the different core clocks?

Is there any explanation of the different core clocks listed under /sys/kernel/debug/clock/dvfs ? The reason I want to know, is that when I manually set the EMC clock, two different PLL clocks are sometimes added.

For example:

  • at EMC 600 MHz, pll_c clock is active
  • at EMC 396 MHz, pll_m clock is active
  • at EMC 204 MHz, no PLL clock is active

I guess the PLL clock is related to clock division at some stage, but I am unsure how and why this happens?

Excerpt of the clocks I am interested in (I am ideally interested in all of them, but remove most of the idle clocks from below to save space):

root@jetson:/sys/kernel/debug/clock# cat dvfs
   clock      rate       mV
--------------------------------
vdd_cpu 810 mV dfll mode:
   nominal    1260    mV
   offset     0       mV
   thermal    810     mV
   cpu_g      204000000  720  mV
vdd_core 900 mV:
   nominal    1150    mV
   offset     0       mV
   thermal    0       mV
   override   0       mV [1100...1150]
   mselect    204000000  900  mV
   emc        396000000  850  mV
   pciex      250000000  850  mV
   sbus       204000000  850  mV
   host1x     81600000   800  mV
   pll_m      792000000  800  mV <<< Especially this one
   pll_c      792000000  800  mV <<< Especially this one
   cpu_lp     0          0    mV

I’m guessing the clock framework might be a complex topic. Have you already read the TRM? There’s some 200 pages for the “Clock and Reset Controller” and a few pages just about the PLLs.

I had a look in the TRM, but the details are extremely sparse and doesn’t really say much about what these clocks drive, nor why they are dynamically turned on and off when I change memory frequency.

EMC is an External Memory Controller, a module that interfaces with external DDR3L memories.

Please refer to PLL clock source & divider used per EMC freq in https://developer.nvidia.com/rdp/assets/tegra-k1-memory-characterization -> TK1_MemoryCharacterization_AppNote_DA07217003v01.pdf -> Table 2.

Thanks a lot youngk, where did you find this information?

You can find more and more docs and tools under the main portal:

https://developer.nvidia.com/embedded-computing

For the memory characterization doc, click “Hardware Design and Development” -> “Tools”