TF card cann't detect again, after ESD test?

TF card related pins:
SD_POWER_EN:PIN:B58/SD_DET_N:PIN:L6/SDMMC1_CLK:PIN:B6/SDMMC1_CMD:PIN:A5
SDMMC1_D0:PIN:E8/SDMMC1_D1:PIN:F8/SDMMC1_D2:PIN:A4/SDMMC1_D3:PIN:D6/

SD_DET_N become low, gpio-390 (PG.07 |cd ) in low IRQ, when tf card pull out.
SD_DET_N become high, gpio-390 (PG.07 |cd ) in hi IRQ, when tf card push in.
SD_POWER_EN always low, tf card not powered, when tf card push in or out.

Use “echo pin_number > /sys/class/gpio/export” to export all pins to user space,
Use “echo 0 > /sys/class/gpio/pin_number/value” and “echo 1 > /sys/class/gpio/pin_number/value”
All pin can set to low and high, high is 3.3V.
Don’t find ESD destroied pin.

Does this happen on the NVIDIA Dev Kit carrier board or a custom carrier board? If this is a custom carrier board, does it have ESD protection diodes on the Micro SD interface?

SD_POWER_EN always low, tf card not powered, when tf card push in or out.

All pin can set to low and high, high is 3.3V.

Do you mean that if you use the GPIO command to set the GPIO21 signal on the BGA B58 pin high, it is still stuck low (on TP70) instead of going to 1.8V to turn on the VDD_3V3_SD?

The driver engineer modified device tree later.
Now, the phenomenon is that, SD_POWER_EN also can set to low or high.
When push card in, the “cat /sys/class/gpio/PG.07/value” is low, pull card out,
the value is high. Said that card detect pin’s function is ok.
But, no interrupt log.
Interrupt ok will display the log “gpio-390 (PG.07 |cd ) in hi or low IRQ”.
And the driver engineer will follow the question.

所以這個到底是NV devkit還是你們custom board碰上的問題?

我们自己的定制的板子,用的agx orin模块。

Could you reproduce the similar issue on the devkit? Or the issue is specific to your custom carrier board?

Please share the full dmesg and device tree for further check.

tegra234-p3701-0005-p3737-0000.dtb.dts.zip (66.0 KB)

dmesg_push_in.txt (137.5 KB)

dmesg_pull_out.txt (137.5 KB)

tf-card can be detected, when reboot.
tf-card can’t be detected, when push in.
no log print out, when push in or pull out.

Is the cd-gpio in the device tree really the one you are using on your custom board?

my board is SD_DET_N:L6:PG.07, same with NV devkit

Does /sys/kernel/debug/gpio show you that cd-gpio got status changed when you hotplug the sdcard?

Now, no cd-gpio status changed again.

我用中文跟你確認一次 請問你知道自己要看什麼內容嗎…
怕你其實沒有聽懂我們要你確認的東西..

online-lsblk.txt (1.2 KB)

online-on-cd-gpio-push-in.txt (7.1 KB)

online-cd-gpio-pull-out.txt (7.1 KB)

reboot-lsblk.txt (1.3 KB)

好的,你们让我这边确认/sys/kernel/debug/gpio是否显示tf卡的热插拔信息?
确认结果是有(抱歉,前面确认错了)。
如果有热插拔信息,插入,用"/sys/kernel/debug/gpio"会显示high, gpio-390 (PG.07 |cd ) in hi IRQ。
拔出,用"/sys/kernel/debug/gpio"会显示low, gpio-390 (PG.07 |cd ) in lo IRQ。

online 插入lsblk,没有检测到tf卡。没有:
mmcblk1 179:32 0 29.7G 0 disk
└─mmcblk1p1 179:33 0 29.7G 0 part
reboot后,有
mmcblk1 179:32 0 29.7G 0 disk
└─mmcblk1p1 179:33 0 29.7G 0 part

請問你插入sdcard的時候dmesg有沒有印出新的log? 有的話log是什麼?
還有卡拔出的時候有沒有印? 有的話log又是什麼?

dmesg_pull_out-0112.txt (137.7 KB)

dmesg_push_in-0112.txt (137.7 KB)

pull out多了如下信息:[ 4.264486] tegra-bpmp bpmp: 1
[ 4.264488] tegra-bpmp bpmp: 2
[ 4.270271] tegra-bpmp bpmp: firmware: 39f77b2baaf3f0522607-da583751bbf
[ 4.295106] tegra-bpmp-i2c bpmp:i2c: 1
[ 4.298707] tegra-bpmp-i2c bpmp:i2c: 2
[ 4.303353] clarify anchor i2c_device_probe:456: i2c addr=0x3c,name=vrs-pseq
[ 4.309473] clarify anchor i2c_device_probe:467: i2c addr=0x3c,name=vrs-pseq
[ 4.316760] clarify anchor i2c_device_probe:491:
[ 4.321368] clarify anchor i2c_device_probe:494: i2c addr=0x3c,name=vrs-pseq
[ 4.328717] clarify anchor i2c_device_probe:535:
[ 4.333356] clarify anchor i2c_device_probe:545:
[ 4.338558] nvvrs_pseq 4-003c: NVVRS Vendor ID: 0x9
[ 4.343236] nvvrs_pseq 4-003c: NVVRS Model Rev: 0x81
[ 4.350006] nvvrs-pseq-rtc nvvrs-pseq-rtc: 1
[ 4.352173] nvvrs-pseq-rtc nvvrs-pseq-rtc: 2
[ 4.359387] nvvrs-pseq-rtc nvvrs-pseq-rtc: registered as rtc0
[ 4.362242] nvvrs-pseq-rtc nvvrs-pseq-rtc: 3
[ 4.366613] nvvrs_pseq 4-003c: NVVRS PSEQ probe successful
[ 4.372028] clarify anchor i2c_device_probe:553: i2c addr=0x3c,name=vrs-pseq
[ 4.379203] clarify anchor i2c_device_probe:557:
[ 4.383752] clarify anchor i2c_device_probe:561:
[ 4.388717] tegra-bpmp-i2c bpmp:i2c: 3
[ 5.597648] tegra-bpmp bpmp: 3

聽起來你好像還是沒有理解我的意思…

我的意思是你進行sd卡差拔之後你的dmesg有沒有新log出現. 就這樣而已 我不是要你比較什麼兩個log開機第四秒時的差別…

[ 156.579935] mmc1: card aaaa removed

我在你的log裡面有看到卡被移除的資訊. 現在想要知道的事情是當你重新又插入卡片一次的時候. 請問後續有沒有新的log出現.

dmesg_push_in-0112-1224.txt (137.7 KB)

dmesg_pull_out-0112-1224.txt (137.6 KB)

Hi,

我能否直接跟你確認, 請問是不是插卡拔卡你的dmesg不會有新log印出來 …
我從以上的log理解的是你不論插拔幾次卡都沒辦法trigger card plugged event給sdhci driver.

只是要跟你確認一個yes or no的答案而已..

是的,都没办法trigger card plugged event给sdhci driver.