[U-Boot] [PATCH] drivers: net: vsc9953: Fix bug when PVID is shown for disabled ports only

Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com --- drivers/net/vsc9953.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/vsc9953.c b/drivers/net/vsc9953.c index 44afe14..ef1435f 100644 --- a/drivers/net/vsc9953.c +++ b/drivers/net/vsc9953.c @@ -335,7 +335,7 @@ static int vsc9953_port_vlan_pvid_get(int port_nr, int *pvid) struct vsc9953_analyzer *l2ana_reg;
/* Administrative down */ - if (vsc9953_l2sw.port[port_nr].enabled) { + if (!vsc9953_l2sw.port[port_nr].enabled) { printf("Port %d is administrative down\n", port_nr); return -1; }

The commands for the VSC9953 l2 switch from T1040 became generic in patch https://patchwork.ozlabs.org/patch/499748/ and the define was renamed.
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com --- include/configs/T1040QDS.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/T1040QDS.h b/include/configs/T1040QDS.h index 2e7892f..15ae390 100644 --- a/include/configs/T1040QDS.h +++ b/include/configs/T1040QDS.h @@ -686,7 +686,7 @@ unsigned long get_board_ddr_clk(void);
/* Enable VSC9953 L2 Switch driver */ #define CONFIG_VSC9953 -#define CONFIG_VSC9953_CMD +#define CONFIG_CMD_ETHSW #define CONFIG_SYS_FM1_QSGMII11_PHY_ADDR 0x14 #define CONFIG_SYS_FM1_QSGMII21_PHY_ADDR 0x18

On Mon, Mar 14, 2016 at 6:46 AM, Codrin Ciubotariu codrin.ciubotariu@nxp.com wrote:
The commands for the VSC9953 l2 switch from T1040 became generic in patch https://patchwork.ozlabs.org/patch/499748/ and the define was renamed.
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

On 03/14/2016 04:47 AM, Codrin Ciubotariu wrote:
The commands for the VSC9953 l2 switch from T1040 became generic in patch https://patchwork.ozlabs.org/patch/499748/ and the define was renamed.
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com
include/configs/T1040QDS.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Applied to u-boot-mpc85xx master. Awaiting upstream.
Thanks.
York

Some SerDes protocols might not enable all l2switch ports. In this case, these ports should not be configured to perform Rx/Tx operations. This also fixes an issue when flooded frames were also switched to disabled ports and frames start to accumulate, consuming memory and eventually causing head-of-line blocking for other frames.
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com --- drivers/net/vsc9953.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/vsc9953.c b/drivers/net/vsc9953.c index ef1435f..2388438 100644 --- a/drivers/net/vsc9953.c +++ b/drivers/net/vsc9953.c @@ -2525,6 +2525,9 @@ void vsc9953_init(bd_t *bis) if (vsc9953_port_init(i)) printf("Failed to initialize l2switch port %d\n", i);
+ if (!vsc9953_l2sw.port[i].enabled) + continue; + /* Enable VSC9953 GMII Ports Port ID 0 - 7 */ if (VSC9953_INTERNAL_PORT_CHECK(i)) { out_le32(&l2ana_reg->pfc[i].pfc_cfg, @@ -2537,6 +2540,11 @@ void vsc9953_init(bd_t *bis) out_le32(&l2sys_reg->pause_cfg.mac_fc_cfg[i], VSC9953_MAC_FC_CFG); } + + l2dev_gmii_reg = (struct vsc9953_dev_gmii *) + (VSC9953_OFFSET + VSC9953_DEV_GMII_OFFSET + + T1040_SWITCH_GMII_DEV_OFFSET * i); + out_le32(&l2dev_gmii_reg->port_mode.clock_cfg, VSC9953_CLOCK_CFG); out_le32(&l2dev_gmii_reg->mac_cfg_status.mac_ena_cfg, @@ -2559,10 +2567,6 @@ void vsc9953_init(bd_t *bis) /* WAIT FOR 2 us*/ udelay(2);
- l2dev_gmii_reg = (struct vsc9953_dev_gmii *)( - (char *)l2dev_gmii_reg - + T1040_SWITCH_GMII_DEV_OFFSET); - /* Initialize Lynx PHY Wrappers */ phy_addr = 0; if (vsc9953_l2sw.port[i].enet_if ==

On Mon, Mar 14, 2016 at 6:46 AM, Codrin Ciubotariu codrin.ciubotariu@nxp.com wrote:
Some SerDes protocols might not enable all l2switch ports. In this case, these ports should not be configured to perform Rx/Tx operations. This also fixes an issue when flooded frames were also switched to disabled ports and frames start to accumulate, consuming memory and eventually causing head-of-line blocking for other frames.
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

On 03/14/2016 04:47 AM, Codrin Ciubotariu wrote:
Some SerDes protocols might not enable all l2switch ports. In this case, these ports should not be configured to perform Rx/Tx operations. This also fixes an issue when flooded frames were also switched to disabled ports and frames start to accumulate, consuming memory and eventually causing head-of-line blocking for other frames.
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com
drivers/net/vsc9953.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
Applied to u-boot-fsl-qoriq master. Awaiting upstream. Thanks.
York

On Mon, Mar 14, 2016 at 6:46 AM, Codrin Ciubotariu codrin.ciubotariu@nxp.com wrote:
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

On 03/14/2016 04:47 AM, Codrin Ciubotariu wrote:
Signed-off-by: Codrin Ciubotariu codrin.ciubotariu@nxp.com
drivers/net/vsc9953.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Applied to u-boot-fsl-qoriq master. Awaiting upstream. Thanks.
York
participants (3)
-
Codrin Ciubotariu
-
Joe Hershberger
-
York Sun