TX2 NX platform: SD card on sdmmc3 is not work

Dear Community,

My kernel (R32.5.1) works ok ,but sd card doesn’t work on my board.
Some similar problems were found from forums, but none of them can solve the problem of not being able to catch SDCard.How can we use the SDcard?Thanks !

$ cat /proc/device-tree/sdhci@3400000/status
okay

dmesgsd.txt (4.9 KB)

Moving this topic from the Community Feedback forum to the TX2 forum.

I am not sure what kind of topics did you check. This one comes out in my first search result.

sdhci@3400000 is also not sdmmc3.

1 Like

I am trying to modify this,but sd don’t work,
sdhci@3440000 {
status = “okay”;
//cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(X, 4) GPIO_ACTIVE_HIGH>;
cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(C, 3) 0>;
nvidia,cd-wakeup-capable;
/delete-property/ non-removable;
vmmc-always-on;
nvidia,sd-device;
};

kernel log as follows:
[ 24.540257] mmc1: CMD CRC or end bit error, int mask 0xc0000
[ 24.546418] mmc1: CMD CRC or end bit error, int mask 0xc0000
[ 24.555762] mmc1: CMD CRC or end bit error, int mask 0xc0000
[ 24.561858] mmc1: CMD CRC or end bit error, int mask 0x40000
[ 24.567870] mmc1: CMD CRC or end bit error, int mask 0x40000
[ 24.573879] mmc1: CMD CRC or end bit error, int mask 0x40000
[ 24.579886] mmc1: CMD CRC or end bit error, int mask 0x40000

Where is your vmmc-supply? and mmc-ocr-mask = <3>;?

I am trying to modify this,but sd card don’t work,
sdhci@3440000 {
status = “okay”;
//cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(X, 4) GPIO_ACTIVE_HIGH>;
cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(C, 3) 0>;
vqmmc-supply = <&spmic_ldo3>;
vmmc-supply = <&spmic_sd2>;
mmc-ocr-mask = <3>;
nvidia,cd-wakeup-capable;
/delete-property/ non-removable;
vmmc-always-on;
nvidia,sd-device;
};

kernel log as follows:
[ 24.492341] mmc1: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[ 24.492375] mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz
[ 24.492676] mmc1: CMD CRC or end bit error, int mask 0xc0000
[ 24.498712] mmc1: CMD CRC or end bit error, int mask 0xc0000
[ 24.508024] mmc1: CMD CRC or end bit error, int mask 0xc0000
[ 24.514058] mmc1: CMD CRC or end bit error, int mask 0x40000
[ 24.520070] mmc1: CMD CRC or end bit error, int mask 0x40000
[ 24.526073] mmc1: CMD CRC or end bit error, int mask 0x40000
[ 24.532093] mmc1: CMD CRC or end bit error, int mask 0x40000

Please share the full dmesg, the full dts and the schematic of your board design on the sdcard part.

dmesg.txt (71.8 KB)


sdhci dts:
265 sdhci@3440000 {
266 status = “okay”;
267 //cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(X, 4) GPIO_ACTIVE_HIGH>;
268 cd-gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(C, 3) 0>;
269 vqmmc-supply = <&spmic_ldo3>;
270 vmmc-supply = <&spmic_sd2>;
271 mmc-ocr-mask = <3>;
272 nvidia,cd-wakeup-capable;
273 /delete-property/ non-removable;
274 vmmc-always-on;
275 nvidia,sd-device;
276 };
277
278 pinmux@2430000 {
279 pinctrl-names = “default”, “drive”, “unused”;
280 pinctrl-0 = <&pinmux_default>;
281
282 pinmux_default: common {
283 sdmmc3_clk_pg0 {
284 nvidia,pins = “sdmmc3_clk_pg0”;
285 nvidia,function = “sdmmc3”;
286 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
287 nvidia,tristate = <TEGRA_PIN_DISABLE>;
288 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
289 };
290
291 sdmmc3_cmd_pg1 {
292 nvidia,pins = “sdmmc3_cmd_pg1”;
293 nvidia,function = “sdmmc3”;
294 nvidia,pull = <TEGRA_PIN_PULL_UP>;
295 nvidia,tristate = <TEGRA_PIN_DISABLE>;
296 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
297 };
298
299 sdmmc3_dat0_pg2 {
300 nvidia,pins = “sdmmc3_dat0_pg2”;
301 nvidia,function = “sdmmc3”;
302 nvidia,pull = <TEGRA_PIN_PULL_UP>;
303 nvidia,tristate = <TEGRA_PIN_DISABLE>;
304 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
305 };
306
307 sdmmc3_dat1_pg3 {
308 nvidia,pins = “sdmmc3_dat1_pg3”;
309 nvidia,function = “sdmmc3”;
310 nvidia,pull = <TEGRA_PIN_PULL_UP>;
311 nvidia,tristate = <TEGRA_PIN_DISABLE>;
312 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
313 };
314
315 sdmmc3_dat2_pg4 {
316 nvidia,pins = “sdmmc3_dat2_pg4”;
317 nvidia,function = “sdmmc3”;
318 nvidia,pull = <TEGRA_PIN_PULL_UP>;
319 nvidia,tristate = <TEGRA_PIN_DISABLE>;
320 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
321 };
322
323 sdmmc3_dat3_pg5 {
324 nvidia,pins = “sdmmc3_dat3_pg5”;
325 nvidia,function = “sdmmc3”;
326 nvidia,pull = <TEGRA_PIN_PULL_UP>;
327 nvidia,tristate = <TEGRA_PIN_DISABLE>;
328 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
329 };
330 };
331
332 };

Please attach the full dts. Not just copy and paste a partial one.

sdmmc

Please provide the mail,thanks

We don’t provide any mail here. What do you need to provide through mail?

You already provided the schematic and dmesg , the remaining one is the full dts and that is not a private information.
Other people also just directly attach their dts here.

Hi,

If you have a “en_sd_card” for the card power source, then you should give it to your vmmc-supply.

Also, the method to dump full dts is to use the dtc tool to convert the dtb file back to dts.

hardware.tar.gz (1.5 MB)

This is not what we want. We already knew the patch. What is the difficulty to understand this comment?

Also, the method to dump full dts is to use the dtc tool to convert the dtb file back to dts.

How to use dtc tool?I can not use this tool,Thanks.

http://manpages.ubuntu.com/manpages/bionic/man1/dtc.1.html

tegra186-p3636-0001-p3509-0000-a01.dts (236.2 KB)