# # 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