summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/dpa/Kconfig
blob: ba689397e4f7edaf89276c19fb1740ab30bdedc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
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