Hi ,
We are using LS1046a based custom board in which we have used BCM54220s PHY . But all the driver wise it is enabled . But we are not able to do ping. since host unreachable message is received. As per driver loading there is no error. Please let us know is any other configuration required.
Thank you,
Deepanraj.A
Please make sure that you have modified MDIO PHY address in the dts file.
You could check whether the Ethernet port is available in u-boot.
1. Please define CONFIG_PHY_BROADCOM in include/configs/ls1046ardb.h.
2. In board/freescale/ls1046ardb/eth.c, please modify PHY address in the following lines.
/* Set the two on-board RGMII PHY address */
fm_info_set_phy_address(FM1_DTSEC3, RGMII_PHY1_ADDR);
fm_info_set_phy_address(FM1_DTSEC4, RGMII_PHY2_ADDR);
/* Set the two on-board SGMII PHY address */
fm_info_set_phy_address(FM1_DTSEC5, SGMII_PHY1_ADDR);
fm_info_set_phy_address(FM1_DTSEC6, SGMII_PHY2_ADDR);
/* Set the on-board AQ PHY address */
fm_info_set_phy_address(FM1_10GEC1, FM1_10GEC1_PHY_ADDR);
3. Under u-boot prompt, please type
=> mdio list
FSL_MDIO0:
1 - RealTek RTL8211F <--> FM1@DTSEC3
2 - RealTek RTL8211F <--> FM1@DTSEC4
3 - RealTek RTL8211F <--> FM1@DTSEC5
4 - RealTek RTL8211F <--> FM1@DTSEC6
FM_TGEC_MDIO:
0 - Aquantia AQR107 <--> FM1@TGEC1
=> mdio read FM1@DTSEC3 1
Reading from bus FSL_MDIO0
PHY at address 1:
1 - 0x7989
=>
The link partner (“copper side”) link status bit is in Register #1 on the PHY. The 'Link Status' bit is bit #2 (from the left) of the
last nibble. In the above example the nibble of interest is "d" (d = b'1101'), and therefore the 'Link Status' = 1, which means
'link up'. If the link were down this bit would be a "0," and we would see 0x7969.
Hi,
In our case we are getting the below logs
=> mdio list
FSL_MDIO0:
0 - BCM54220s <--> FM1@DTSEC3
1 - BCM54220s <--> FM1@DTSEC5
=> mdio read FM1@DTSEC3 1
Reading from bus FSL_MDIO0
PHY at address 0:
1 - 0x7949
where link is up.
But when we try to ping we auto-negotiation timesout.
Thank you,
Deepanraj.A
The link status is down. The 'Link Status' bit is bit #2 (from the left) of the
last nibble. Please check the hardware issue.
Hi ,
Hardware wise which we can check . So that we can come to one conclusion . According to the debug log link is up since we are getting 49 in the last nibble.
Thank you,
Deepanraj.A
The last nibble is "9"(1001).
The 'Link Status' bit is bit #2 (from the left) of the last nibble, it is "0", so the link status is down.
Hi,
In kernel we are able to do
ifconfig fm1-mac3 192.168.2.30 up
ping 192.168.2.30 is able to ping the phy IP . So it means PHY is proper as per hardware .
Please let us know, what point we can check in software. to make sure it is not software configuration issue
Thank you,
Deepanraj.A
In the dts file, please refer to the following configuration.
&fman0 {
ethernet@e4000 {
phy-handle = <&rgmii_phy1>;
phy-connection-type = "rgmii-id";
};
ethernet@e8000 {
phy-handle = <&sgmii_phy1>;
phy-connection-type = "sgmii";
};
...
mdio@fc000 {
rgmii_phy1: ethernet-phy@1 {
reg = <0x0>;
};
sgmii_phy1: ethernet-phy@3 {
reg = <0x1>;
};
In addition, in Linux please use "ethtool" to check the Ethernet port link status.