In order to improve the reading speed of the SD card, the SD card cannot be read after modifying the dtsi file. What is the solution?

The source code I use comes from l4t 32.5.1 public sources (Jetson nano)
When I modify (/ hardware / NVIDIA / platform / t210 / porg / kernel DTS / tegra210-porg-p3448-common.dtsi), as shown in the following figure, the SD card cannot be read out.

When I modify (/ hardware / NVIDIA / platform / t210 / porg / kernel DTS / tegra210-porg-p3448-common.dtsi) as shown in the figure below, the SD card can be read out, but the reading and writing speed is very slow.
I’ve found many ways to modify it in the forum. It seems that it doesn’t work. What’s the solution

The solution is you should try to share useful information first.

  1. Your board schematic

  2. Your full dts converted from the dtb.

  3. Your full dmesg.

Your first patch looks more correct but I guess it didn’t match your board design.

1.The hardware schematic diagram is shown in the figure below

2.the dts converted from the dtb
tegra210-p3448-0002-p3449-0000-b00_dts.dts (327.1 KB)

dmesg.rtf (60.2 KB)

Are you using a 3v3 for VDD or a 1v8?

The sdmmc driver for sdmmc3 does not get probed correctly because of below log.

[ 1.385300] sdhci-tegra: probe of sdhci-tegra.2 failed with error -16\par

“16” in linux error code means resource busy. Thus probably the cd-gpio you are using here are occupied by other driver.

We use 3v3

How should this be modified

Disable that driver that occupied your gpio…

There are many configuration files. How can I find the occupied GPIO

Learn to use grep command.

1 Like

I have disabled other occupied GPIO. Now there are some new problems. I can see the SD card through the instruction lsblk, but I can’t see the SD card using the ‘df -h’ instruction. Then dmesg also prints some error messages.

dmesg2.rtf (94.1 KB)

Check this post to know how to modify your device tree.

If they are all the same, then you can review your hardware design.

Where can I find the file

Based on l4t r32.5.1, I modified the following parts:




After modifying the above three files, dmesg shows that GPIO reuse exists, so I use grep - r 'TEGRA_GPIO(Z, 2) 'instruction finds and removes files using the GPIO.


Through the above modifications, you can view the SD card through the lsblk command, as shown in the following figure;

However, the mounting of the device cannot be viewed through the df -h command, as shown in the following figure:

Our hardware circuit diagram is:

And dmesg also printed some errors. I have tried many modification methods and can’t solve them. I hope to get some technical support
dmesg4.5.1.docx (34.2 KB)

You should convert your dtb back to dts and attach it. I don’t really care what files you modified.

Just need to check the finalized dts.

OK, this is the DTS after I converted tegra210-p3448-0002-p3449-0000-b00.dtb.
tegra210-p3448-0002-p3449-0000-b00-dts.dts (327.0 KB)

Looks correct. Please review your hardware.

Do you have any suggestions for checking the hardware circuit, such as which aspect to check

Last week, I checked the hardware circuit. After changing the hardware circuit, I can read the SD card, but the reading speed is still very slow. I deleted the limited frequency (max-clk-limit) according to the modification suggestions of the forum, but the reading speed of the SD card has not improved much, and the clock frequency is only 25MHz by default, as shown in the figure below. How can I increase this frequency to improve the reading speed of the SD card?

dmesg.docx (31.3 KB)

tegra210-p3448-0002-p3449-0000-b00-dts.dts (327.0 KB)

It is not “how to adjust frequency” problem. MMC tuning does not pass so it is using the lowest frequency.

From the past experience, it is probably still a hardware issue.

[ 3.020210] mmc1: tuning execution failed: -5

You can search sdmmc3 post on jetson nano forum and you will see DTS from other people.