summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC
diff options
context:
space:
mode:
authorShengzhou Liu <Shengzhou.Liu@freescale.com>2015-02-10 10:48:45 (GMT)
committerHonghua Yin <Hong-Hua.Yin@freescale.com>2015-03-23 03:47:58 (GMT)
commitcc2790e27bff1fa685a02538163ad47b6db17d84 (patch)
tree735afa0d2988c3d551f7828d1113b8fda8a381a3 /drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC
parentc88af4c38439f12feaf9c6c914177fba8fbc06ee (diff)
downloadlinux-fsl-qoriq-cc2790e27bff1fa685a02538163ad47b6db17d84.tar.xz
fmd: set sgmii_speed if disabled auto-neg for 2.5g sgmii
When disabled auto-neg for 2.5 sgmii, it needs to set MDIO_SGMII_IF_MODE[SGMII_SPEED] to '10'(for gigabit) for 2.5G operation, otherwise large packet loss issue occured. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> Change-Id: I21ddecd01aaf1eced8d62a40b737218cf47ca6b4 Reviewed-on: http://git.am.freescale.net:8181/32697 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC')
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c2
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
index 34eefb9..a2b8751 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c
@@ -93,7 +93,7 @@ static void SetupSgmiiInternalPhy(t_Memac *p_Memac, uint8_t phyAddr)
/* SGMII mode + AN enable */
tmpReg16 = PHY_SGMII_IF_MODE_AN | PHY_SGMII_IF_MODE_SGMII;
if ((p_Memac->enetMode) == e_ENET_MODE_SGMII_2500)
- tmpReg16 = PHY_SGMII_CR_PHY_RESET | PHY_SGMII_IF_MODE_SGMII;
+ tmpReg16 = PHY_SGMII_CR_PHY_RESET | PHY_SGMII_IF_SPEED_GIGABIT | PHY_SGMII_IF_MODE_SGMII;
p_Memac->enetMode = MAKE_ENET_MODE(ENET_INTERFACE_FROM_MODE(p_Memac->enetMode), e_ENET_SPEED_1000);
MEMAC_MII_WritePhyReg(p_Memac, phyAddr, 0x14, tmpReg16);
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.h b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.h
index 4bb09d6..2fd89da 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.h
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.h
@@ -95,6 +95,7 @@ typedef struct
#define PHY_SGMII_CR_DEF_VAL 0x1140
#define PHY_SGMII_DEV_ABILITY_SGMII 0x4001
#define PHY_SGMII_DEV_ABILITY_1000X 0x01A0
+#define PHY_SGMII_IF_SPEED_GIGABIT 0x0008
#define PHY_SGMII_IF_MODE_AN 0x0002
#define PHY_SGMII_IF_MODE_SGMII 0x0001
#define PHY_SGMII_IF_MODE_1000X 0x0000