menuconfig FSL_DPAA_ETH tristate "DPAA Ethernet" depends on FSL_SOC && FSL_BMAN && FSL_QMAN && FSL_FMAN select PHYLIB ---help--- Data Path Acceleration Architecture Ethernet driver, supporting the Freescale QorIQ chips. Depends on Freescale Buffer Manager and Queue Manager driver and Frame Manager Driver. if FSL_DPAA_ETH config FSL_DPAA_HOOKS bool "DPAA Ethernet driver hooks" config FSL_DPAA_MACSEC tristate "DPAA MACSEC" select FSL_DPAA_HOOKS ---help--- Enable MACSEC support in DPAA. config FSL_DPAA_OFFLINE_PORTS bool "Offline Ports support" depends on FSL_DPAA_ETH default y ---help--- The Offline Parsing / Host Command ports (short: OH ports, of Offline ports) provide most of the functionality of the regular, online ports, except they receive their frames from a core or an accelerator on the SoC, via QMan frame queues, rather than directly from the network. Offline ports are configured via PCD (Parse-Classify-Distribute) schemes, just like any online FMan port. They deliver the processed frames to frame queues, according to the applied PCD configurations. Choosing this feature will not impact the functionality and/or performance of the system, so it is safe to have it. config FSL_CAPWAP bool "DPAA CAPWAP support" depends on FSL_DPAA_ETH default n ---help--- CAPWAP Domain implements an offload mode for CAPWAP encapsulation and decapsulation. There are three drivers: CAPWAP domain driver implements Domain configuration and initialization; CAPWAP bridge driver establish a bridge between PCIe NIC and CAPWAP tunnels; CAPWAP tunnel driver provide a unified APIs to access CAPWAP tunnels. if FSL_CAPWAP config FSL_CAPWAP_BRIDGE_ZMC bool "CAPWAP Bridge use Zero-MM-Copy to get a better performance" depends on USE_HW_SKB default y ---help--- If Linux has integrate patch named:"net: use hardware buffer pool to allocate skb", NIC will use BMan buffer to allocated skb, so that there will be no memory copy during the whole process. you can select this option to get a better performance data for CAPWAP Bridge. endif # FSL_CAPWAP config FSL_DPAA_ADVANCED_DRIVERS bool "Advanced DPAA Ethernet drivers" depends on FSL_DPAA_ETH default y ---help--- Besides the standard DPAA Ethernet driver there are available other flavours of DPAA drivers that support advanced scenarios: - DPAA Shared MAC driver - DPAA MAC-less driver - DPAA Proxy initialization driver (for USDPAA) Select this to also build the advanced drivers. config FSL_DPAA_GENERIC_DRIVER bool "Generic DPAA Ethernet driver" depends on FSL_DPAA_ETH default y ---help--- This enables the DPAA Generic driver (oNIC). config FSL_DPAA_ETH_JUMBO_FRAME bool "Optimize for jumbo frames" default n ---help--- Optimize the DPAA Ethernet driver throughput for large frames termination traffic (e.g. 4K and above). NOTE: This option can only be used if FSL_FM_MAX_FRAME_SIZE is set to 9600 bytes. Using this option in combination with small frames increases significantly the driver's memory footprint and may even deplete the system memory. config FSL_DPAA_TS bool "Linux compliant timestamping" depends on FSL_DPAA_ETH default n ---help--- Enable Linux API compliant timestamping support. config FSL_DPAA_1588 bool "IEEE 1588-compliant timestamping" depends on FSL_DPAA_ETH select FSL_DPAA_TS default n ---help--- Enable IEEE1588 support code. config FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE bool "Use driver's Tx queue selection mechanism" default y depends on FSL_DPAA_ETH ---help--- The DPAA-Ethernet driver defines a ndo_select_queue() callback for optimal selection of the egress FQ. That will override the XPS support for this netdevice. If for whatever reason you want to be in control of the egress FQ-to-CPU selection and mapping, or simply don't want to use the driver's ndo_select_queue() callback, then unselect this and use the standard XPS support instead. config FSL_DPAA_ETH_MAX_BUF_COUNT int "Maximum nuber of buffers in private bpool" depends on FSL_DPAA_ETH range 64 2048 default "128" ---help--- The maximum number of buffers to be by default allocated in the DPAA-Ethernet private port's buffer pool. One needn't normally modify this, as it has probably been tuned for performance already. This cannot be lower than DPAA_ETH_REFILL_THRESHOLD. config FSL_DPAA_ETH_REFILL_THRESHOLD int "Private bpool refill threshold" depends on FSL_DPAA_ETH range 32 FSL_DPAA_ETH_MAX_BUF_COUNT default "80" ---help--- The DPAA-Ethernet driver will start replenishing buffer pools whose count falls below this threshold. This must be related to DPAA_ETH_MAX_BUF_COUNT. One needn't normally modify this value unless one has very specific performance reasons. config FSL_DPAA_CS_THRESHOLD_1G hex "Egress congestion threshold on 1G ports" depends on FSL_DPAA_ETH range 0x1000 0x10000000 default "0x06000000" ---help--- The size in bytes of the egress Congestion State notification threshold on 1G ports. The 1G dTSECs can quite easily be flooded by cores doing Tx in a tight loop (e.g. by sending UDP datagrams at "while(1) speed"), and the larger the frame size, the more acute the problem. So we have to find a balance between these factors: - avoiding the device staying congested for a prolonged time (risking the netdev watchdog to fire - see also the tx_timeout module param); - affecting performance of protocols such as TCP, which otherwise behave well under the congestion notification mechanism; - preventing the Tx cores from tightly-looping (as if the congestion threshold was too low to be effective); - running out of memory if the CS threshold is set too high. config FSL_DPAA_CS_THRESHOLD_10G hex "Egress congestion threshold on 10G ports" depends on FSL_DPAA_ETH range 0x1000 0x20000000 default "0x10000000" ---help --- The size in bytes of the egress Congestion State notification threshold on 10G ports. config FSL_DPAA_INGRESS_CS_THRESHOLD hex "Ingress congestion threshold on FMan ports" depends on FSL_DPAA_ETH default "0x10000000" ---help--- The size in bytes of the ingress tail-drop threshold on FMan ports. Traffic piling up above this value will be rejected by QMan and discarded by FMan. config FSL_DPAA_ETH_DEBUGFS bool "DPAA Ethernet debugfs interface" depends on DEBUG_FS && FSL_DPAA_ETH default y ---help--- This option compiles debugfs code for the DPAA Ethernet driver. config FSL_DPAA_MACSEC_DEBUGFS bool "DPAA MACSEC debugfs interface" default y depends on DEBUG_FS && FSL_DPAA_MACSEC ---help--- This option compiles debugfs code for the DPAA Ethernet MACSEC driver. config FSL_DPAA_ETH_DEBUG bool "DPAA Ethernet Debug Support" depends on FSL_DPAA_ETH default n ---help--- This option compiles debug code for the DPAA Ethernet driver. config FSL_DPAA_DBG_LOOP bool "DPAA Ethernet Debug loopback" depends on FSL_DPAA_ETH_DEBUGFS && FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE default n ---help--- This option allows to divert all received traffic on a certain interface A towards a selected interface B. This option is used to benchmark the HW + Ethernet driver in isolation from the Linux networking stack. The loops are controlled by debugfs entries, one for each interface. By default all loops are disabled (target value is -1). I.e. to change the loop setting for interface 4 and divert all received traffic to interface 5 write Tx interface number in the receive interface debugfs file: # cat /sys/kernel/debug/powerpc/fsl_dpa/eth4_loop 4->-1 # echo 5 > /sys/kernel/debug/powerpc/fsl_dpa/eth4_loop # cat /sys/kernel/debug/powerpc/fsl_dpa/eth4_loop 4->5 endif # FSL_DPAA_ETH