MicroSD card not detected with Jetson Nano Production Module

Hi Sir,

We use our own carrier board. It runs well on Ubuntu 18.04.
L4T: 32.3.1

When we verify SD card function, it can’t work.
(
We use this topic to solve our problem…
https://devtalk.nvidia.com/default/topic/1062120/jetson-nano/microsd-card-not-detected-on-jetson-nano-production-module/
}

Get mmc1 DATA CRC ERROR

[   30.175670] mmc1: host does not support reading read-only switch, assuming write-enable
[   30.360829] mmc1: Data CRC error
[   30.364057] sdhci: =========== REGISTER DUMP (mmc1)===========
[   30.369882] sdhci: Sys addr: 0x00000008 | Version:  0x00000303
[   30.375707] sdhci: Blk size: 0x00007200 | Blk cnt:  0x00000007
[   30.381531] sdhci: Argument: 0x00000000 | Trn mode: 0x0000003b
[   30.387355] sdhci: Present:  0x01fb0008 | Host ctl: 0x00000017
[   30.393179] sdhci: Power:    0x00000001 | Blk gap:  0x00000000
[   30.399002] sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
[   30.404826] sdhci: Timeout:  0x0000000e | Int stat: 0x00001000
[   30.410651] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[   30.416478] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[   30.422307] sdhci: Caps:     0x376cd08c | Caps_1:   0x10006f77
[   30.428135] sdhci: Cmd:      0x0000123a | Max curr: 0x00000000
[   30.433963] sdhci: Host ctl2: 0x0000308b
[   30.437891] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe410
[   30.444474] sdhci: ===========================================
[   44.150989] mmc0: Timeout waiting for hardware interrupt.
[   44.156451] sdhci: =========== REGISTER DUMP (mmc0)===========
[   44.162322] sdhci: Sys addr: 0x20000010 | Version:  0x00000303
[   44.168188] sdhci: Blk size: 0x00007200 | Blk cnt:  0x00000000
[   44.174051] sdhci: Argument: 0x01816bfa | Trn mode: 0x0000002b
[   44.179914] sdhci: Present:  0x01fb00f0 | Host ctl: 0x00000035
[   44.185780] sdhci: Power:    0x00000001 | Blk gap:  0x00000000
[   44.191643] sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
[   44.197507] sdhci: Timeout:  0x0000000e | Int stat: 0x00000003
[   44.203373] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[   44.209240] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[   44.215101] sdhci: Caps:     0x376cd08c | Caps_1:   0x10006f77
[   44.220961] sdhci: Cmd:      0x0000193a | Max curr: 0x00000000
[   44.226822] sdhci: Host ctl2: 0x0000300d
[   44.230783] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe410
[   44.237389] sdhci: ===========================================
[   51.370968] INFO: rcu_preempt detected stalls on CPUs/tasks:
[   51.376738]  0-...: (1 GPs behind) idle=73b/140000000000002/0 softirq=12819/12820 fqs=2476
[   51.385119]  (detected by 1, t=5252 jiffies, g=1061, c=1060, q=437)
[   56.438975] mmc0: Timeout waiting for hardware interrupt.
[   56.444438] sdhci: =========== REGISTER DUMP (mmc0)===========
[   56.450315] sdhci: Sys addr: 0x20000010 | Version:  0x00000303
[   56.456181] sdhci: Blk size: 0x00007200 | Blk cnt:  0x00000000
[   56.462045] sdhci: Argument: 0x00000000 | Trn mode: 0x00000023
[   56.467909] sdhci: Present:  0x01fb00f0 | Host ctl: 0x00000035
[   56.473775] sdhci: Power:    0x00000001 | Blk gap:  0x00000000
[   56.479636] sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
[   56.485497] sdhci: Timeout:  0x0000000e | Int stat: 0x00018003
[   56.491360] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[   56.497222] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[   56.503086] sdhci: Caps:     0x376cd08c | Caps_1:   0x10006f77
[   56.508947] sdhci: Cmd:      0x00000c1b | Max curr: 0x00000000
[   56.514804] sdhci: Host ctl2: 0x0000300d
[   56.518766] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe410
[   56.525379] sdhci: ===========================================
[   60.330972] Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 0
[   60.338263] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.9.140 #1
[   60.344307] Hardware name: NVIDIA Jetson Nano Developer Kit (DT)
[   60.350340] Call trace:
[   60.352842] [<ffffff800808bdb8>] dump_backtrace+0x0/0x198
[   60.358288] [<ffffff800808c37c>] show_stack+0x24/0x30
[   60.363379] [<ffffff800845d820>] dump_stack+0x98/0xc0
[   60.368475] [<ffffff80081c2198>] panic+0x11c/0x298
[   60.373315] [<ffffff8008183114>] watchdog_check_hardlockup_other_cpu+0x11c/0x120
[   60.380747] [<ffffff8008182288>] watchdog_timer_fn+0x98/0x2c0
[   60.386529] [<ffffff800813a738>] __hrtimer_run_queues+0xd8/0x360
[   60.392570] [<ffffff800813b088>] hrtimer_interrupt+0xa8/0x1e0
[   60.398362] [<ffffff8008bf5000>] tegra210_timer_isr+0x38/0x48
[   60.404146] [<ffffff8008123260>] __handle_irq_event_percpu+0x68/0x288
[   60.410622] [<ffffff80081234a8>] handle_irq_event_percpu+0x28/0x60
[   60.416835] [<ffffff8008123530>] handle_irq_event+0x50/0x80
[   60.422445] [<ffffff80081272f8>] handle_fasteoi_irq+0xc8/0x1b8
[   60.428313] [<ffffff800812224c>] generic_handle_irq+0x34/0x50
[   60.434091] [<ffffff8008122930>] __handle_domain_irq+0x68/0xc0
[   60.439958] [<ffffff8008080d44>] gic_handle_irq+0x5c/0xb0
[   60.445390] [<ffffff8008082be8>] el1_irq+0xe8/0x18c
[   60.450314] [<ffffff8008b9b330>] cpuidle_enter_state+0xb8/0x380
[   60.456267] [<ffffff8008b9b66c>] cpuidle_enter+0x34/0x48
[   60.461612] [<ffffff8008112a1c>] call_cpuidle+0x44/0x70
[   60.466873] [<ffffff8008112d98>] cpu_startup_entry+0x1b0/0x200
[   60.472742] [<ffffff8008092ce8>] secondary_start_kernel+0x190/0x1f8
[   60.479042] [<0000000080f5a1a4>] 0x80f5a1a4
[   60.483266] SMP: stopping secondary CPUs
[   60.487433] Kernel Offset: disabled
[   60.490957] Memory Limit: none
[   60.543652] Rebooting in 5 seconds..

