mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 23:50:26 +09:00
Fman/t4240: some fix for 10G XAUI
1. fix 10G mac offset by plus 8; 2. add second 10G port info for FM1 & FM2 when init ethernet info; 3. fix 10G lanes name to match lane protocol table; Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com> Signed-off-by: Roy Zang <tie-fei.zang@freescale.com> Signed-off-by: Andy Fleming <afleming@freescale.com>
This commit is contained in:
parent
4e5c9261be
commit
944b6ccf1b
@ -568,6 +568,8 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg)
|
|||||||
num = fm_eth->num;
|
num = fm_eth->num;
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_FMAN_V3
|
#ifdef CONFIG_SYS_FMAN_V3
|
||||||
|
if (fm_eth->type == FM_ETH_10G_E)
|
||||||
|
num += 8;
|
||||||
base = ®->memac[num].fm_memac;
|
base = ®->memac[num].fm_memac;
|
||||||
phyregs = ®->memac[num].fm_memac_mdio;
|
phyregs = ®->memac[num].fm_memac_mdio;
|
||||||
#else
|
#else
|
||||||
|
@ -74,9 +74,15 @@ struct fm_eth_info fm_info[] = {
|
|||||||
#if (CONFIG_SYS_NUM_FM1_10GEC >= 1)
|
#if (CONFIG_SYS_NUM_FM1_10GEC >= 1)
|
||||||
FM_TGEC_INFO_INITIALIZER(1, 1),
|
FM_TGEC_INFO_INITIALIZER(1, 1),
|
||||||
#endif
|
#endif
|
||||||
|
#if (CONFIG_SYS_NUM_FM1_10GEC >= 2)
|
||||||
|
FM_TGEC_INFO_INITIALIZER(1, 2),
|
||||||
|
#endif
|
||||||
#if (CONFIG_SYS_NUM_FM2_10GEC >= 1)
|
#if (CONFIG_SYS_NUM_FM2_10GEC >= 1)
|
||||||
FM_TGEC_INFO_INITIALIZER(2, 1),
|
FM_TGEC_INFO_INITIALIZER(2, 1),
|
||||||
#endif
|
#endif
|
||||||
|
#if (CONFIG_SYS_NUM_FM2_10GEC >= 2)
|
||||||
|
FM_TGEC_INFO_INITIALIZER(2, 2),
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
int fm_standard_init(bd_t *bis)
|
int fm_standard_init(bd_t *bis)
|
||||||
|
@ -70,12 +70,18 @@ phy_interface_t fman_port_enet_if(enum fm_port port)
|
|||||||
if (is_device_disabled(port))
|
if (is_device_disabled(port))
|
||||||
return PHY_INTERFACE_MODE_NONE;
|
return PHY_INTERFACE_MODE_NONE;
|
||||||
|
|
||||||
if ((port == FM1_10GEC1 || port == FM1_10GEC2)
|
if ((port == FM1_10GEC1 || port == FM1_10GEC2) &&
|
||||||
&& (is_serdes_configured(XAUI_FM1)))
|
((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;
|
return PHY_INTERFACE_MODE_XGMII;
|
||||||
|
|
||||||
if ((port == FM2_10GEC1 || port == FM2_10GEC2)
|
if ((port == FM2_10GEC1 || port == FM2_10GEC2) &&
|
||||||
&& (is_serdes_configured(XAUI_FM2)))
|
((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;
|
return PHY_INTERFACE_MODE_XGMII;
|
||||||
|
|
||||||
#define FSL_CORENET_RCWSR13_EC1 0x60000000 /* bits 417..418 */
|
#define FSL_CORENET_RCWSR13_EC1 0x60000000 /* bits 417..418 */
|
||||||
|
@ -88,7 +88,7 @@ enum fm_eth_type {
|
|||||||
|
|
||||||
#define FM_TGEC_INFO_INITIALIZER(idx, n) \
|
#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, \
|
.index = idx, \
|
||||||
.num = n - 1, \
|
.num = n - 1, \
|
||||||
.type = FM_ETH_10G_E, \
|
.type = FM_ETH_10G_E, \
|
||||||
@ -96,7 +96,7 @@ enum fm_eth_type {
|
|||||||
.rx_port_id = RX_PORT_10G_BASE + n - 1, \
|
.rx_port_id = RX_PORT_10G_BASE + n - 1, \
|
||||||
.tx_port_id = TX_PORT_10G_BASE + n - 1, \
|
.tx_port_id = TX_PORT_10G_BASE + n - 1, \
|
||||||
.compat_offset = CONFIG_SYS_FSL_FM##idx##_OFFSET + \
|
.compat_offset = CONFIG_SYS_FSL_FM##idx##_OFFSET + \
|
||||||
offsetof(struct ccsr_fman, memac[n-1]),\
|
offsetof(struct ccsr_fman, memac[n-1+8]),\
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define FM_DTSEC_INFO_INITIALIZER(idx, n) \
|
#define FM_DTSEC_INFO_INITIALIZER(idx, n) \
|
||||||
|
Loading…
Reference in New Issue
Block a user