When using an external sd card, the /dev/mmcblk number changes every time you boot

Hello

Xavier nx is using it after changing the dtb so that it can recognize the external sd card.

The /dev/mmcblk number changes every time I boot.
can i fix this?

If possible, what should be modified?
dmesg.txt (67.1 KB)
journalctl.txt (199.1 KB)


tegra194-p3668-all-p3509-0000.dtb (316.5 KB)

Thank you.

Why did you enable all 3 sdhci controllers here? That is why your sdmmc3 device does not mount in fix path.

[ 6.545050] mmc0: SDHCI controller on 3460000.sdhci [3460000.sdhci] using ADMA 64-bit
[ 6.545346] mmc2: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit
[ 6.553770] mmc1: SDHCI controller on 3400000.sdhci [3400000.sdhci] using ADMA 64-bit

It is a “either-or” choice for every NX module to use 3460000 or 340000. As sdcard module would use one while emmc module would use another…

External sdcard is always on 3440000.

1 Like

Hello,

Because I’m using @3460000 in emmc
Can I disable sdhci@3400000 like below?

before

	sdhci_emmc: sdhci@3460000 {
		uhs-mask = <0x0>;
		nvidia,enable-hwcq;
		status = "okay";
	};

	sdhci_sd: sdhci@3400000 {
		mmc-ocr-mask = <0x0>;
		cd-inverted;
		cd-gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(G, 7) 0>;
		nvidia,cd-wakeup-capable;
		mmc-ocr-mask = <0>;
		cd-inverted;
		vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
		status = "okay";
	};

	sdhci_sd1: sdhci@3440000 { //added this node
			mmc-ocr-mask = <0x0>;
			cd-inverted;
			cd-gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(Q, 2) 0>;
			nvidia,cd-wakeup-capable;
			mmc-ocr-mask = <0>;
			cd-inverted;
			vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
			status = "okay";
	};

after

	sdhci_emmc: sdhci@3460000 {
		uhs-mask = <0x0>;
		nvidia,enable-hwcq;
		status = "okay";
	};

	sdhci_sd: sdhci@3400000 {
		mmc-ocr-mask = <0x0>;
		cd-inverted;
		cd-gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(G, 7) 0>;
		nvidia,cd-wakeup-capable;
		mmc-ocr-mask = <0>;
		cd-inverted;
		vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
		status = "disabled";
	};

	sdhci_sd1: sdhci@3440000 { //added this node
			mmc-ocr-mask = <0x0>;
			cd-inverted;
			cd-gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(Q, 2) 0>;
			nvidia,cd-wakeup-capable;
			mmc-ocr-mask = <0>;
			cd-inverted;
			vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
			status = "okay";
	};

Thank you.

Hi,

I am more curious about your comment here.

It should not be “you” that made this decision. The device shall handle this well during boot stage.

Did you enable sdhci@3400000 by yourself or it just boots like that?

1 Like

Hello,

Did you enable sdhci@3400000 by yourself or it just boots like that?
=> No.

To use the external sd card, I just added the node n ocha@3440000 near line 277 of the dtsi file below.

tegra194-p3668-common.dtsi (13.4 KB)

sdhci_sd1: sdhci@3440000 { //added this node
 mmc-ocr-mask = <0x0>;
 cd-inverted;
 cd-gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(Q, 2) 0>;
 nvidia,cd-wakeup-capable;
 mmc-ocr-mask = <0>;
 cd-inverted;
 vmmc-supply = <&p3668_vdd_sdmmc1_sw>;
 status = "okay";
};

If you reboot after this, sometimes the micro sd card becomes /dev/mmcblk1 and sometimes /dev/mmcblk2.

How do I modify dtsi to fix this invariably?

Thank you.

Hello @WayneWWW

I’m not trying to boot from an external sd card, I’m just trying to use it by recognizing it as storage.

Thank you.

Hi,

Forget about your external sdcard. It is not the main issue right now.

If you just flash default jetpack from sdkmanager, will you see both sdhci@3400000 and sdhci@3460000 enabled at same time?

Also, do you have other NX modules that can do the same test too?

1 Like

Sorry. A typo.

I am asking sdhci@3400000 and sdhci@3460000

1 Like

Hello,

Jetpack has been returned to the initial installation state.
On dmesg, only one sdhci controller on 3460000.sdhci is visible.

Is there a command to check if sdhci@3400000 and sdhci@3460000 are active at the same time?

Thank you.

What was your method to update a device tree after you enable sdmmc3?

1 Like

Hello, @WayneWWW

convert xxx.dtb to xxx.dts using dtc.

Thank you.

then…?

Hello,

insert FDT /boot/xxx.dtb to /boot/extlinux/extlinux.conf

Thank you.

Ok, I guess issue would be resolved if you do full flash instead.

If it cannot resolve, then just disable that sdhci@3400000 in your dtb.

1 Like

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