forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Based on BenH's earlier work, this is a new version of the EMAC driver for the built-in ethernet found on PowerPC 4xx embedded CPUs. The same ASIC is also found in the Axon bridge chip. This new version is designed to work in the arch/powerpc tree, using the device tree to probe the device, rather than the old and ugly arch/ppc OCP layer. This driver is designed to sit alongside the old driver (that lies in drivers/net/ibm_emac and this one in drivers/net/ibm_newemac). The old driver is left in place to support arch/ppc until arch/ppc itself reaches its final demise (not too long now, with luck). This driver still has a number of things that could do with cleaning up, but I think they can be fixed up after merging. Specifically: - Should be adjusted to properly use the dma mapping API. Axon needs this. - Probe logic needs reworking, in conjuction with the general probing code for of_platform devices. The dependencies here between EMAC, MAL, ZMII etc. make this complicated. At present, it usually works, because we initialize and register the sub-drivers before the EMAC driver itself, and (being in driver code) runs after the devices themselves have been instantiated from the device tree. Signed-off-by: David Gibson <[email protected]> Signed-off-by: Jeff Garzik <[email protected]>
- Loading branch information
Showing
23 changed files
with
6,668 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
config IBM_EMAC | ||
tristate "PowerPC 4xx on-chip Ethernet support" | ||
depends on 4xx && !PPC_MERGE | ||
help | ||
This driver supports the PowerPC 4xx EMAC family of on-chip | ||
Ethernet controllers. | ||
|
||
config IBM_EMAC_RXB | ||
int "Number of receive buffers" | ||
depends on IBM_EMAC | ||
default "128" | ||
|
||
config IBM_EMAC_TXB | ||
int "Number of transmit buffers" | ||
depends on IBM_EMAC | ||
default "64" | ||
|
||
config IBM_EMAC_POLL_WEIGHT | ||
int "MAL NAPI polling weight" | ||
depends on IBM_EMAC | ||
default "32" | ||
|
||
config IBM_EMAC_RX_COPY_THRESHOLD | ||
int "RX skb copy threshold (bytes)" | ||
depends on IBM_EMAC | ||
default "256" | ||
|
||
config IBM_EMAC_RX_SKB_HEADROOM | ||
int "Additional RX skb headroom (bytes)" | ||
depends on IBM_EMAC | ||
default "0" | ||
help | ||
Additional receive skb headroom. Note, that driver | ||
will always reserve at least 2 bytes to make IP header | ||
aligned, so usually there is no need to add any additional | ||
headroom. | ||
|
||
If unsure, set to 0. | ||
|
||
config IBM_EMAC_PHY_RX_CLK_FIX | ||
bool "PHY Rx clock workaround" | ||
depends on IBM_EMAC && (405EP || 440GX || 440EP || 440GR) | ||
help | ||
Enable this if EMAC attached to a PHY which doesn't generate | ||
RX clock if there is no link, if this is the case, you will | ||
see "TX disable timeout" or "RX disable timeout" in the system | ||
log. | ||
|
||
If unsure, say N. | ||
|
||
config IBM_EMAC_DEBUG | ||
bool "Debugging" | ||
depends on IBM_EMAC | ||
default n | ||
|
||
config IBM_EMAC_ZMII | ||
bool | ||
depends on IBM_EMAC && (NP405H || NP405L || 44x) | ||
default y | ||
|
||
config IBM_EMAC_RGMII | ||
bool | ||
depends on IBM_EMAC && 440GX | ||
default y | ||
|
||
config IBM_EMAC_TAH | ||
bool | ||
depends on IBM_EMAC && 440GX | ||
default y | ||
|
Oops, something went wrong.