Fman/mEMAC: mEMAC fix for 10G MAC and PHY
Subsystems (2)
PATCH 1/1 Fman/mEMAC: mEMAC fix for 10G MAC and PHY
From: Shaohui Xie <[email protected]>
1. use Payload length check disable when enable MAC;
2. add XGMII support for setting MAC interface mode;
3. only enable auto negotiation for Non-XGMII mode;
4. return 0xffff if clause 22 is used to read 10G phy_id;
--- arch/powerpc/include/asm/fsl_memac.h | 1 + drivers/net/fm/memac.c | 12 +++++++++--- drivers/net/fm/memac_phy.c | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-)
arch/powerpc/include/asm/fsl_memac.h +1 -0
@@ -159,6 +159,7 @@ struct memac {#define MEMAC_CMD_CFG_RX_EN 0x00000002/* MAC Rx path enable */ #define MEMAC_CMD_CFG_TX_EN 0x00000001/* MAC Tx path enable */ #define MEMAC_CMD_CFG_RXTX_EN (MEMAC_CMD_CFG_RX_EN | MEMAC_CMD_CFG_TX_EN) +#define MEMAC_CMD_CFG_NO_LEN_CHK 0x20000/* Payload length check disable */ /* HASHTABLE_CTRL - Hashtable control register */ #define HASHTABLE_CTRL_MCAST_EN 0x00000200/* enable mulitcast Rx hash */
drivers/net/fm/memac.c +9 -3
@@ -38,7 +38,8 @@ static void memac_enable_mac(struct fsl_enet_mac *mac) {struct memac *regs = mac->base; -setbits_be32 (®s->command_config,MEMAC_CMD_CFG_RXTX_EN ); +setbits_be32 (®s->command_config, +MEMAC_CMD_CFG_RXTX_EN |MEMAC_CMD_CFG_NO_LEN_CHK ); }static void memac_disable_mac (struct fsl_enet_mac *mac)
@@ -94,11 +95,16 @@ static void memac_set_interface_mode(struct fsl_enet_mac *mac, if_mode &= ~IF_MODE_MASK ; if_mode |= (IF_MODE_GMII );break ; +case PHY_INTERFACE_MODE_XGMII : + if_mode &= ~IF_MODE_MASK ; + if_mode |=IF_MODE_XGMII ; +break ;default :break ; } -/* Enable automatic speed selection */ - if_mode |=IF_MODE_EN_AUTO ; +/* Enable automatic speed selection for Non-XGMII */ +if (type !=PHY_INTERFACE_MODE_XGMII ) + if_mode |=IF_MODE_EN_AUTO ;if (type ==PHY_INTERFACE_MODE_RGMII ) { if_mode &= ~IF_MODE_EN_AUTO ;
drivers/net/fm/memac_phy.c +2 -0
@@ -71,6 +71,8 @@ int memac_mdio_read(struct mii_dev *bus, int port_addr, int dev_addr,u32 c45 =1 ;if (dev_addr ==MDIO_DEVAD_NONE ) { +if (!strcmp (bus->name,DEFAULT_FM_TGEC_MDIO_NAME )) +return 0xffff ; c45 =0 ;/* clause 22 */ dev_addr = regnum &0x1f ;clrbits_be32 (®s->mdio_stat,MDIO_STAT_ENC );
Signature · 1 line
1.8.0
PATCH 1/1 Fman/mEMAC: mEMAC fix for 10G MAC and PHY
Quoted 10 lines · On Wed, Aug 13, 2014 at 5:32 AM, <[email protected]> wrote:
From: Shaohui Xie <[email protected]>
1. use Payload length check disable when enable MAC;
2. add XGMII support for setting MAC interface mode;
3. only enable auto negotiation for Non-XGMII mode;
4. return0xffffif clause 22 is used to read 10Gphy_id;Signed-off-by Shaohui Xie <[email protected]>Signed-off-by Roy Zang <[email protected]>
PATCH 1/1 Fman/mEMAC: mEMAC fix for 10G MAC and PHY
In reply to shh.xie at gmail.comQuoted 10 lines · shh.xie at gmail.com
From: Shaohui Xie <[email protected]>
1. use Payload length check disable when enable MAC;
2. add XGMII support for setting MAC interface mode;
3. only enable auto negotiation for Non-XGMII mode;
4. return0xffffif clause 22 is used to read 10Gphy_id;Signed-off-by Shaohui Xie <[email protected]>Signed-off-by Roy Zang <[email protected]>---
Applied to u-boot-mpc85xx master. Thanks.
York