linux/drivers/net/ethernet
Rafał Miłecki dd4544f054 bgmac: driver for GBit MAC core on BCMA bus
BCMA is a Broadcom specific bus with devices AKA cores. All recent BCMA
based SoCs have gigabit ethernet provided by the GBit MAC core. This
patch adds driver for such a cores registering itself as a netdev. It
has been tested on a BCM4706 and BCM4718 chipsets.

In the kernel tree there is already b44 driver which has some common
things with bgmac, however there are many differences that has led to
the decision or writing a new driver:
1) GBit MAC cores appear on BCMA bus (not SSB as in case of b44)
2) There is 64bit DMA engine which differs from 32bit one
3) There is no CAM (Content Addressable Memory) in GBit MAC
4) We have 4 TX queues on GBit MAC devices (instead of 1)
5) Many registers have different addresses/values
6) RX header flags are also different

The driver in it's state is functional how, however there is of course
place for improvements:
1) Supporting more net_device_ops
2) SUpporting more ethtool_ops
3) Unaligned addressing in DMA
4) Writing separated PHY driver

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-01-09 23:37:03 -08:00
..
3com remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
8390 remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
adaptec drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
adi ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
aeroflex ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
alteon drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
amd remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
apple net/apple: remove __dev* attributes 2012-12-03 11:16:54 -08:00
atheros remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
broadcom bgmac: driver for GBit MAC core on BCMA bus 2013-01-09 23:37:03 -08:00
brocade bna: Driver Version Updated to 3.1.2.1 2012-12-11 18:25:53 -05:00
cadence net/cadence: remove __dev* attributes 2012-12-03 11:16:54 -08:00
calxeda net: remove unnecessary NET_ADDR_RANDOM "bitclean" 2013-01-03 22:37:36 -08:00
chelsio remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
cirrus ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
cisco net: remove unnecessary NET_ADDR_RANDOM "bitclean" 2013-01-03 22:37:36 -08:00
davicom ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
dec ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
dlink remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
emulex ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
faraday ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
freescale net: fec: Remove 'inline' declarations 2013-01-08 17:54:07 -08:00
fujitsu drivers/net: remove orphaned references to micro channel 2013-01-06 21:13:33 -08:00
hp drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
i825xx drivers/net: remove orphaned references to micro channel 2013-01-06 21:13:33 -08:00
ibm ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
icplus drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
intel remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
marvell remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
mellanox remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
micrel net: remove unnecessary NET_ADDR_RANDOM "bitclean" 2013-01-03 22:37:36 -08:00
microchip net: remove unnecessary NET_ADDR_RANDOM "bitclean" 2013-01-03 22:37:36 -08:00
myricom Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
natsemi remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
neterion remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
nuvoton ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
nvidia remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
nxp ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
octeon ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
oki-semi pch_gbe, ptp_pch: Fix the dependency direction between these drivers 2012-11-17 22:11:45 -05:00
packetengines ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
pasemi net/pasemi: remove __dev* attributes 2012-12-03 11:16:55 -08:00
qlogic remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
racal
rdc remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
realtek remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
renesas net: sh_eth: Fix a typo - replace regist with register. 2012-11-03 15:37:35 -04:00
seeq seeq: remove __dev* attributes 2012-12-03 11:16:46 -08:00
sfc drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
sgi ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
silan remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
sis remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
smsc ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
stmicro ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
sun remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
tehuti ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
ti ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
tile net: remove unnecessary NET_ADDR_RANDOM "bitclean" 2013-01-03 22:37:36 -08:00
toshiba remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
tundra drivers/net/ethernet/tundra/tsi108_eth.c: delete double assignment 2012-08-30 13:08:37 -04:00
via remove init of dev->perm_addr in drivers 2013-01-08 18:00:48 -08:00
wiznet net: remove unnecessary NET_ADDR_RANDOM "bitclean" 2013-01-03 22:37:36 -08:00
xilinx ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
xircom ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
xscale ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
dnet.c net/ethernet: remove __dev* attributes 2012-12-03 11:16:56 -08:00
dnet.h
ethoc.c ethoc: fix mac address set 2013-01-06 21:04:15 -08:00
fealnx.c drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
jme.c jme: remove __dev* attributes 2012-12-03 11:16:54 -08:00
jme.h
Kconfig net: mipsnet: Remove the MIPSsim Ethernet driver. 2012-09-24 16:47:23 -04:00
korina.c ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
lantiq_etop.c ethtool: fix drvinfo strings set in drivers 2013-01-06 21:06:31 -08:00
Makefile net: mipsnet: Remove the MIPSsim Ethernet driver. 2012-09-24 16:47:23 -04:00
netx-eth.c ARM: netx: move platform_data definitions 2012-09-14 11:17:36 +02:00
s6gmac.c net/ethernet: remove __dev* attributes 2012-12-03 11:16:56 -08:00