net: Add support for the OpenCores 10/100 Mbps Ethernet MAC.

This patch adds a platform device driver that supports the OpenCores 10/100
Mbps Ethernet MAC.

The driver expects three resources: one IORESOURCE_MEM resource defines the
memory region for the core's memory-mapped registers while a second
IORESOURCE_MEM resource defines the network packet buffer space. The third
resource, of type IORESOURCE_IRQ, associates an interrupt with the driver.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Thierry Reding 2009-03-27 00:12:24 -07:00 committed by David S. Miller
parent 01e6de64d9
commit a170285772
4 changed files with 1143 additions and 0 deletions

View File

@ -972,6 +972,14 @@ config ENC28J60_WRITEVERIFY
Enable the verify after the buffer write useful for debugging purpose.
If unsure, say N.
config ETHOC
tristate "OpenCores 10/100 Mbps Ethernet MAC support"
depends on NET_ETHERNET
select MII
select PHYLIB
help
Say Y here if you want to use the OpenCores 10/100 Mbps Ethernet MAC.
config SMC911X
tristate "SMSC LAN911[5678] support"
select CRC32

View File

@ -230,6 +230,7 @@ obj-$(CONFIG_PASEMI_MAC) += pasemi_mac_driver.o
pasemi_mac_driver-objs := pasemi_mac.o pasemi_mac_ethtool.o
obj-$(CONFIG_MLX4_CORE) += mlx4/
obj-$(CONFIG_ENC28J60) += enc28j60.o
obj-$(CONFIG_ETHOC) += ethoc.o
obj-$(CONFIG_XTENSA_XT2000_SONIC) += xtsonic.o

1112
drivers/net/ethoc.c Normal file

File diff suppressed because it is too large Load Diff

22
include/net/ethoc.h Normal file
View File

@ -0,0 +1,22 @@
/*
* linux/include/net/ethoc.h
*
* Copyright (C) 2008-2009 Avionic Design GmbH
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Written by Thierry Reding <thierry.reding@avionic-design.de>
*/
#ifndef LINUX_NET_ETHOC_H
#define LINUX_NET_ETHOC_H 1
struct ethoc_platform_data {
u8 hwaddr[IFHWADDRLEN];
s8 phy_id;
};
#endif /* !LINUX_NET_ETHOC_H */