net/fm: update ft_fixup_port to differentiate dual-role mac
PATCH 1/1 net/fm: update ft_fixup_port to differentiate dual-role mac
we need to differentiate dual-role MACs into two types: MACs with 10GEC enumeration consistent with DTSEC enumeration(defined by CONFIG_FSL_FM_10GEC_REGULAR_NOTATION) and other MACs without CONFIG_FSL_FM_10GEC_REGULAR_NOTATION defined.
Signed-off-by Shengzhou Liu <[email protected]>
--- drivers/net/fm/init.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-)
drivers/net/fm/init.c +16 -5
@@ -247,17 +247,17 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop) }#ifdef CONFIG_SYS_FMAN_V3 +#ifndef CONFIG_FSL_FM_10GEC_REGULAR_NOTATION /* -* Physically FM1_DTSEC9 and FM1_10GEC1 use the same dual-role MAC, when -* FM1_10GEC1 is enabled and FM1_DTSEC9 is disabled, ensure that the -* dual-role MAC is not disabled, ditto for other dual-role MACs. +* On T2/T4 SoCs, physically FM1_DTSEC9 and FM1_10GEC1 use the same +* dual-role MAC, when FM1_10GEC1 is enabled and FM1_DTSEC9 +* is disabled, ensure that the dual-role MAC is not disabled, +* ditto for other dual-role MACs. */ if (((info->port == FM1_DTSEC9) && (PORT_IS_ENABLED(FM1_10GEC1))) || ((info->port == FM1_DTSEC10) && (PORT_IS_ENABLED(FM1_10GEC2))) || - ((info->port == FM1_DTSEC1) && (PORT_IS_ENABLED(FM1_10GEC1))) || ((info->port == FM1_DTSEC1) && (PORT_IS_ENABLED(FM1_10GEC3))) || ((info->port == FM1_DTSEC2) && (PORT_IS_ENABLED(FM1_10GEC4))) || - ((info->port == FM1_10GEC1) && (PORT_IS_ENABLED(FM1_DTSEC1))) || ((info->port == FM1_10GEC1) && (PORT_IS_ENABLED(FM1_DTSEC9))) || ((info->port == FM1_10GEC2) && (PORT_IS_ENABLED(FM1_DTSEC10))) || ((info->port == FM1_10GEC3) && (PORT_IS_ENABLED(FM1_DTSEC1))) ||
@@ -269,6 +269,17 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop) ((info->port ==FM2_10GEC1 ) && (PORT_IS_ENABLED (FM2_DTSEC9 ))) || ((info->port == FM2_10GEC2) && (PORT_IS_ENABLED(FM2_DTSEC10)))#endif +#else +/* FM1_DTSECx and FM1_10GECx use the same dual-role MAC */ +if (((info->port ==FM1_DTSEC1 ) && (PORT_IS_ENABLED (FM1_10GEC1 ))) || + ((info->port ==FM1_DTSEC2 ) && (PORT_IS_ENABLED (FM1_10GEC2 ))) || + ((info->port ==FM1_DTSEC3 ) && (PORT_IS_ENABLED (FM1_10GEC3 ))) || + ((info->port ==FM1_DTSEC4 ) && (PORT_IS_ENABLED (FM1_10GEC4 ))) || + ((info->port ==FM1_10GEC1 ) && (PORT_IS_ENABLED (FM1_DTSEC1 ))) || + ((info->port ==FM1_10GEC2 ) && (PORT_IS_ENABLED (FM1_DTSEC2 ))) || + ((info->port ==FM1_10GEC3 ) && (PORT_IS_ENABLED (FM1_DTSEC3 ))) || + ((info->port ==FM1_10GEC4 ) && (PORT_IS_ENABLED (FM1_DTSEC4 ))) +#endif )return ;#endif
Signature · 1 line
1.8.0
PATCH 1/1 net/fm: update ft_fixup_port to differentiate dual-role mac
Quoted 7 lines · Shengzhou Liu
we need to differentiate dual-role MACs into two types: MACs with 10GEC enumeration consistent with DTSEC
enumeration(defined by CONFIG_FSL_FM_10GEC_REGULAR_NOTATION)and other MACs withoutCONFIG_FSL_FM_10GEC_REGULAR_NOTATIONdefined.Signed-off-by Shengzhou Liu <[email protected]>---
Applied to u-boot-mpc85xx master, awaiting upstream.
York