UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 61117

PetaLinux - My System Device Tree DTS Does Not Include Ethernet PHY Information

Description

The device tree DTS and DTSI files created by PetaLinux do not include PHY or MDIO information. 

Is this expected?

Solution

Yes, this is expected.  

Ethernet PHY information is board level and board-specific information that PetaLinux does not have access to without user input.  

This information should be included in the system-top.dts file and should include the information relevant for your specific platform. 
 

Below is an example of a well-formed system-top.dts file for a single Ethernet device routed through the Zynq PS7 MIO pins:

/dts-v1/;
/include/ "system-conf.dtsi"
/ {
};

&gem0 {
  local-mac-address = [00 0a 35 00 c0 12];
  phy-handle = <&phy0>;
  phy-mode = "rgmii-id";
  
  mdio {
   #address-cells = <1>;
   #size-cells = <0>;
   phy0: phy@0 {
    compatible = "marvell,88e1116r";
    device_type = "ethernet-phy";
    reg = <0>;
   } ;
  } ; 
};
Below is an example of a well-formed system-top.dts file for a dual Ethernet configuration where GEM0 is routed through MIO, and GEM1 is routed through EMIO via the GMII2RGMII conversion IP:
 
/dts-v1/;
/include/ "system-conf.dtsi"
/ {
 aliases {
  ethernet1 = &gem1;
 };
};
 
&gem0 {
  local-mac-address = [00 0a 35 00 c0 12];
  phy-handle = <&phy0>;
  phy-mode = "rgmii-id";
  
  mdio {
   #address-cells = <1>;
   #size-cells = <0>;
   phy0: phy@0 {
    compatible = "marvell,88e1116r";
    device_type = "ethernet-phy";
    reg = <0>;
   } ;
  } ; 
};
 
&gem1 {
  local-mac-address = [00 0a 35 00 c0 13];
  phy-handle = <&phy1>;
  gmii2rgmii-phy-handle = <&gmii_to_rgmii_0>;
  
  ps7_ethernet_1_mdio: mdio {
  #address-cells = <1>;
  #size-cells = <0>;
  phy1: phy@1 {
            compatible = "marvell,88e1510";
            device_type = "ethernet-phy";
            reg = <0x1>;
        };  
  gmii_to_rgmii_0: phy@8 {
   device_type = "ethernet-phy";
   reg = <8>;
  };
 };  
};

Note: ensure that the device tree node name, MDIO address, and compatible strings correspond to the naming conventions used in your specific system and hardware.

AR# 61117
Date Created 06/12/2014
Last Updated 03/24/2015
Status Active
Type General Article
Tools
  • PetaLinux
  • PetaLinux - 2014.2
  • PetaLinux - 2014.4