We developed a custom carrier board and it successfully booted as reported here: (https://forums.developer.nvidia.com/t/jetson-agx-orin-not-booting-on-custom-carrier-board/320107).
On our carrier board, only the RGMII ethernet is available. Therefore, we have disabled MGBE, but we are unsure of all the steps required to enable the RGMII ethernet.
Below, we outline the steps we believe are necessary:
-
After reading the guide “Jetson AGX Orin Platform Adaptation and Bring-Up”, specifically the chapter “Ethernet Controller Configuration” - “For RGMII” , we understand that the pinmux needs to be modified.
-
Next, we disassemble the “tegra234-p3701-0000-p3737-0000.dtb” file to its dts format:
dtc -I dtb -O dts -o temp.dts tegra234-p3701-0000-p3737-0000.dtb
-
we then modify the dts file by adding the following configuration:
ethernet@2310000 {
status = "okay";
nvidia,mac-addr-idx = <0>;
nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(G, 5) 0>;
phy-mode = "rgmii-id";
//phy-handle = <&phy>;
mdio {
compatible = "nvidia,eqos-mdio";
#address-cells = <1>;
#size-cells = <0>;
phy: phy@1 { /* phy@1*/
compatible = "micrel,ksz9031";
device_type = "ethernet-phy";
reg = <1>; /*reg = <1>; */
nvidia,phy-rst-pdelay-msec = <224>; /* msec */
nvidia,phy-rst-duration-usec = <10000>; /* usec */
interrupt-parent = <&tegra_main_gpio>;
interrupts = <TEGRA234_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
micrel,copper-mode;
micrel,reg-init = <0x3 0x12 0x7fff 0x880>;
phandle = <0x21>;
};
};
};
-
We reassemble the modified dts file back into a dtb:
dtc -I dts -O dtb -o tegra234-p3701-0000-p3737-0000.dtb temp.dts
-
Now, with all the modified files in the Linux_for_tegra folder, we run:
sudo ./apply_binaries.sh
Then we flash the device using:
sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1
Could you confirm if this procedure is correct?
Additionally, I would like to inform you that we are using the KSZ9031RNX as the Ethernet chip.
Thank you