Is there a way to restrict the speed of the SD card boot reader?


I’m working on a project that requires using a long SD Card Extension cable for the SD boot card on the Jetson Nano. Unfortunately the Nano would not boot from an SD card at the end of the extension cable. The cable is flat ribbon about 18 inches long.

However after trying different SD cards I finally found one SD card that would boot in this configuration. I’m assuming that this may be becasue this SD card has a slower read rate. That’s a guess, but seems like the most likely answer.

In any case, I was wondering if there is a way that I can set the Jetson Nano to read the cards at a slower speed? I’m thinking that this might allow me to use the faster SD cards at the end of this cable by simply reading them at a slower speed.

This is all just a guess on my part, but I would like to try this if possible.

I’m running the Jetson Nono system OS (Bionic Beaver 18.04) that I downloaded from the NVIDIA site on getting started with the Jetson Nano.

Does anyone know if there is a way to set the SD card read speed to a specific value in this OS?

I’m thinking that if I can restrict the Jetson Nano to only using slower read speeds this may solve my problem.


Please try to set the uhs-mask in your device tree.

reference: kernel/nvidia/Documentation/devicetree/bindings/mmc/sdhci-tegra.txt

uhs-mask: Specify modes that are masked for the device
Mask HS200 mode: 0x20
Mask HS400 mode: 0x40
Mask SDR104 mode: 0x10
Mask SDR50 mode: 0x4
Mask DDR50 mode: 0x8
Mask SDR25 mode: 0x2

Sadly I don’t know how to do that.

The path you posted here doesn’t exist on my system. I’ve searched for, but cannot find, any file named sdhci-tegra.txt

Please forgive my ignorance. But unfortunately your suggestion isn’t making any sense to me.

Are you familiar with Linux kernel or dtb (device tree blob)?

This path is not on your system but from the kernel source tarball from our download center.

Unfortunately I’m not familiar with either of theses. I’m basically a Jetson Nano “End User”.

I have several Jetson Nanos. I love your product by the way! I’m using them to study A.I., OpenCV and TensorFlow, among other things.

I change the SD boot cards often because I keep different study topics on different SD cards. So I’m building an SD Card Boot Hub that will hold four SD cards. Only one card will be active at a time. This way I can just switch to whichever SD card I want to boot from without having to continually unplug and plug the SD card into the back of the Jetson Nano.

The problem I’m having is that due to the use of an SD card extension cable that I’m using to connect my SD Card Boot Hub into the back of the Jetson Nano, only slower SD cards will work. At least that the current theory.

So all I want to do is tell the Jetson Nano Kernel to always use a slower speed when reading the SD boot card.

I was hoping this would be easy without having to obtain a Ph.D. on how to reconfigure a Linux Kernel.

My apologies for being so lame. If you could be so kind as to offer me an “Idiot’s Guide to Limit the Read Speed on a Jetson Nano” I would be forever grateful.

You might consider instead a good quality USB 3 a to b cable (or a to c) and a SD reader (or flash drives, or an SSD) plugged into a USB hub (or directly). Then you can boot off USB at full speed. You can Google the forum for how to boot off USB.

Otherwise the only way to slow down the read speed is probably what Wayne suggested. Of course doing that will hurt overall system performance as well, especially if you have a swap file configured.

Thanks. I’m certainly open to alternative solutions. The main thing I’m trying to avoid is having to constantly swap out the SD boot card on the back of the Jetson Nano. If I can convert it to boot from USB sticks that might be an easier solution overall.

I’m not locked into the SD Card Boot Hub idea. That just seemed like the best solution at first glance. I didn’t realize I was going to run into problems reading the SD cards over a longer SD card extension cable.

By the way, just for whatever it’s worth. I don’t have this problem with Raspberry Pi. They seem to boot up over the SD card extension cable with no problem. So I’m curious what it is about the Jetson Nano that prevents it from booting when the Boot Card is placed on an 18" extension cable?

My guess is that the Jetson Nano is accessing the card quicker and the higher speed is the problem?

In any case, your suggestion to boot from USB sticks instead might be a better solution. I’ll just do away with the SD cards entirely. Or will I still need to use SD cards in a USB SD card reader?

I just want to be able to boot up different systems without having to physically swap out the SD cards every time.