linux/arc*: disable MAC frame filter in DW GMAC
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>
Wed, 24 Aug 2016 12:44:04 +0000 (15:44 +0300)
committerFelix Fietkau <nbd@nbd.name>
Wed, 24 Aug 2016 13:16:01 +0000 (15:16 +0200)
commit66f3edfd8baaf92133df251656118e70edcd59b9
treed4ed8eedbf594a450aab484c67f7b448e2d5e0b9
parent2b0a1292f84ce17363eea0da3051cb9268cd98a6
linux/arc*: disable MAC frame filter in DW GMAC

DW GMAC on ARC SDP boards doesn't enter promiscuous mode if
Ethernet PHY haven't got established link. Good examples are
auto-negotiation in progress or disconnected cable.

We do see Linux kernel sets GMAC's MAC filter register
properly but GMAC's hardware doesn't accept new settings.

We believe it is a hardware issue, most probably problem of
integration of DW GMAC and PHY on the board.

As a work-around we completely disable frame filtering
in GMAC hardware (once and for good) which forces GMAC to enter
promiscuous mode with the first write to MAC filter register.
That gives us working bridge that consists of eth0 and wlan0
(USB Wi-Fi dongle). I.e. we finally have working "Dumb AP" setup made
of ARC AXS10x boards.

Given that hack is quite dirty (in loaded wired networks this will
effectively load CPU with junk packets even if user doesn't need promisc
mode) and there's no indication any other boards with DW GMAC suffer
from the same issue we're patching only kernel for ARC boards.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: John Crispin <john@phrozen.org>,
Cc: Felix Fietkau <nbd@nbd.name>
target/linux/arc770/patches-4.4/700-stmmac-Disable-frame-filtering-completely.patch [new file with mode: 0644]
target/linux/archs38/patches-4.4/700-stmmac-Disable-frame-filtering-completely.patch [new file with mode: 0644]