diff options
author | Shengzhou Liu <Shengzhou.Liu@freescale.com> | 2015-02-10 10:48:45 (GMT) |
---|---|---|
committer | Honghua Yin <Hong-Hua.Yin@freescale.com> | 2015-03-23 03:47:58 (GMT) |
commit | cc2790e27bff1fa685a02538163ad47b6db17d84 (patch) | |
tree | 735afa0d2988c3d551f7828d1113b8fda8a381a3 /drivers/net/ethernet/freescale/fman | |
parent | c88af4c38439f12feaf9c6c914177fba8fbc06ee (diff) | |
download | linux-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')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.h | 1 |
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 |