Subject: [PATCH] remove vlan tags in CPSW dual emac mode

From: [email-masked] (Mugunthan V N)
Date: Tue, 23 Apr 2013 22:59:34 +0530

On 4/23/2013 9:48 PM, Markus Brunner wrote:
> If operating in dual emac mode all packets sent by the CPSW contain vlan headers with the reserved VID 0,
> which gets stripped away by all somewhat recent Linux versions. Operating systems without that behaviour will fail to communicate.
> This patch fixes that behaviour by disabling the VLAN_AWARE mode as already described by the comment above.
>
> Signed-off-by: Markus Brunner <[email-masked]>
> Tested-by: Mark Jackson <[email-masked]>
>
> ---
> --- linux-3.9-rc8.orig/drivers/net/ethernet/ti/cpsw.c	2013-04-23 17:26:11.000000000 +0200
> +++ linux-3.9-rc8/drivers/net/ethernet/ti/cpsw.c	2013-04-23 17:36:25.000000000 +0200
> @@ -751,9 +751,9 @@ static void cpsw_init_host_port(struct c
>   	/* switch to vlan unaware mode */
>   	cpsw_ale_control_set(priv->ale, priv->host_port, ALE_VLAN_AWARE,
>   			     CPSW_ALE_VLAN_AWARE);
>   	control_reg = readl(&priv->regs->control);
> -	control_reg |= CPSW_VLAN_AWARE;
> +	control_reg &= ~CPSW_VLAN_AWARE;
>   	writel(control_reg, &priv->regs->control);
>   	fifo_mode = (priv->data.dual_emac) ? CPSW_FIFO_DUAL_MAC_MODE :
>   		     CPSW_FIFO_NORMAL_MODE;
>   	writel(fifo_mode, &priv->host_port_regs->tx_in_ctl);
Disabling VLAN aware mode will enable switching mode and the feature of
separating the two down stream port is lost with this patch
Please check TRM for more info in *14.3.2.10.2 Dual Mac Mode* chapter

Regards
Mugunthan V N