RGMII ethernet on Orin AGX CVB

Hi,

I’m trying to make my ethernet RGMII on my CVB on jetson orin agx work.

This is a duplicate of this topic since I did not fix my problem, but re-did everything to make sure it was made correctly: RGMII Ethernet configuration - #5 by WayneWWW.

I would like to get some help on troubleshooting steps.

Here’s what I’m doing, following the adaptation guide (Jetson AGX Orin Platform Adaptation and Bring-Up — Jetson Linux Developer Guide documentation).

Firstly, I modified the device tree by adding the ethernet@2310000 node (and by removing MGBE node) :
tegra234-ethernet-3737-0000.dtsi (1.4 KB).

Rebuilded the kernel and copied it inside BSP.

Also modified Pinmux and GPIO this way (didnt forget to add pin G4 and G5 to GPIO) :
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi (63.6 KB)
tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi (4.6 KB)

I flash using this command : sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

dmesg:
dmesg.txt (187.8 KB)

Output:

sudo cat /sys/kernel/debug/gpio

GPIO.txt (7.1 KB)

Output: (there is nothing when adding | grep eth)

cat /proc/interrupts

INTERRUPTS.txt (20.2 KB)

When trying to sudo ifconfig eth0 up, I get those (not so) new kernels messages :

[ 772.986182] nvethernet 2310000.ethernet eth0: ether_get_wol: phydev is null check iface up status
[ 784.759391] mdio_bus 2310000.ethernet: MDIO device at address 1 is missing.
[ 784.766598] nvethernet 2310000.ethernet: failed to connect PHY
[ 784.772619] net eth0: ether_open: Cannot attach to PHY (error: -19)

Lastly, I’m joining schematics of my CVB ethernet:


image

Please let me know what to do next!

Thanks

Loic

[ 784.759391] mdio_bus 2310000.ethernet: MDIO device at address 1 is missing.

change your phy@1 reg from 1 to 0 and see if that changes.

Also, I think the module you are using is a wrong one. Please use the production module instead of the devkit module. Otherwise your kernel dtb and pinmux totally does not match.

I tried to change the reg address from <1> to <0> and it stopped my USB port from working (had my mouse and keyboard connected to it) and did not fix the ethernet problem (same error). The USB port was define in the DTB as the UPHY USB3 lane 1 and its mate USB2 lane 0. Here is the dtb file :
tegra234-p3737-0000-a04.dtsi (9.0 KB)

This part, I’m not sure I understand what you mean, could you clarify please?

Im going to attach the dmesg when the flashing is done.

Thanks

Loic

The module sku should be p3701-0004.

You cannot just plug out a module from NV devkit because the module on NV devkit is p3701-0000.

If you are using p3701-0000 module, your dtb file name would be p3701-0000-p3737-xxxx. Your pinmux file would be tegra234-mb1-bct-pinmux-p3701-0000.dtsi.
If you are using p3701-00004 module, your dtb file name would be p3701-0004-p3737-xxxx. Your pinmux file would be tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi.

But currently, your dtb and pinmux totally do not match to each other. I have no idea what kind of module you are using.

I tried to change the reg address from <1> to <0> and it stopped my USB port from working (had my mouse and keyboard connected to it) and did not fix the ethernet problem (same error). The USB port was define in the DTB as the UPHY USB3 lane 1 and its mate USB2 lane 0. Here is the dtb file :
tegra234-p3737-0000-a04.dtsi (9.0 KB)

I don’t really care about your usb here. The RGMII and usb have no connection. If your usb got broken after that, please review your hardware.

Thanks for the clarification,

So If i understand correctly like for the pinmux, the ethernet dtb file should be the one with a04 right? But in the kernel sources there is only the tegra234-ethernet-3737-0000.dtsi file. I cant find the a04 file for the ethernet dtb.

What should i do?

Thanks alot for your tips!

Hi,

The ethernet file name does not matter. It will be included into a04 file in the end.

You should check what is the exact module you are using on your board right now but not guess what file should be used…

Your flash log will tell you the info.

Got it!
flash.log (91.1 KB)

Take this part, it feels like its a mix of different modules:

