diff options
author | Eugene Surovegin <ebs@ebshome.net> | 2005-10-10 19:58:14 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-28 16:42:01 -0400 |
commit | 37448f7d39717db7c1098c1a88b9074694c69797 (patch) | |
tree | 18e019dd740c12a3af6e603aaefff985f0faea59 /drivers/net/Kconfig | |
parent | b71b95efa5abca33e1bfb85d55162c7f99f54c23 (diff) |
[PATCH] New PowerPC 4xx on-chip ethernet controller driver
This patch replaces current PowerPC 4xx EMAC driver with
new, re-written from the scratch version. This patch is quite big
(~234K) because there is virtualy 0% of common code between old and
new version.
New driver uses NAPI, it solves stability problems under heavy packet
load and low memory, corrects chip register access and fixes numerous
small bugs I don't even remember now.
This patch has been tested on all supported in 2.6 PPC 4xx boards.
It's been used in production for almost a year now on custom
4xx hardware. PPC32 specific parts are already upstream.
Patch was acked by the current EMAC driver maintainer (Matt Porter). I
will be maintaining this new version.
Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
--
Kconfig | 72
ibm_emac/Makefile | 13
ibm_emac/ibm_emac.h | 418 +++--
ibm_emac/ibm_emac_core.c | 3414 ++++++++++++++++++++++++----------------------
ibm_emac/ibm_emac_core.h | 313 ++--
ibm_emac/ibm_emac_debug.c | 377 ++---
ibm_emac/ibm_emac_debug.h | 63
ibm_emac/ibm_emac_mal.c | 674 +++++----
ibm_emac/ibm_emac_mal.h | 336 +++-
ibm_emac/ibm_emac_phy.c | 335 ++--
ibm_emac/ibm_emac_phy.h | 105 -
ibm_emac/ibm_emac_rgmii.c | 201 ++
ibm_emac/ibm_emac_rgmii.h | 68
ibm_emac/ibm_emac_tah.c | 111 +
ibm_emac/ibm_emac_tah.h | 96 -
ibm_emac/ibm_emac_zmii.c | 255 +++
ibm_emac/ibm_emac_zmii.h | 114 -
17 files changed, 4114 insertions(+), 2851 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/Kconfig')
-rw-r--r-- | drivers/net/Kconfig | 72 |
1 files changed, 54 insertions, 18 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 27732fdeeea4..54ab70e7eff4 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -1163,38 +1163,74 @@ config IBMVETH | |||
1163 | be called ibmveth. | 1163 | be called ibmveth. |
1164 | 1164 | ||
1165 | config IBM_EMAC | 1165 | config IBM_EMAC |
1166 | bool "IBM PPC4xx EMAC driver support" | 1166 | tristate "PowerPC 4xx on-chip Ethernet support" |
1167 | depends on 4xx | 1167 | depends on 4xx |
1168 | select CRC32 | 1168 | help |
1169 | ---help--- | 1169 | This driver supports the PowerPC 4xx EMAC family of on-chip |
1170 | This driver supports the IBM PPC4xx EMAC family of on-chip | 1170 | Ethernet controllers. |
1171 | Ethernet controllers. | ||
1172 | |||
1173 | config IBM_EMAC_ERRMSG | ||
1174 | bool "Verbose error messages" | ||
1175 | depends on IBM_EMAC && BROKEN | ||
1176 | 1171 | ||
1177 | config IBM_EMAC_RXB | 1172 | config IBM_EMAC_RXB |
1178 | int "Number of receive buffers" | 1173 | int "Number of receive buffers" |
1179 | depends on IBM_EMAC | 1174 | depends on IBM_EMAC |
1180 | default "128" if IBM_EMAC4 | 1175 | default "128" |
1181 | default "64" | ||
1182 | 1176 | ||
1183 | config IBM_EMAC_TXB | 1177 | config IBM_EMAC_TXB |
1184 | int "Number of transmit buffers" | 1178 | int "Number of transmit buffers" |
1185 | depends on IBM_EMAC | 1179 | depends on IBM_EMAC |
1186 | default "128" if IBM_EMAC4 | 1180 | default "64" |
1187 | default "8" | 1181 | |
1182 | config IBM_EMAC_POLL_WEIGHT | ||
1183 | int "MAL NAPI polling weight" | ||
1184 | depends on IBM_EMAC | ||
1185 | default "32" | ||
1188 | 1186 | ||
1189 | config IBM_EMAC_FGAP | 1187 | config IBM_EMAC_RX_COPY_THRESHOLD |
1190 | int "Frame gap" | 1188 | int "RX skb copy threshold (bytes)" |
1191 | depends on IBM_EMAC | 1189 | depends on IBM_EMAC |
1192 | default "8" | 1190 | default "256" |
1193 | 1191 | ||
1194 | config IBM_EMAC_SKBRES | 1192 | config IBM_EMAC_RX_SKB_HEADROOM |
1195 | int "Skb reserve amount" | 1193 | int "Additional RX skb headroom (bytes)" |
1196 | depends on IBM_EMAC | 1194 | depends on IBM_EMAC |
1197 | default "0" | 1195 | default "0" |
1196 | help | ||
1197 | Additional receive skb headroom. Note, that driver | ||
1198 | will always reserve at least 2 bytes to make IP header | ||
1199 | aligned, so usualy there is no need to add any additional | ||
1200 | headroom. | ||
1201 | |||
1202 | If unsure, set to 0. | ||
1203 | |||
1204 | config IBM_EMAC_PHY_RX_CLK_FIX | ||
1205 | bool "PHY Rx clock workaround" | ||
1206 | depends on IBM_EMAC && (405EP || 440GX || 440EP) | ||
1207 | help | ||
1208 | Enable this if EMAC attached to a PHY which doesn't generate | ||
1209 | RX clock if there is no link, if this is the case, you will | ||
1210 | see "TX disable timeout" or "RX disable timeout" in the system | ||
1211 | log. | ||
1212 | |||
1213 | If unsure, say N. | ||
1214 | |||
1215 | config IBM_EMAC_DEBUG | ||
1216 | bool "Debugging" | ||
1217 | depends on IBM_EMAC | ||
1218 | default n | ||
1219 | |||
1220 | config IBM_EMAC_ZMII | ||
1221 | bool | ||
1222 | depends on IBM_EMAC && (NP405H || NP405L || 44x) | ||
1223 | default y | ||
1224 | |||
1225 | config IBM_EMAC_RGMII | ||
1226 | bool | ||
1227 | depends on IBM_EMAC && 440GX | ||
1228 | default y | ||
1229 | |||
1230 | config IBM_EMAC_TAH | ||
1231 | bool | ||
1232 | depends on IBM_EMAC && 440GX | ||
1233 | default y | ||
1198 | 1234 | ||
1199 | config NET_PCI | 1235 | config NET_PCI |
1200 | bool "EISA, VLB, PCI and on board controllers" | 1236 | bool "EISA, VLB, PCI and on board controllers" |