diff options
| -rw-r--r-- | drivers/net/fm/eth.c | 2 | ||||
| -rw-r--r-- | drivers/net/fm/init.c | 6 | ||||
| -rw-r--r-- | drivers/net/fm/t4240.c | 14 | ||||
| -rw-r--r-- | include/fm_eth.h | 4 | 
4 files changed, 20 insertions, 6 deletions
| diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c index 54b142f47..9b139eeb0 100644 --- a/drivers/net/fm/eth.c +++ b/drivers/net/fm/eth.c @@ -568,6 +568,8 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg)  	num = fm_eth->num;  #ifdef CONFIG_SYS_FMAN_V3 +	if (fm_eth->type == FM_ETH_10G_E) +		num += 8;  	base = ®->memac[num].fm_memac;  	phyregs = ®->memac[num].fm_memac_mdio;  #else diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c index ae389b884..d12ec9b5e 100644 --- a/drivers/net/fm/init.c +++ b/drivers/net/fm/init.c @@ -74,9 +74,15 @@ struct fm_eth_info fm_info[] = {  #if (CONFIG_SYS_NUM_FM1_10GEC >= 1)  	FM_TGEC_INFO_INITIALIZER(1, 1),  #endif +#if (CONFIG_SYS_NUM_FM1_10GEC >= 2) +	FM_TGEC_INFO_INITIALIZER(1, 2), +#endif  #if (CONFIG_SYS_NUM_FM2_10GEC >= 1)  	FM_TGEC_INFO_INITIALIZER(2, 1),  #endif +#if (CONFIG_SYS_NUM_FM2_10GEC >= 2) +	FM_TGEC_INFO_INITIALIZER(2, 2), +#endif  };  int fm_standard_init(bd_t *bis) diff --git a/drivers/net/fm/t4240.c b/drivers/net/fm/t4240.c index 48c530c91..275395f18 100644 --- a/drivers/net/fm/t4240.c +++ b/drivers/net/fm/t4240.c @@ -70,12 +70,18 @@ phy_interface_t fman_port_enet_if(enum fm_port port)  	if (is_device_disabled(port))  		return PHY_INTERFACE_MODE_NONE; -	if ((port == FM1_10GEC1 || port == FM1_10GEC2) -			&& (is_serdes_configured(XAUI_FM1))) +	if ((port == FM1_10GEC1 || port == FM1_10GEC2) && +	    ((is_serdes_configured(XAUI_FM1_MAC9))	|| +	     (is_serdes_configured(XAUI_FM1_MAC10))	|| +	     (is_serdes_configured(XFI_FM1_MAC9))	|| +	     (is_serdes_configured(XFI_FM1_MAC10))))  		return PHY_INTERFACE_MODE_XGMII; -	if ((port == FM2_10GEC1 || port == FM2_10GEC2) -			&& (is_serdes_configured(XAUI_FM2))) +	if ((port == FM2_10GEC1 || port == FM2_10GEC2) && +	    ((is_serdes_configured(XAUI_FM2_MAC9))	|| +	     (is_serdes_configured(XAUI_FM2_MAC10))	|| +	     (is_serdes_configured(XFI_FM2_MAC9))	|| +	     (is_serdes_configured(XFI_FM2_MAC10))))  		return PHY_INTERFACE_MODE_XGMII;  #define FSL_CORENET_RCWSR13_EC1			0x60000000 /* bits 417..418 */ diff --git a/include/fm_eth.h b/include/fm_eth.h index 495765b93..8fcf17210 100644 --- a/include/fm_eth.h +++ b/include/fm_eth.h @@ -88,7 +88,7 @@ enum fm_eth_type {  #define FM_TGEC_INFO_INITIALIZER(idx, n) \  {									\ -	FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM1_TGEC_MDIO_ADDR)	\ +	FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM2_TGEC_MDIO_ADDR)	\  	.index		= idx,						\  	.num		= n - 1,					\  	.type		= FM_ETH_10G_E,					\ @@ -96,7 +96,7 @@ enum fm_eth_type {  	.rx_port_id	= RX_PORT_10G_BASE + n - 1,			\  	.tx_port_id	= TX_PORT_10G_BASE + n - 1,			\  	.compat_offset	= CONFIG_SYS_FSL_FM##idx##_OFFSET +		\ -				offsetof(struct ccsr_fman, memac[n-1]),\ +				offsetof(struct ccsr_fman, memac[n-1+8]),\  }  #else  #define FM_DTSEC_INFO_INITIALIZER(idx, n) \ |