Can you teach us how to enable it?

SD Card schematic.pdf

Hi,

Please use patches in below thread.

Also, please try with different sdcard and use ext4 as file system.

BTW, are you plugging sdcard in your first post?

I see the error log also happens to mmc0 which is for the emmc.

Hi WayneWWW,

Yes. When I’m plugging sd card, the system will be freeze.
It will reboot the system after the several seconds.
And then freeze again and reboot. (loop)
I got these messages from the debug console.

Hi WayneWWW,

Thank you. I can see the SD card now.

Any idea what was missing in your first dts?

Hi WayneWWW,

FYI
[1]
uhs-mask = <0x0>;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
— sources.orig/hardware/nvidia/platform/t210/common/kernel-dts/t210-common-platforms/tegra210-p2530-common.dtsi
+++ sources/hardware/nvidia/platform/t210/common/kernel-dts/t210-common-platforms/tegra210-p2530-common.dtsi
@@ -128,10 +128,14 @@
sdhci@700b0400 {
mmc-ocr-mask = <0>;
default-drv-type = <1>;
- uhs-mask = <0x1c>;
+ uhs-mask = <0x0>;
+ sd-uhs-sdr104;
+ sd-uhs-sdr50;
+ sd-uhs-sdr25;
+ sd-uhs-sdr12;
power-off-rail;
nvidia,update-pinctrl-settings;
- status = “disabled”;
+ status = “okay”;
};

[2]
uhs-mask = <0x0>;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
remove max-clk-limit = <400000>;
— sources.orig/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-porg-p3448-common.dtsi
+++ sources/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-porg-p3448-common.dtsi
@@ -250,9 +250,18 @@
};

 	sdhci@700b0400 {
-		status = "disabled";
+		status = "okay";
 		/delete-property/ keep-power-in-suspend;
 		/delete-property/ non-removable;
+		mmc-ddr-1_8v;
+		mmc-ocr-mask = <3>;
+		uhs-mask = <0x0>;
+               sd-uhs-sdr104;
+		sd-uhs-sdr50;
+		sd-uhs-sdr25;
+		sd-uhs-sdr12;
-		max-clk-limit = <400000>;
+		tap-delay = <3>;
 	};

I see. Glad it is working.