Trying to get Ethernet Interface working

I am trying to get the ethernet interface working in our unit with a RGMII and Microchip KSZ9031.

We followed this post:

But still experiencing issues. Here is out dmesg output:

[ 10.562333] nvethernet 2310000.ethernet: Adding to iommu group 51
[ 10.573256] nvethernet 2310000.ethernet: failed to read skip mac reset flag, default 0
[ 10.581421] nvethernet 2310000.ethernet: failed to read MDIO address
[ 10.594301] nvethernet 2310000.ethernet: Failed to read nvida,pause_frames, so setting to default support as de
[ 10.605135] nvethernet 2310000.ethernet: setting to default DMA bit mask
[ 10.612038] nvethernet 2310000.ethernet: max-platform-mtu DT entry missing, setting default 1500
[ 10.621114] nvethernet 2310000.ethernet: missing nvidia,pad_auto_cal_pu_offset, setting default 0
[ 10.630233] nvethernet 2310000.ethernet: missing nvidia,pad_auto_cal_pd_offset, setting default 0
[ 10.888065] nvethernet 2310000.ethernet: Ethernet MAC address: 48:b0:2d:ee:fa:bc
[ 10.896010] nvethernet 2310000.ethernet: macsec param in DT is missing or disabled
[ 10.903790] nvethernet 2310000.ethernet: Macsec not supported/Not enabled in DT
[ 10.913961] nvethernet 2310000.ethernet: eth0 (HW ver: 53) created with 8 DMA channels
[ 16.113248] using random self ethernet address
[ 16.117881] using random host ethernet address
[ 18.061600] using random self ethernet address
[ 18.066278] using random host ethernet address

  • Here is modification to the file tegra234-ethernet-3737-0000.dtsi (we are not using 10G):

/ {
/* EQOS */
ethernet@2310000 {
compatible = “nvidia,nveqos”;
status = “okay”;
nvidia,mac-addr-idx = <0>;
nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(G,5) 0>;
nvidia,platform-mtu = <16383>;
nvdia,pause_frames = <0>;
phy-mode = “rgmii-id”;
//assigned-clock-rates = <125000000>;
phy-handle = <&rgmii_phy>;
/delete-node/ fixed-link;

	fixed-link{
       	 	speed = <1000>;
        	full-duplex;
	 	};
		
	mdio {
		compatible = "nvidia,eqos-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		rgmii_phy: phy@0 {        /* phy@0*/
			//compatible = "micrel,ksz9031";
			compatible = "ethernet-phy-ieee802.3-c22", "ethernet-phy-id0022.1620", "micrel,ksz9031";
			device_type = "ethernet-phy";
			reg = <0>;     /*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,reg-init = <0x3 0x12 0x7fff 0x880>;
			micrel,copper-mode;
			phandle = <0x21>;
			//max-speed = <1000>;
		};
	};
};

};

  • Also modified the tegra_defconfig as “CONFIG_MICREL_PHY=y”,

  • We are flashing using Configuration #2:
    ODMDATA=“gbe-uphy-config-0,hsstp-lane-map-3,hsio-uphy-config-16,nvhs-uphy-config-1”;

Here is the boot log:
boot.log.txt (70.3 KB)

What are we missing with this configuration for ethernet?

PHY Details:
image

Reset and IRQ
image

I got it to work for our unit.

Here is what I changed in the tegra234-ethernet-3737-0000.dtsi file:

/ {
/* EQOS */
ethernet@2310000 {
compatible = “nvidia,nveqos”;
status = “okay”;
nvidia,mac-addr-idx = <0>;
nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(G,5) 0>;
nvidia,platform-mtu = <16383>;
nvdia,pause_frames = <1>;
phy-mode = “rgmii-id”;
//assigned-clock-rates = <125000000>;
//phy-handle = <&rgmii_phy>;
/delete-node/ fixed-link;

	fixed-link{
		speed = <1000>;
		full-duplex;
	};
		
	mdio {
		compatible = "nvidia,eqos-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		rgmii_phy: phy@0 {        /* phy@0*/
			//compatible = "micrel,ksz9031";
			compatible = "ethernet-phy-ieee802.3-c22", "ethernet-phy-id0022.1620", "micrel,ksz9031";
			device_type = "ethernet-phy";
			reg = <0>;     /*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,reg-init = <0x3 0x12 0x7fff 0x880>;
			micrel,copper-mode;
			phandle = <0x21>;
			//max-speed = <1000>;
		};
	};
};

};

** I can ping the SoC now, but still see errors in my dmesg | grep ethernet when booting:

[ 10.532694] nvethernet 2310000.ethernet: Adding to iommu group 51
[ 10.543747] nvethernet 2310000.ethernet: failed to read skip mac reset flag, default 0
[ 10.551923] nvethernet 2310000.ethernet: failed to read MDIO address
[ 10.564985] nvethernet 2310000.ethernet: Failed to read nvida,pause_frames, so setting to dee
[ 10.575848] nvethernet 2310000.ethernet: setting to default DMA bit mask
[ 10.582755] nvethernet 2310000.ethernet: max-platform-mtu DT entry missing, setting default 0
[ 10.593956] nvethernet 2310000.ethernet: missing nvidia,pad_auto_cal_pu_offset, setting defa0
[ 10.604478] nvethernet 2310000.ethernet: missing nvidia,pad_auto_cal_pd_offset, setting defa0
[ 10.626080] nvethernet 2310000.ethernet: Ethernet MAC address: 48:b0:2d:ef:31:8a
[ 10.634028] nvethernet 2310000.ethernet: macsec param in DT is missing or disabled
[ 10.641824] nvethernet 2310000.ethernet: Macsec not supported/Not enabled in DT
[ 10.650485] nvethernet 2310000.ethernet: eth0 (HW ver: 53) created with 8 DMA channels
[ 15.232457] using random self ethernet address
[ 15.237079] using random host ethernet address
[ 17.733899] using random self ethernet address
[ 17.738572] using random host ethernet address
[ 17.932891] nvethernet 2310000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

How do I clean the eth0 interface up?

Above errors do not really matter. Also, some of them appear because you remove something from original device tree…

However, as I said, they do not really cause fatal result…

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