Error -84 when initializing SD card in Jetson Nano EMMC custom board

[ 6.581487] mmc1: Data CRC error
[ 6.586262] sdhci: =========== REGISTER DUMP (mmc1)===========
[ 6.593734] sdhci: Sys addr: 0x00000088 | Version: 0x00000303
[ 6.601211] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000077
[ 6.608686] sdhci: Argument: 0x00807168 | Trn mode: 0x0000003b
[ 6.616163] sdhci: Present: 0x01fb0000 | Host ctl: 0x00000013
[ 6.623641] sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 6.631123] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 6.638600] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 6.646070] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[ 6.653539] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 6.661012] sdhci: Caps: 0x376cd08c | Caps_1: 0x10006f77
[ 6.668479] sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[ 6.675937] sdhci: Host ctl2: 0x00003001
[ 6.681480] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe410
[ 6.689632] sdhci: ===========================================
[ 6.697130] mmcblk1: error -84 transferring data, sector 8417640, nr 136, cmd response 0x900, card status 0x0
[ 6.783641] mmc1: Data CRC error
[ 6.788422] sdhci: =========== REGISTER DUMP (mmc1)===========
[ 6.795888] sdhci: Sys addr: 0x00000088 | Version: 0x00000303
[ 6.803359] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000073
[ 6.810831] sdhci: Argument: 0x00807168 | Trn mode: 0x0000003b
[ 6.818301] sdhci: Present: 0x01fb0000 | Host ctl: 0x00000013
[ 6.825774] sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 6.833251] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 6.840733] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 6.848212] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[ 6.855684] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 6.863159] sdhci: Caps: 0x376cd08c | Caps_1: 0x10006f77
[ 6.870628] sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[ 6.878091] sdhci: Host ctl2: 0x00003001
[ 6.883633] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe410
[ 6.891791] sdhci: ===========================================
[ 6.899354] mmcblk1: error -84 transferring data, sector 8417640, nr 136, cmd response 0x900, card status 0x0
[ 6.958355] mmc1: Data end bit error
[ 6.963485] sdhci: =========== REGISTER DUMP (mmc1)===========
[ 6.970955] sdhci: Sys addr: 0x00000018 | Version: 0x00000303
[ 6.978429] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000005
[ 6.985910] sdhci: Argument: 0x008071f0 | Trn mode: 0x0000003b
[ 6.993389] sdhci: Present: 0x01fb0000 | Host ctl: 0x00000013
[ 7.000870] sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 7.008358] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 7.015842] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 7.023322] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[ 7.030798] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 7.038275] sdhci: Caps: 0x376cd08c | Caps_1: 0x10006f77
[ 7.045740] sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[ 7.053201] sdhci: Host ctl2: 0x00003001
[ 7.058743] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe410
[ 7.066899] sdhci: ===========================================

We have a custom-made carrier board for the Jetson Nano production modules that we are working on. We use the flash.sh script to flash the internal eMMC, using the command:
sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1

This command will flash image into eMMC.

Could your board boot up w/o SD card?

Please provide the full serial console log for further check.

I modified the status of sdmmc3 to be ok on new dtbo。
then Run sudo /opt/nvidia/jetson-io/config-by-hardware.py -n “sdmmc3” on emmc
Modify exlinux.conf after soft restart
Find APPEND of LABEL JetsonIO ${cbootargs} quiet root=/dev/mmcblk0p1
Change root=/dev/mmcblk0p1 to root=/dev/mmcblk1p1
May I ask which step is the problem? thanks

jetson_nano_urat.md (78.1 KB)

Yes, I first burned the image in emmc, and modified exlinux to make the sd image start

Hi,

  1. Enable sdmmc3 status to okay is not sufficient. You need to assign vmmc-supply to match your hardware. You could search sdmmc3 post on forum first. This kind of questions have been answered for many times.

  2. For such issue, we need to check kernel log, so need to dump dmesg.

dmesg.log (159.1 KB)

Where can I get the device tree dts file of the kernel source code?

Download it from here.

Sorry, I am not clear about the device tree, please tell me how to specify vmmc-supply to match the hardware

Then it is my turn to ask question… what does your hardware look like? How does your 3v3 connect?

We won’t know this unless you tell us…

thank!

Add nvidia,vmmc-always-on to your sdhci node.

And assign a 3v3 always on regulator to your vmmc-supply.

Is it here? sdhci@700b0000。

If you totally don’t know what yourself is going to do… read the other sdmmc3 posts first…

for example:

grateful!