TX2-NX SD card compatibility issue

I have custom-designed carrier board for Xavier NX, and the SD card test ok on different capacity/speed/manufacturers, but when I changed the SOM board TX2-NX , some SD cards can be detect but can not mounted.
It is my setting:
board design:



pinmux:
GPIO03 (SDCARD_VDD_EN) set to output high
GPIO04 (SD_CD_N) set to input high
tegra186-mb1-bct-pinmux-atc3530tx2nx-0001-a00.cfg (25.4 KB)

dts and dtb:
sdhci@3440000 {
compatible = “nvidia,tegra186-sdhci”;
reg = <0x0 0x3440000 0x0 0x210>;
interrupts = <0x0 0x40 0x4>;
max-clk-limit = <0xc28cb00>;
ddr-clk-limit = <0x2dc6c00>;
tap-delay = <0xb>;
trim-delay = <0x5>;
nvidia,ddr-tap-delay = <0xb>;
ddr-trim-delay = <0x5>;
bus-width = <0x4>;
ignore-pm-notify;
mmc-ocr-mask = <0x3>;
keep-power-in-suspend;
cap-mmc-highspeed;
cap-sd-highspeed;
pwrdet-support;
pinctrl-names = “sdmmc_e_33v_enable”, “sdmmc_e_33v_disable”;
pinctrl-0 = <0x14>;
pinctrl-1 = <0x15>;
compad-vref-3v3 = <0x1>;
compad-vref-1v8 = <0x2>;
nvidia,min-tap-delay = <0x54>;
nvidia,max-tap-delay = <0x88>;
pll_source = “pll_p”;
resets = <0x10 0x23>;
reset-names = “sdhci”;
clocks = <0x10 0x4c 0x10 0x10d 0x10 0x80>;
clock-names = “sdmmc”, “pll_p”, “sdmmc_legacy_tm”;
nvidia,en-periodic-calib;
status = “okay”;
vqmmc-supply = <0x16>;
vmmc-supply = <0x13>;
uhs-mask = <0x10>;
only-1-8-v;
cd-gpios = <0x17 0x5b 0x0>;
nvidia,cd-wakeup-capable;
nvidia,sd-device;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
linux,phandle = <0xd3>;
phandle = <0xd3>;
prod-settings {
#prod-cells = <0x3>;

                    prod_c_ds {
                            prod = <0x100 0xff0000 0xb0000 0x1e0 0xf 0x1 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod_c_hs {
                            prod = <0x100 0xff0000 0xb0000 0x1e0 0xf 0x1 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod_c_sdr12 {
                            prod = <0x100 0xff0000 0xb0000 0x1e0 0xf 0x2 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod_c_sdr25 {
                            prod = <0x100 0xff0000 0xb0000 0x1e0 0xf 0x2 0x1e4 0x20007f7f 0x20006a76>;
                    };

                    prod_c_sdr50 {
                            prod = <0x100 0xff0000 0xb0000 0x1c0 0xe000 0x8000 0x1e0 0xf 0x2 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod_c_sdr104 {
                            prod = <0x100 0xff0000 0xb0000 0x1c0 0xe000 0x4000 0x1e0 0xf 0x2 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod_c_ddr52 {
                            prod = <0x100 0x1fff0000 0x50b0000 0x1e0 0xf 0x2 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod_c_hs200 {
                            prod = <0x100 0xff0000 0x90000 0x1c0 0xe000 0x4000 0x1e0 0xf 0x7 0x1e4 0x20007f7f 0x20007a00>;
                    };

                    prod {
                            prod = <0x100 0x1fff002e 0x5090028 0x1c0 0xbfc1ff8 0x8000050 0x1c4 0x77 0x0 0x120 0x20001 0x1 0x128 0x43000000 0x0>;
                    };
            };
    };

tegra186-p3636-0001-p3509-0000-a01.dtb (193.0 KB)
tx2nx.dts (248.6 KB)

Test result:
Sd card 1
sandisk
Spec:
SANDISK ULTRA microSD 80MB/s UHS-I
Capacity: 64GB
Reading speed: up to 80MB/S ~ 100MB/S
Video speed: C10
Link:

Plug and unplug dmesg:
[ 293.759606] mmc1: host does not support reading read-only switch, assuming write-enable
[ 293.774780] mmc1: new high speed SDXC card at address aaaa
[ 293.782365] mmcblk1: mmc1:aaaa SB64G 59.5 GiB
[ 293.791368] mmcblk1: p1
[ 294.304815] EXT4-fs (mmcblk1p1): recovery complete
[ 294.305912] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
[ 307.966533] mmc1: Disabling vmmc regulator
[ 307.966648] mmc1: card aaaa removed
Full dmesg file:
sandisk.log (68.7 KB)
Result: this card works normally.

Sd card 2
kingston
Spec:
SDC10G2/32GB
Capacity: 64GB
Read Speed: 80 MB/s
Video speed: C10
Link:

Plug and unplug dmesg:
[ 69.533811] mmc1: error -110 whilst initialising SD card
[ 73.455287] mmc1: Disabling vmmc regulator
[ 82.542637] mmc1: error -110 whilst initialising SD card
[ 84.795791] mmc1: Disabling vmmc regulator
Full dmesg file:
kingston.log (66.0 KB)

Result: mount failed.

Sd card 3
adata-64
Spec:
ADATA Premier 64GB microSDHC/SDXC UHS-I U1 Class 10 Memory Card with Adapter
Capacity: 64GB
Link:

Plug and unplug dmesg:
[ 108.212801] mmc1: Disabling vmmc regulator
[ 113.520804] mmc1: Disabling vmmc regulator
Full dmesg file:
adata.log (66.2 KB)
Result: mount failed.

Please help me, thanks!

  1. Please disable bcmdhd_wlan in the device tree.
    If you check the sdhci-host field there, you would know the reason.

  2. Do you want to use a gpio to control the power supply or not? Your vmmc-supply is still a always-on setting.
    Also, it is a always on setting but you don’t add nvidia,vmmc-always-on.

  3. This kind of questions have been answered to many times. Please use sdmmc3 as keyword to search NX and TX2 forum for this info.

1 Like

Hi Wayne,
Thanks for your reply
I found and read this post

and removed include “tegra186-p3636-0001-a00-comms.dtsi”
Now SD card slot works fine, thanks!

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.