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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/12/2013 7:27 PM, Mark Jackson wrote:
> On 23/04/13 18:29, Mugunthan V N wrote:
>> 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 <systemprogrammierung.brunner@xxxxxxxxx>
>>> Tested-by: Mark Jackson <mpfj@xxxxxxxxxxxxx>
>>>
>>> ---
>>> --- 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
> Just to update this (old) thread ...
>
> I can still confirm that *without* the above patch, I am *unable* to use both network
> ports on our AM335x board.
>
> My .dts file contains:-
>
> mac: ethernet@4a100000 {
> 	dual_emac = <1>;
>
> 	cpsw_emac0: slave@4a100200 {
> 		dual_emac_res_vlan = <1>;
> 	};
>
> 	cpsw_emac1: slave@4a100300 {
> 		dual_emac_res_vlan = <2>;
> 	};
> };
>
> &cpsw_emac0 {
> 	phy_id = <&davinci_mdio>, <0>;
> };
>
> &cpsw_emac1 {
> 	phy_id = <&davinci_mdio>, <1>;
> };
>
> My /etc/network/interfaces file is:-
>
> auto lo eth0 eth1
> iface lo inet loopback
> iface eth0 inet static
> address 10.0.101.3
> netmask 255.255.0.0
> gateway 10.0.0.1
> iface eth1 inet static
> address 10.1.101.3
> netmask 255.255.0.0
>
> So I'm not sure what's wrong, but it's *definitely* not correct.
>
>
I am sure that current code in mainline works for Dual EMAC. I can test it
again and share the images with you if are interested. But had tested with DHCP
on both the interfaces.

Regards
Mugunthan V N
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux