ORIN RGMII JP5.1.1 dtc give errors when translating example dts code

I am trying to get the RGMII code from the r35.2.1/DeveloperGuide to work with my JP5.1.1. L35.3.1 dev env.

I successfully convert the tegra234-p3701-0000-p3737-0000.dtb file to a .dts and edit it but when I try to translate it back to a .dtb I get the following error:

 der@der:~/Desktop/device_tree/Orin$ dtc -I dts -O dtb -o ./tegra234-p3701-0000-p3737-0000.dtb 360SA.dts
 Error: 360SA.dts:1704.47-48 syntax error
 FATAL ERROR: Unable to parse input tree

Other edits to the device tree worked to fix USB and disable the 10Gb Ethernet so I know the process is working. I suspect that the definitions for TEGRA234_MAIN_GPIO and tegra_main_gpio have been broken in JP5.1.1. L35.3.1 similarly to how the pinmux spreadsheet was broken.

The following lines give errors:

 nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(G,5) 0>;
              Error: 360SA.dts:1704.47-48 syntax error

 interrupt-parent = <&tegra_main_gpio>;
              ERROR (phandle_references): /ethernet@2310000/mdio/phy@1: Reference to non-existent node or label "tegra_main_gpio"

 interrupts = <TEGRA234_MAIN_GPIO(G,4) IRQ_TYPE_LEVEL_LOW>;
              Error: 360SA.dts:1720.21-22 syntax error

Here are my files:

360SA.dts (528.9 KB)
tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi (3.9 KB)

tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi (64.6 KB)

Some background: The 360SA custom carrier board works well with Xavier modules. The ORIN modules are working well with the exception of the Ethernet issues. Because the 1Gb Ethernet works with the Xavier SOMs we do not expect hardware issues with the Ethernet. I was able to get some activity by trying to hardcode the references but I don’t have the background to do that properly so I got the errors below:

 **[ 0.410205] OF: /ethernet@2310000: could not get #iommu-cells for /cbb/p2u@03f00000**
 **[ 0.410410] OF: /ethernet@2310000: could not get #interconnect-cells for 
 **[ 0.410425] OF: /ethernet@2310000: could not get #clock-cells for /iommu@12000000**
 **[ 0.410434] OF: /ethernet@2310000: could not get #gpio-cells for /bpmp**
 **[ 13.434324] nvethernet 2310000.ethernet: deferred probe timeout, ignoring dependency**

Pin mux seems to be in place. Mem dump:

 EQOS_TXC_0       =>  sudo busybox devmem 0x02445058  => 0x00002040 
 EQOS_TD3           =>  sudo busybox devmem 0x02445000  => 0x00002400
 ENET_RST PG.05 => sudo busybox devmem 0x02434070  => 0x00000058
 ENET_INT  PG.04 => sudo busybox devmem 0x02434078  => 0x00000000 

I hope that you may be able to help with this and get us going quickly.

Thank you for your time.


DTC can only be used for doing some simple modification. It cannot find some specific node when you try to use it to build dts as official way.

The official way is download the full source code and follow the developer guide to build.