nuttx/drivers/net/Kconfig

484 lines
11 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
comment "General Ethernet MAC Driver Options"
config NETDEV_MULTINIC
bool "Multiple network interface support"
default n
---help---
Select this option if you board and/or MCU are capable of supporting
multiple Ethernet MAC drivers.
config NETDEV_LATEINIT
bool "Late driver initialization"
default n
---help---
Normally, networking initialization occur in the later phase of the
boot process in the function up_initialize() when it calls the
driver initialization function, up_netintialize(). This
initialization occurs after a sufficient about of the OS has been
initialized so that driver registration can be performed, but
before the completion of OS initialization and before the first
application is started.
In a few situations, however, you may want to suppress this early
network driver initialization. As examples:
- If you are using SLIP or PPPD, then there will be no network
driver to be initialized,
- Certain multi-network configurations where a simple call to
up_netinitialize() may be insufficient, and
- Situations where there are other board-level hardware
dependencies so that the hardware is not in an appropriate
state for up_netinitialize() to be called.
Examples of this latter situation includes such things as network
drivers that required some setup via an I2C I/O expander, or network
drivers that depend on USB, SPI, I2C, PCI, serial, or other
interfaces that may not be ready when up_netiniailize() is normally
called.
config NET_DUMPPACKET
bool "Enable packet dumping"
depends on DEBUG
default n
---help---
Some Ethernet MAC drivers supporting dumping of received and
transmitted packets as a debug option. This setting enables that
debug option. Also needs DEBUG.
comment "External Ethernet MAC Device Support"
menuconfig NET_DM90x0
bool "Davicom dm9000/dm9010 support"
default n
---help---
References: Davicom data sheets (DM9000-DS-F03-041906.pdf,
DM9010-DS-F01-103006.pdf) and looking at lots of other DM90x0
drivers.
if NET_DM90x0
config DM9X_BASE
hex "DM90x0 base address"
default 0x0
config DM9X_IRQ
int "DM90x0 IRQ number"
default 0
choice
prompt "DM90x0 bus width"
default DM9X_BUSWIDTH16
config DM9X_BUSWIDTH8
bool "8-bits"
config DM9X_BUSWIDTH16
bool "16-bits"
config DM9X_BUSWIDTH32
bool "32-bits"
endchoice # DM90x0 bus width
config DM9X_CHECKSUM
bool "Checksum enable"
default n
config DM9X_ETRANS
bool "TX poll"
default n
choice
prompt "DM90x0 mode"
default DM9X_MODE_AUTO
config DM9X_MODE_AUTO
bool "Autonegotion"
config DM9X_MODE_10MHD
bool "10BaseT half duplex"
config DM9X_MODE_10MFD
bool "10BaseT full duplex"
config DM9X_MODE_100MHD
bool "100BaseT half duplex"
config DM9X_MODE_100MFD
bool "100BaseT full duplex"
endchoice # DM90x0 mode
config DM9X_NINTERFACES
int "Nubmer of DM90x0 interfaces"
default 1
depends on EXPERIMENTAL
config DM9X_STATS
bool "DM90x0 statistics"
default n
endif # NET_DM90x0
config NET_CS89x0
bool "CS89x0 support"
default n
depends on EXPERIMENTAL
---help---
Under construction -- do not use
menuconfig ENC28J60
bool "Microchip ENC28J60 support"
default n
select SPI
---help---
References:
ENC28J60 Data Sheet, Stand-Alone Ethernet Controller with SPI Interface,
DS39662C, 2008 Microchip Technology Inc.
if ENC28J60
config ENC28J60_NINTERFACES
int "Number of physical ENC28J60"
default 1
range 1,1
---help---
Specifies the number of physical ENC28J60
devices that will be supported.
config ENC28J60_SPIMODE
int "SPI mode"
default 0
---help---
Controls the SPI mode. The ENC28J60 spec says that it supports SPI
mode 0,0 only: "The implementation used on this device supports SPI
mode 0,0 only. In addition, the SPI port requires that SCK be at Idle
in a low state; selectable clock polarity is not supported."
However, sometimes you need to tinker with these things.
config ENC28J60_FREQUENCY
int "SPI frequency"
default 20000000
---help---
Define to use a different bus frequency
config ENC28J60_STATS
bool "Network statistics support"
default n
---help---
Collect network statistics
config ENC28J60_HALFDUPPLEX
bool "Enable half dupplex"
default n
---help---
Default is full duplex
config ENC28J60_DUMPPACKET
bool "Dump Packets"
default n
---help---
If selected, the ENC28J60 driver will dump the contents of each
packet to the console.
config ENC28J60_REGDEBUG
bool "Register-Level Debug"
default n
depends on DEBUG && DEBUG_NET
---help---
Enable very low-level register access debug. Depends on DEBUG and DEBUG_NET.
endif # ENC28J60
menuconfig ENCX24J600
bool "Microchip ENCX24J600 support"
default n
select SPI
select NET_RXAVAIL
---help---
References:
ENC424J600/624J600 Data Sheet Stand-Alone 10/100 Ethernet Controller
with SPI or Parallel Interface DS39935B, 2009 Microchip Technology Inc.
if ENCX24J600
config ENC28J60_NINTERFACES
int "Number of physical ENCX24J600"
default 1
range 1,1
---help---
Specifies the number of physical ENCX24J600
devices that will be supported.
config ENCX24J600_SPIMODE
int "SPI mode"
default 0
---help---
Controls the SPI mode. The ENCX24J600 spec says that it supports SPI
mode 0,0 only: "The implementation used on this device supports SPI
mode 0,0 only. In addition, the SPI port requires that SCK be at Idle
in a low state; selectable clock polarity is not supported."
However, sometimes you need to tinker with these things.
config ENCX24J600_FREQUENCY
int "SPI frequency"
default 14000000
---help---
Define to use a different bus frequency
config ENCX24J600_NRXDESCR
int "Descriptor Count"
default 8
---help---
Defines how many descriptors are preallocated for the
transmission and reception queues.
The ENC has a relative large packet buffer of 24kB which can
be used to buffer multiple packets silmutaneously
config ENCX24J600_STATS
bool "Network statistics support"
default n
---help---
Collect network statistics
config ENCX24J600_DUMPPACKET
bool "Dump Packets"
default n
---help---
If selected, the ENCX24J600 driver will dump the contents of each
packet to the console.
config ENCX24J600_REGDEBUG
bool "Register-Level Debug"
default n
depends on DEBUG && DEBUG_NET
---help---
Enable very low-level register access debug. Depends on DEBUG and DEBUG_NET.
endif # ENCX24J600
menuconfig NET_E1000
bool "E1000 support"
default n
if NET_E1000
config E1000_N_TX_DESC
int "Number of TX descriptors"
default 128
config E1000_N_RX_DESC
int "Number of RX descriptors"
default 128
config E1000_BUFF_SIZE
int "Buffer size"
default 2048
endif # NET_E1000
menuconfig NET_SLIP
bool "SLIP (serial line) support"
default n
---help---
Reference: RFC 1055
if NET_SLIP
config NET_SLIP_STACKSIZE
int "Daemon stack size"
default 2048
---help---
Provides the stack size for SLIP RX and TX.
config NET_SLIP_DEFPRIO
int "Daemon priority"
default 128
---help---
Provides the priority for SLIP RX and TX threads.
config NET_SLIP_MTU
int "Packet size (MTU)"
default 296
---help---
Provides the size of the SLIP packet buffers.
The Linux slip module hard-codes its MTU size to 296 (40 bytes for
the IP+TPC headers plus 256 bytes of data). So you might as well
set CONFIG_NET_SLIP_MTU to 296 as well.
There may be an issue with this setting, however. I see that Linux
uses a MTU of 296 and window of 256, but actually only sends 168
bytes of data: 40 + 128. I believe that is to allow for the 2x
worst cast packet expansion. Ideally we would like to advertise the
256 MSS, but restrict transfers to 128 bytes (possibly by modifying
the tcp_mss() macro).
config NET_SLIP_NINTERFACES
int "Number of SLIP interfaces"
default 1
---help---
Determines the number of physical interfaces that will be supported.
endif
menuconfig NET_FTMAC100
bool "Faraday 10/100 Ethernet"
default n
---help---
Faraday 10/100 Ethernet support.
if NET_FTMAC100
config FTMAC100_BASE
hex "FTMAC100 base address"
default 0x0
config FTMAC100_IRQ
int "FTMAC100 IRQ number"
default 0
config FTMAC100_RX_DESC
int "Number of RX descriptors"
default 64
config FTMAC100_TX_DESC
int "Number of TX descriptors"
default 32
config FTMAC100_MAC0_ENV_ADDR
hex "MAC0 address location"
default 0
endif # NET_FTMAC100
menuconfig NET_VNET
bool "VNET support"
default n
if NET_VNET
config VNET_NINTERFACES
int "Number of VNET interfaces"
default 1
endif # NET_VNET
if ARCH_HAVE_PHY
comment "External Ethernet PHY Device Support"
config ARCH_PHY_INTERRUPT
bool
default n
choice
prompt "Board PHY Selection (ETH0)"
default ETH0_PHY_NONE
---help---
Identify the PHY on your board. This setting is not used by all Ethernet
drivers nor do all Ethernet drivers support all PHYs.
config ETH0_PHY_NONE
bool "No PHY support"
config ETH0_PHY_AM79C874
bool "AMD Am79C874 PHY"
config ETH0_PHY_KS8721
bool "Micrel KS8721 PHY"
config ETH0_PHY_KSZ8041
bool "Micrel KSZ8041 PHY"
config ETH0_PHY_KSZ8051
bool "Micrel KSZ8051 PHY"
config ETH0_PHY_KSZ8061
bool "Micrel KSZ8061 PHY"
config ETH0_PHY_KSZ8081
bool "Micrel KSZ8081 PHY"
config ETH0_PHY_KSZ90x1
bool "Micrel KSZ9021/31 PHY"
config ETH0_PHY_DP83848C
bool "National Semiconduction DP83848C PHY"
config ETH0_PHY_LAN8720
bool "SMSC LAN8720 PHY"
config ETH0_PHY_LAN8740
bool "SMSC LAN8740 PHY"
config ETH0_PHY_LAN8740A
bool "SMSC LAN8740A PHY"
config ETH0_PHY_LAN8742A
bool "SMSC LAN8742A PHY"
config ETH0_PHY_DM9161
bool "Davicom DM9161 PHY"
endchoice
choice
prompt "Board PHY Selection (ETH1)"
default ETH1_PHY_NONE
depends on NETDEV_MULTINIC
---help---
Identify the PHY on your board. This setting is not used by all Ethernet
drivers nor do all Ethernet drivers support all PHYs.
config ETH1_PHY_NONE
bool "No PHY support"
config ETH1_PHY_AM79C874
bool "AMD Am79C874 PHY"
config ETH1_PHY_KS8721
bool "Micrel KS8721 PHY"
config ETH1_PHY_KSZ8041
bool "Micrel KSZ8041 PHY"
config ETH1_PHY_KSZ8051
bool "Micrel KSZ8051 PHY"
config ETH1_PHY_KSZ8081
bool "Micrel KSZ8081 PHY"
config ETH1_PHY_KSZ90x1
bool "Micrel KSZ9021/31 PHY"
config ETH1_PHY_DP83848C
bool "National Semiconduction DP83848C PHY"
config ETH1_PHY_LAN8720
bool "SMSC LAN8720 PHY"
config ETH1_PHY_DM9161
bool "Davicom DM9161 PHY"
endchoice
config NETDEV_PHY_DEBUG
bool "PHY debug"
default n
depends on DEBUG
---help---
Normally debug output is controlled by DEBUG_NET. However, that
may generate a LOT of debug output, especially if DEBUG_VERBOSE is
also selected. This option is intended to force VERVOSE debug
output from certain PHY-related even if DEBUG_NET or DEBUG_VERBOSE
are not selected. This allows for focused, unit-level debug of
the NSH network initialization logic.
endif # ARCH_HAVE_PHY