25G QSFP on AGX Thor DevKit not working

Hi:

I have a THOR DevKit (38.4). I enabled the 25G QSFP referring to this doc.

After I re-flashed the device, 25G QSFP ports do not work expected. I observed the same issue as this topic:

@kayccc , you mentioned it will be fixed in 2026/Jan. I ran “./source_sync.sh -k -t jetson_38.4” and rebuild the code last week but the issue still persists. Can you confirm the fix has been in the branch?

This topic mentioned that I need to convert the dtb file in my BSP directory Linux_for_Tegra/bootloader and update it.

I ran “dtc” to convert between dtb and dts. Is that correct?

Thanks

Kevin

Did you follow this guide and modify 2 dtb?

enable-25-gigabit-ethernet-on-qsfp-port

Yes, I did.

When I followed that doc, I found tegra264-bpmp-3834-0008-4071-xxxx.dts is missing from the source code. I followed another thread to convert the device tree binary file to text then apply the patch. Did you have the same issue and how did you patch this file?

Thanks

Kevin

This is how I enabled 25gb mgbe:

Update kernel/dtb/tegra264-p4071-0000+p3834-0008-nv.dtb

cd Linux_for_Tegra
mkdir temp
cp kernel/dtb/tegra264-p4071-0000+p3834-0008-nv.dtb temp/
cd temp

# Decompile dtb

dtc -I dtb -O dts -o 0008-nv.dts tegra264-p4071-0000+p3834-0008-nv.dtb 

# edit 0008-nv.dts  I've only included a guide to changes for mgbe0 below. 
Change these entries for all 4 mgbe.
mgbe0: ethernet@a808a10000; mgbe1: ethernet@a808a10000; mgbe2: ethernet@a808a10000; mgbe3: ethernet@a808a10000
    mgbe0: ethernet@a808a10000 {
      status = "okay";
      nvidia,mac-addr-idx = <1>;
-        nvidia,uphy-gbe-mode = <1>;
-        nvidia,phy-iface-mode = <0x0>;
+        nvidia,uphy-gbe-mode = <2>;
         nvidia,max-platform-mtu = <9000>;
         nvidia,pcs-rx-eq-sw-ovrd = <1>;
         nvidia,pps_op_ctrl = <8>;

         fixed-link {
          full-duplex;
-            speed = <10000>;
+            speed = <25000>;
         };
     };
# Compile the DTB and replace it in the following paths:

dtc -I dts -O dtb -o tegra264-bpmp-3834-0008-4071-xxxx.dtb bpmp.dts

cp tegra264-bpmp-3834-0008-4071-xxxx.dtb ../kernel/dtb/tegra264-p4071-0000+p3834-0008-nv.dtb
cp tegra264-bpmp-3834-0008-4071-xxxx.dtb ../rootfs/boot/tegra264-p4071-0000+p3834-0008-nv.dtb
cp tegra264-bpmp-3834-0008-4071-xxxx.dtb ../bootloader/tegra264-p4071-0000+p3834-0008-nv.dtb

Update bootloader/generic/tegra264-bpmp-3834-0008-4071-xxxx.dtb as follows:

cp  ../bootloader/generic/tegra264-bpmp-3834-0008-4071-xxxx.dtb .

dtc -I dtb -O dts -o xxxx.dts tegra264-bpmp-3834-0008-4071-xxxx.dtb

# edit xxxx.dts to make these changes:

  status = "okay";
  uphy0-config = <7>;      // Configure UPHY0-Lane6-7 for UFS
-       uphy1-config = <7>;      // Configure UPHY1-Lane0-3 for C5 to enable mgbe
-       mgbe0-speed = <2>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
-       mgbe1-speed = <2>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
-       mgbe2-speed = <2>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
-       mgbe3-speed = <2>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
+       uphy1-config = <8>;      // Configure UPHY1-Lane0-3 for C5 to enable mgbe
+       mgbe0-speed = <3>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
+       mgbe1-speed = <3>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
+       mgbe2-speed = <3>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
+       mgbe3-speed = <3>;       /* 0 for 2.5G, 1 for 5G, 2 for 10G, 3 for 25G */
};
# Compile the BPMP DTB and copy it to the following locations:

dtc -I dts -O dtb -o tegra264-bpmp-3834-0008-4071-xxxx.dtb xxxx.dts

cp tegra264-bpmp-3834-0008-4071-xxxx.dtb ../bootloader/generic/tegra264-bpmp-3834-0008-4071-xxxx.dtb
cp tegra264-bpmp-3834-0008-4071-xxxx.dtb ../bootloader/tegra264-bpmp-3834-0008-4071-xxxx.dtb

Reflash Thor

Thanks.

That is the same as what I did.

Did you successfully set up the 25G connection and actually use the network?

In my case, Thor shows the speed of the ports are 25G after I re-flashed it.

But I failed to get a connection when I connected it to the other end of 25G port.

And I observed the same issue of this ticket:

Thanks

Kevin