Copy /home/loic/Downloads/Linux_for_Tegra/kernel/dtb/tegra234-p3701-0000-p3737-0000.dtb to /home/loic/Downloads/Linux_for_Tegra/kernel/dtb/tegra234-p3701-0000-p3737-0000.dtb.rec
copying bctfile(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-p3701-0000-sdram-l4t.dts)... done.
copying minratchet_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-ratchet-p3701-0000.dts)... done.
copying device_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-device-p3701-0000.dts)... done.
copying misc_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-misc-p3701-0000.dts)... done.
copying pinmux_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi)... done.
copying gpioint_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-gpioint-p3701-0000.dts)... done.
copying pmic_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-pmic-p3701-0000.dts)... done.
copying pmc_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-padvoltage-p3701-0000-a04.dtsi)... done.
copying deviceprod_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-cprod-p3701-0000.dts)... done.
copying prod_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-prod-p3701-0000.dts)... done.
copying scr_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb2-bct-scr-p3701-0000.dts)... done.
copying wb0sdram(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-p3701-0000-wb0sdram-l4t.dts)... done.
copying bootrom_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-reset-p3701-0000.dts)... done.
Existing uphylane_config(/home/loic/Downloads/Linux_for_Tegra/bootloader/tegra234-mb1-bct-uphylane-si.dtsi) reused.
copying dev_params(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-br-bct-p3701-0000.dts)... done.
copying dev_params_b(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-br-bct_b-p3701-0000.dts)... done.
copying mb2bct_cfg(/home/loic/Downloads/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb2-bct-misc-p3701-0000.dts)... done.
...
[   0.8534 ] Pre-processing config: tegra234-mb1-bct-reset-p3701-0000.dts
[   0.8591 ] Pre-processing config: tegra234-mb1-bct-device-p3701-0000.dts
[   0.8644 ] Pre-processing config: tegra234-mb1-bct-cprod-p3701-0000.dts
[   0.8695 ] Pre-processing config: tegra234-mb1-bct-gpioint-p3701-0000.dts
[   0.8756 ] Pre-processing config: tegra234-mb1-bct-misc-p3701-0000.dts
[   0.8838 ] Pre-processing config: tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi
[   0.8946 ] Pre-processing config: tegra234-mb1-bct-padvoltage-p3701-0000-a04.dtsi
[   0.9002 ] Pre-processing config: tegra234-mb1-bct-pmic-p3701-0000.dts
[   0.9067 ] Pre-processing config: tegra234-mb1-bct-prod-p3701-0000.dts
[   0.9134 ] Pre-processing config: tegra234-p3701-0000-sdram-l4t.dts
[   2.3417 ] Pre-processing config: tegra234-mb1-bct-uphylane-si.dtsi
[   2.3510 ] Pre-processing config: tegra234-p3701-0000-wb0sdram-l4t.dts
[   3.7440 ] Pre-processing config: tegra234-mb1-bct-ratchet-p3701-0000.dts

I dont really know what to make of it tho, please explain (sorry if I’m making you repeat)

Board ID(3701) version(500) sku(0000) revision(H.0)

This line said you are using a devkit module. Could you get a production module first?

No… we sell production module alone because customer will make their own custom board.

For such case, we won’t sell them another carrier board. We only sell them the module… that module is called production module…

p3701-0000 is module from devkit… you must get it by plugging it out from devkit…

p3701-00004 is module for custom board. We sell this module alone…

Ah now it is clear, the thing is we bought our Jetson with the devkit in hopes to be able to develop our application while the design of the custom carrier board was ongoing. So we dont have a production module. Can we make it work with the devkit module?

This topic seemed to have same issue as me and did not have a production module: RGMII ethernet on Orin AGX CVB - #9 by WayneWWW

Since I now understand the modules part and that I only have 2 devkit modules, I switched the pinmux and padvoltage file to use the one who matches the devkit module (p3701-0000). However, by comparing with pinmux from production module (a04) i realise there is lots of tiny differences from both pinmux files. So i checked with the pinmux spreadsheet and realise it differs. How can i know which pinmux is the correct configuration ?

By switching the pinmux (and making the adjustment needed for RGMII from adaptation guide):

p3701.conf.common

PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3701-0000.dtsi";
PMC_CONFIG="tegra234-mb1-bct-padvoltage-p3701-0000.dtsi";

I still cant get my ethernet interface up…

Can you please help me troubleshoot?

Thanks
Loic

Then it could be hardware problem. There is not much to check from jetson software.

Pinmux, gpio, kernel dts are the only things to check here. If they are all correct, then please review hardware design.

You were right, we had the led lines which were connected to mdio address and it was causing the problem. Thanks for your help!

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