SD card clock always runs in Jetpack 3.1

I have a system based on the TX1 that’s being prepared for FCC certification testing. I’ve noticed that I’ve got some noise coming off the clock signal on the SD card, and it turns out that when a card is inserted, the clock signal is always running regardless of any data transaction that is happening. We haven’t noticed this before, and when I reverted back to to Jetpack 3.0/L4T24.2.1, I’m not seeing this behavior, the clock only runs when the card is being accessed.
I’m using a custom carrier board, but I went back to the nVidia dev board and I measured the same behavior on the dev board… clock is running constantly on Jetpack 3.1/L4T28.1 while the card is inserted, but Jetpack 3.0/L4T24.2.1 doesn’t have this problem.

This will impact my ability to pass FCC certification, and it appears to be a kernel driver issue with the latest L4T28.1. Is there anyone at nVidia who has seen this issue before? Is there a way to fix it?

Hi dmillard,

Do you mean on Jetpack 3.1/L4T28.1 CLK on SD socket keep running after a card inserted? How about JetPack 3.2 DP?

That’s right, the CLK on SD socket keeps running after a card is inserted. Previously, the CLK only ran when there was a transaction occuring on the SD card, but now with Jetpack 3.1 the CLK is running continuously.

I can’t test it on Jetpack 3.2 DP because that will only install on a TX2 and I’m using the TX1.

Could you help to print the plat->disable_rtpm in sdhci-tegra.c to check the power manager status.

I inserted some print messages into sdhci-tegra.c:sdhci_tegra_parse_dt(), and got these results after booting:

nvidia@tegra-ubuntu:~$ dmesg | grep disable_rtpm
[ 3.478019] plat->disable_rtpm = FALSE
[ 3.537843] plat->disable_rtpm = FALSE
[ 3.582228] plat->disable_rtpm = FALSE

The device tree has no instance of the disable_rtpm property that I can see.

Could you take time to trace driver to know when the clock is enabled and find the different for 24.2 and 28.1 to investigate the possible way to modify it like 24.2