We are homemade boards, want to use 1000 base communication, platform is xilnx zc706, phy mode for RGMII,
Uboot start times wrong:
PHY address is not setup correctly 7
PHY is not detected
GEM PHY init failed
No Ethernet found
Do you have done, how to solve this problem?
CodePudding user response:
PHY ID right
CodePudding user response:
reference 1st floor melo_fang response: PHY ID right? & Gem0 { The status="okay"; Phy - mode="rgmii - id"; Phy - handle=& lt; & Ethernet_phy & gt;; Pinctrl - names="default"; Pinctrl - 0=& lt; & Pinctrl_gem0_default & gt;; Ethernet_phy: Ethernet - phy @ 7 { Reg=& lt; 7 & gt;; Device_type="Ethernet - phy"; XLNX, phy -type=& lt; 0 x 5 & gt;; }; }; The id should be no problem, The problem on the RGMII mode, in the mode of the phy network register number have problems CodePudding user response:
Reading a phy register go management MDIO mouth, and in the RGMII mode it doesn't matter, can now normal access phy register? CodePudding user response:
reference 3 floor actually don't want to understand response: read the management of the phy register go MDIO mouth, and in the RGMII mode it doesn't matter, can now normal access phy register? Hello, I put the fault-tolerant block error, is to be able to access the phy register, and register states also have change, can visit phy registers, Uboot error source location: /* the Enable only MDIO bus */ Writel (ZYNQ_GEM_NWCTRL_MDEN_MASK, & amp; Regs - & gt; NWCTRL); If (priv - & gt; Interface!={PHY_INTERFACE_MODE_SGMII) Ret=phy_detection (dev); If (ret) { Printf (" the GEM PHY init failed \ n "); return ret; } } My shield is the judgment, CodePudding user response:
reference 3 floor actually don't want to understand response: read the management of the phy register go MDIO mouth, and in the RGMII mode it doesn't matter, can now normal access phy register? Phy_detection this function: Phyread (priv, priv - & gt; Phyaddr PHY_DETECT_REG, & amp; Phyreg); If ((phyreg!=0 XFFFF) & amp; & ((phyreg & amp; PHY_DETECT_MASK)==PHY_DETECT_MASK)) { /* Found a valid PHY address */ The debug (" Default phy address % d is valid \ n ", Priv - & gt; Phyaddr); return 0; } PHY_DETECT_MASK: this macro is 1808, I don't know why is 1808.