Currently making a custom carrier board design for the Jetson NX Xavier to utilize an external emmc module for a school project in a capstone. The extra emmc was added to create more storage for the custom board designed and to experiment on memory designs for school.
I’m aware that the configurations that Nvidia provides by default is either an sd card, emmc, or nvme SSD. In our case we have the emmc configuration.
I have a breakout to the external emmc that we wish to add with pins allocated as follows: DATA:
229: SDMMC_CLK POWER
206: GPIO07_SDMMC_ON (Runs an external power circuit with delivery of 3.3v)
208: GPIO08_SDMMC_CD (Confirmation pin when system is activated)
As for the device tree I can see that sdhci@3460000 is being utilized since this our default boot medium. How would I look at configuring sdhci@3400000 to utilize the new emmc module that was added along with the pins that were mentioned before?
I know you have to edit the pinmux file and the .dtsi file in tandem. Below the .dtsi file are shown below.
Device tree is just like a program. It is a binary file compiled from many files/source codes.
But it could be easily converted back from binary to text file and you can read the text file to see the whole content. That was what I am talking about in previous comment. Try to google search “dtc device tree compiler” and it will guide you how to use it.
Your question is like there are code files A,B,C,D,E,F,G…etc. And you want to know which files are needed to get modified. Honestly, I don’t memorize such things either because you should never “memorize a code”. You should be able to know which code to start to trace and you should trace down it. All the device tree for jetson are public sources. So try to figure out which dtb is getting flashed to your board first. Each platform will only have one kernel dtb running on it. Use the file name to trace the source code.
One thing I also wanted to mention is that our system has GPIO 07 connected to a power circuit that when enabled it will deliver 3.3v to the external emmc. GPIO 08 we have wired for detecting when the system turns on(SDMMC_CD).
Your log is not completed. Each line got truncated. I don’t know how you dumped it. Maybe adjust your terminal size and dump again.
From the incomplete log, I can tell your sdhci@3440000 is not enabled at all.
I don’t know why a CD pin is wired there. We don’t support a hotplug case for emmc. Actually, you should just copy the content of sdhci@3460000 to your 3440000. That is the only case we support. Again, check it from the decompiled dtb to make sure the full content. I don’t know where you dig in those info. We actually don’t support much external emmc case on this forum. Your case looks like a sdcard sample.
LOG_V3.txt (70.7 KB)
In terms of uploading the .dtb to the board I replace it in deployment everytime when I flash the system. Ie remove old file then replace it with the new one. As for the device tree on the board I have checked it and it never comes up as “Okay” even when I set it as Okay. Is this normal for behavior? I hope that the log that I gave has everything.
Thank you for your patience and help :)
Im currently using the yocto project to build our system. So in our deployment folder I replace the file and then deploy the image with the new file. tegra194-p3668-all-p3509-all-0000.dtb is the file specified.
I am also using the ridge run developer page linked below to compile my dtsi files to dtb.
Ok seems like our deployment of our dtb is an issue. Once resolved Ill send anther message if we still encounter issues. If not and the changes are fixed Ill mark this ticket as solved.
Again, thanks for the help!
Ok I have the file being taken now. It currently shows In the device tree! I have redone the changes to the system my porting over the @3460000 → @3440000 and this is the dmesg log below: LOG_V4.txt (581.5 KB)