286a837217
This patch enhances the STMMAC driver to support CHAINED mode of descriptor. STMMAC supports DMA descriptor to operate both in dual buffer(RING) and linked-list(CHAINED) mode. In RING mode (default) each descriptor points to two data buffer pointers whereas in CHAINED mode they point to only one data buffer pointer. In CHAINED mode each descriptor will have pointer to next descriptor in the list, hence creating the explicit chaining in the descriptor itself, whereas such explicit chaining is not possible in RING mode. First version of this work has been done by Rayagond. Then the patch has been reworked avoiding ifdef inside the C code. A new header file has been added to define all the functions needed for managing enhanced and normal descriptors. In fact, these have to be specialized according to the ring/chain usage. Two new C files have been also added to implement the helper routines needed to manage: jumbo frames, chain and ring setup (i.e. desc3). Signed-off-by: Rayagond Kokatanur <rayagond@vayavyalabs.com> Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
84 lines
2.1 KiB
Text
84 lines
2.1 KiB
Text
config STMMAC_ETH
|
|
tristate "STMicroelectronics 10/100/1000 Ethernet driver"
|
|
depends on HAS_IOMEM
|
|
select NET_CORE
|
|
select MII
|
|
select PHYLIB
|
|
select CRC32
|
|
---help---
|
|
This is the driver for the Ethernet IPs are built around a
|
|
Synopsys IP Core and only tested on the STMicroelectronics
|
|
platforms.
|
|
|
|
if STMMAC_ETH
|
|
|
|
config STMMAC_DEBUG_FS
|
|
bool "Enable monitoring via sysFS "
|
|
default n
|
|
depends on STMMAC_ETH && DEBUG_FS
|
|
-- help
|
|
The stmmac entry in /sys reports DMA TX/RX rings
|
|
or (if supported) the HW cap register.
|
|
|
|
config STMMAC_DA
|
|
bool "STMMAC DMA arbitration scheme"
|
|
default n
|
|
---help---
|
|
Selecting this option, rx has priority over Tx (only for Giga
|
|
Ethernet device).
|
|
By default, the DMA arbitration scheme is based on Round-robin
|
|
(rx:tx priority is 1:1).
|
|
|
|
config STMMAC_DUAL_MAC
|
|
bool "STMMAC: dual mac support (EXPERIMENTAL)"
|
|
default n
|
|
depends on EXPERIMENTAL && STMMAC_ETH && !STMMAC_TIMER
|
|
---help---
|
|
Some ST SoCs (for example the stx7141 and stx7200c2) have two
|
|
Ethernet Controllers. This option turns on the second Ethernet
|
|
device on this kind of platforms.
|
|
|
|
config STMMAC_TIMER
|
|
bool "STMMAC Timer optimisation"
|
|
default n
|
|
depends on RTC_HCTOSYS_DEVICE
|
|
---help---
|
|
Use an external timer for mitigating the number of network
|
|
interrupts. Currently, for SH architectures, it is possible
|
|
to use the TMU channel 2 and the SH-RTC device.
|
|
|
|
choice
|
|
prompt "Select Timer device"
|
|
depends on STMMAC_TIMER
|
|
|
|
config STMMAC_TMU_TIMER
|
|
bool "TMU channel 2"
|
|
depends on CPU_SH4
|
|
---help---
|
|
|
|
config STMMAC_RTC_TIMER
|
|
bool "Real time clock"
|
|
depends on RTC_CLASS
|
|
---help---
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Select the DMA TX/RX descriptor operating modes"
|
|
depends on STMMAC_ETH
|
|
---help---
|
|
This driver supports DMA descriptor to operate both in dual buffer
|
|
(RING) and linked-list(CHAINED) mode. In RING mode each descriptor
|
|
points to two data buffer pointers whereas in CHAINED mode they
|
|
points to only one data buffer pointer.
|
|
|
|
config STMMAC_RING
|
|
bool "Enable Descriptor Ring Mode"
|
|
|
|
config STMMAC_CHAINED
|
|
bool "Enable Descriptor Chained Mode"
|
|
|
|
endchoice
|
|
|
|
|
|
endif
|