Kernel Modification for adding extra SD card at SDMMC3

hi Wayne,

removing the clock limit makes the clock 9.6MHz which is worse.
sudo cat /sys/kernel/debug/mmc1/clock
9600000
sudo cat /sys/kernel/debug/mmc1/ios
clock: 9600000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don’t care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)

I tried to just compare the old and new dts, I tried to copy the whole sdhci@700b0400 blocks but it will create error since it has different linux phandle, vqmmc-supply,vmmc-supply, clocks, resets and iommus.
Other than that is all the same.

These are the differences :
IMX one :
iommus = <0x30 0x1b>;
clocks = <0x26 0x45 0x26 0xf3 0x26 0x136 0x26 0xc1>;
resets = <0x26 0x45>;
vqmmc-supply = <0x3b>;
vmmc-supply = <0x4c>;
linux,phandle = <0xbd>;
phandle = <0xbd>;
Old working one :
iommus = <0x2b 0x1b>;
clocks = <0x21 0x45 0x21 0xf3 0x21 0x136 0x21 0xc1>;
resets = <0x21 0x45>;
linux,phandle = <0xbd>;
phandle = <0xbd>;

Could you only flash your dtb again and see if sdcard speed can back to normal?

I asked this because I wonder is their patch only update the dtb but no kernel driver?

Hi Wayne,

If the debian file is installed and I reflash my dtb, it behaves the same.
Even I uninstall it and then reflash the dtb it still the same.
I dont know if it helps but inside the debian file there is extlinux.conf with this content :
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
MENU LABEL primary kernel
LINUX /boot/arducam/Image
INITRD /boot/initrd
APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0

FDT /boot/arducam/tegra210-p3448-0000-p3449-0000-b00-imx477.dtb

Looks like they install their own kernel.

Maybe some patches are gone due to it.

BTW, their dtb is based on sdcard module. Do not use it on production module…

I already try it and I do not know why it is working on production module.
I can see the IMX477 and control it, I can see the additional sd card, its just slow, and the production module with emmc bootup just fine.
I saw inside the debian file there is another dtb file tegra210-p3448-0002-p3449-0000-b00.dtb which is for the production module, I will try this.
So if it does not work and it change the kernel there is no good solution so far?
Other than the kernel, inside the dtb are you sure the necessary modification are inside sdhci@700b0400 block?
There are no modification from common.dtsi that is reflected in dtb but outside the mentioned block?

My suggestion is if nothing can work, then fallback to the last version that your sdcard was working fine.

If that is the case, the imx477 camera will not work. Is there any way I can interface with imx477 without using the patch?
I saw the jetson nano 2gb module support this camera, why the 4GB needs additional patch?

Hi,

Asking you to fallback is just for debug. Fallback to a base that sdmmc is fine and then start to change the binaries from vendor one by one to figure out which file is causing the sdmmc regression.

Sorry that I am not working on camera case so not sure why jetson nano 2gb does not need it. Maybe @JerryChang can give you more info.

hello andreaswidy,

there’s IMX477 sensor driver included in r32.5 public release sources.
it looks this topic talking about kernel modification for adding extra SD card at SDMMC3, please initial another new discussion thread for better supports.
thanks

hi @JerryChang ,

I am quite clear on the SD card addition at SDMMC3 and if IMX477 driver is supported in new release I think my problem will be solved and I do not need to open new discussion thread.
But last question to clarify, do you mean the imx477 is supported in jetpack 4.5 and l4t 32.5 for jetson nano 4GB production module? Because I tried to reflash the jetson nano production module using sdk manager with jetpack 4.5 l4t 32.5 and it does not detect the imx477 camera.
Does that mean I need to rebuild the kernel from the r32.5 public sources, replace the kernel and dtb, and then use the flash.sh script?
Do I need to apply patches? I saw there is patch for 2GB to support IMX477

hello andreaswidy,

yes, it’ll need additional patches to make IMX477 works with Jetson Nano on r32.4.4;
as you can see from download center, this is added by the last minute update, which makes RPi IMX477 Support Nano 2GB.

according to Topic 166585, you’ll need to generate bootloader payload update for making IMX477 works, please also refer to that thread for the steps to make it works on JetPack-4.5,
thanks

Hi @JerryChang ,

I try downloading the “RPi_IMX477_Support_Nano_2GB” tar file.
From the thread I can understand that we basically need to just copy the payload to the /usr/bin on jetson nano and copy the libnvodm_imager.so.
However this tar files explicitly said it only works for Jetson Nano 2GB Developer Kit.
With the same method can it work with Jetson Nano Production Module 4GB? or is there different way?

hello andreaswidy,

FYI, we had a quick check locally, those binaries does not support with JP-4.5/ IMX477/ Nano 4GB.
apparently, the corresponding device tree change for Nano 4GB did not included.
we’re having internal discussion, shall update the thread after we come out conclusions,
thanks

1 Like

hello andreaswidy,

here’s another FYI,

according to Raspberry Pi HQ camera IMX477 Linux driver for Jetson.
you may also refer to [Compatibility with NVIDIA®Jetson™ Platforms] session.

The Raspberry Pi HQ camera module requires a hardware modification in order to work with Jetson Platforms; Both Jetson Nano and Jetson Xavier NX provides 1.8V for reset GPIO in the camera interface, but the camera module requires 3.3V.

hence, Raspberry-Pi High Def camera (IMX477) it only works with Nano 2GB Developer Kit currently without hardware rework.

since there’s already IMX477 kernel driver included in JetPack release package,
the camera hardware without reworks should able to bring-up on Nano 4GB, Tx2 or NX.
please contact with Jetson Camera Partners for such camera solutions.

please do note that,
we’re now release package through download center to make IMX477 works only on Nano 2GB.
thanks

Hi @JerryChang,

Yes I already know about the hardware rework.
But I do not think that is the case here, since If you pay attention to my previous post I already manage to get the IMX477 camera working with Jetson Nano by installing debian package from arducam driver, but this method overwrite the DTB changes for SD card, so I can make both camera and sd card work separately but cannot combine it, so I do not think hardware is the issues here.
As for now, I do not plan to use Jetson Nano 2GB, I am using Jetson Nano 4GB production module.
I already use the recent jetpack 32.5 and flash it using sdkmanager to my Jetson Nano 4GB production module, it does not detect the IMX477 connected to my board.
So do you have any direction that i can follow? if there is kernel driver I do not think it is enabled, do you have a dtb with working camera imx477 for Jetson Nano 4GB Production Module.

please contact with Arducam for latest r32.5 release package for IMX477,

as I mentioned previously, please initial another new discussion thread for better supports.

Hey @WayneWWW and @JerryChang ,

I want to thank both of you now the system is working fine.
Currently I use the arducam image and modify the dtb file.
The modification on top of the modification mentioned on the other forum is to delete :
//nvidia,min-tap-delay = <0x6a>;
//nvidia,max-tap-delay = <0xb9>;
(I am not sure what this do)
But after i comment out this one, everything works fine.
So thank you for the time and help, appreciate it.

Regards,
Widy