[PATCH 0/5] ARM: Berlin: Ethernet support

Antoine Tenart antoine.tenart at free-electrons.com
Fri Aug 29 06:50:58 PDT 2014

Hi all,

This series introduce the Marvell Berlin Ethernet driver, allowing to
handle the fast Ethernet port. This driver is based on the mv643xx_eth
driver and reuse some of its functions. While I wanted to make these
functions common to the two drivers at first, I finally do think this
is not a great idea:
- Registers are very different.
- The mv643xx_eth supports up to 1000Mbps interfaces and performance
  issues may occur, whereas the mvberlin_eth is only for fast Ethernet.
- The mvberlin_eth driver uses a hash table to filter incoming packets.
- A few other differences.

I tried to stay close to the mv643xx_eth implementation, so that the
discussion is still open, but I still ended up with lots of tiny
differences that can be hard to manage for both cases. In the end I do
think having two separate drivers is a good choice.

That being said, I tested the Ethernet communication with ICMP pings,
netcat, tried to use some network related softwares (such as ssh). Here
is an iperf output:

 Client connecting to, TCP port 5001
 TCP window size: 85.0 KByte (default)
 [  3] local port 44183 connected with port 5001
 [ ID] Interval       Transfer     Bandwidth
 [  3]  0.0-10.0 sec   113 MBytes  94.8 Mbits/sec

Tests were done on a BG2Q DMP, and this series currently does not add
other device tree nodes than the ones for this board.



Antoine Tenart (5):
  net: mvberlin_eth: add an Ethernet driver for Marvell Berlin
  Documentation: bindings: net: add the Marvell Berlin Ethernet
  Documentation: devicetree: net: mention Marvell Berlin
  ARM: dts: berlin: add ethernet and mdio nodes
  ARM: dts: berlin: enable the Ethernet port on the BG2Q DMP

 .../devicetree/bindings/net/marvell-berlin.txt     |   23 +
 .../devicetree/bindings/net/marvell-orion-mdio.txt |    6 +-
 arch/arm/boot/dts/berlin2q-marvell-dmp.dts         |   13 +
 arch/arm/boot/dts/berlin2q.dtsi                    |   19 +
 drivers/net/ethernet/marvell/Kconfig               |    9 +
 drivers/net/ethernet/marvell/Makefile              |    1 +
 drivers/net/ethernet/marvell/mvberlin_eth.c        | 2081 ++++++++++++++++++++
 7 files changed, 2149 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/marvell-berlin.txt
 create mode 100644 drivers/net/ethernet/marvell/mvberlin_eth.c


More information about the linux-arm-kernel mailing list