summaryrefslogtreecommitdiff
path: root/board/freescale
diff options
context:
space:
mode:
authorShaohui Xie <Shaohui.Xie@nxp.com>2016-10-17 08:20:48 (GMT)
committerYork Sun <york.sun@nxp.com>2016-11-21 17:20:32 (GMT)
commitc435a7c8c1b872d38fcc671369f6e290d2fff08c (patch)
tree42af7e2151bdf2b46bc0220b4fc0db0da62502ea /board/freescale
parent5eef15ea9d297d270935510d8a635f8d8bf72439 (diff)
downloadu-boot-c435a7c8c1b872d38fcc671369f6e290d2fff08c.tar.xz
armv8: ls2080aqds: fix SGMII repeater settings
The current value to check whether the PHY was configured has dependency on MC, it expects MC to start PCS AN, this is not true during boot up, so it should be changed to remove the dependency. The PHY's register space should be restore to default after accessing extended space. Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
Diffstat (limited to 'board/freescale')
-rw-r--r--board/freescale/ls2080aqds/eth.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/board/freescale/ls2080aqds/eth.c b/board/freescale/ls2080aqds/eth.c
index 8618506..59361e9 100644
--- a/board/freescale/ls2080aqds/eth.c
+++ b/board/freescale/ls2080aqds/eth.c
@@ -144,8 +144,10 @@ static void sgmii_configure_repeater(int serdes_port)
mdelay(10);
- if ((value & 0xfff) == 0x40f) {
+ if ((value & 0xfff) == 0x401) {
printf("DPMAC %d:PHY is ..... Configured\n", dpmac_id);
+ miiphy_write(dev[mii_bus], riser_phy_addr[dpmac],
+ 0x1f, 0);
continue;
}
@@ -181,28 +183,29 @@ static void sgmii_configure_repeater(int serdes_port)
if (ret > 0)
goto error;
- mdelay(1);
+ mdelay(100);
ret = miiphy_read(dev[mii_bus],
riser_phy_addr[dpmac],
0x11, &value);
if (ret > 0)
goto error;
- mdelay(10);
- if ((value & 0xfff) == 0x40f) {
+ if ((value & 0xfff) == 0x401) {
printf("DPMAC %d :PHY is configured ",
dpmac_id);
printf("after setting repeater 0x%x\n",
value);
i = 5;
j = 5;
- } else
+ } else {
printf("DPMAC %d :PHY is failed to ",
dpmac_id);
printf("configure the repeater 0x%x\n",
value);
}
+ }
}
+ miiphy_write(dev[mii_bus], riser_phy_addr[dpmac], 0x1f, 0);
}
error:
if (ret)