1252661Snp# Firmware configuration file.
2252661Snp#
3252661Snp# Global limits (some are hardware limits, others are due to the firmware).
4252661Snp# nvi = 128		virtual interfaces
5252661Snp# niqflint = 1023	ingress queues with freelists and/or interrupts
6252661Snp# nethctrl = 64K	Ethernet or ctrl egress queues
7252661Snp# neq = 64K		egress queues of all kinds, including freelists
8273615Snp# nexactf = 512		MPS TCAM entries, can oversubscribe.
9252661Snp#
10252661Snp
11252661Snp[global]
12252661Snp	rss_glb_config_mode = basicvirtual
13296950Snp	rss_glb_config_options = tnlmapen,hashtoeplitz,tnlalllkp
14252661Snp
15253407Snp	# PL_TIMEOUT register
16296950Snp	pl_timeout_value = 10000	# the timeout value in units of us
17253407Snp
18296950Snp	# SGE_THROTTLE_CONTROL
19296950Snp	bar2throttlecount = 500		# bar2throttlecount in us
20252661Snp
21296950Snp	sge_timer_value = 1, 5, 10, 50, 100, 200	# SGE_TIMER_VALUE* in usecs
22296950Snp
23296950Snp	reg[0x1124] = 0x00000400/0x00000400 # SGE_CONTROL2, enable VFIFO; if
24296950Snp					# SGE_VFIFO_SIZE is not set, then
25296950Snp					# firmware will set it up in function
26296950Snp					# of number of egress queues used
27296950Snp
28296950Snp	reg[0x1130] = 0x00d5ffeb	# SGE_DBP_FETCH_THRESHOLD, fetch
29296950Snp					# threshold set to queue depth
30296950Snp					# minus 128-entries for FL and HP
31296950Snp					# queues, and 0xfff for LP which
32296950Snp					# prompts the firmware to set it up
33296950Snp					# in function of egress queues
34296950Snp					# used
35296950Snp
36296950Snp	reg[0x113c] = 0x0002ffc0	# SGE_VFIFO_SIZE, set to 0x2ffc0 which
37296950Snp					# prompts the firmware to set it up in
38296950Snp					# function of number of egress queues
39296950Snp					# used 
40296950Snp
41256459Snp	# enable TP_OUT_CONFIG.IPIDSPLITMODE
42256459Snp	reg[0x7d04] = 0x00010000/0x00010000
43256459Snp
44296249Snp	# disable TP_PARA_REG3.RxFragEn
45296249Snp	reg[0x7d6c] = 0x00000000/0x00007000
46296249Snp
47296249Snp	# enable TP_PARA_REG6.EnableCSnd
48296249Snp	reg[0x7d78] = 0x00000400/0x00000000
49296249Snp
50296950Snp	reg[0x7dc0] = 0x0e2f8849	# TP_SHIFT_CNT
51252661Snp
52252661Snp	filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe
53252661Snp	filterMask = protocol, fcoe
54252661Snp
55296951Snp	tp_pmrx = 36, 512
56296950Snp	tp_pmrx_pagesize = 64K
57296950Snp
58296950Snp	# TP number of RX channels (0 = auto)
59252661Snp	tp_nrxch = 0
60252661Snp
61296951Snp	tp_pmtx = 46, 512
62252661Snp	tp_pmtx_pagesize = 64K
63252661Snp
64296950Snp	# TP number of TX channels (0 = auto)
65296950Snp	tp_ntxch = 0
66290633Snp
67256459Snp	# TP OFLD MTUs
68256459Snp	tp_mtus = 88, 256, 512, 576, 808, 1024, 1280, 1488, 1500, 2002, 2048, 4096, 4352, 8192, 9000, 9600
69256459Snp
70296950Snp	# TP_GLOBAL_CONFIG
71296950Snp	reg[0x7d08] = 0x00000800/0x00000800 # set IssFromCplEnable
72296950Snp
73296950Snp	# TP_PC_CONFIG
74296950Snp	reg[0x7d48] = 0x00000000/0x00000400 # clear EnableFLMError
75296950Snp
76296950Snp	# TP_PARA_REG0
77296950Snp	reg[0x7d60] = 0x06000000/0x07000000 # set InitCWND to 6
78296950Snp
79296950Snp	# cluster, lan, or wan.
80296950Snp	tp_tcptuning = lan
81296950Snp
82256459Snp	# MC configuration
83256459Snp	mc_mode_brc[0] = 1		# mc0 - 1: enable BRC, 0: enable RBC
84256459Snp	mc_mode_brc[1] = 1		# mc1 - 1: enable BRC, 0: enable RBC
85256459Snp
86296249Snp	# ULP_TX_CONFIG
87296249Snp	reg[0x8dc0] = 0x00000004/0x00000004 # Enable more error msg for ...
88296249Snp					    # TPT error.
89296249Snp
90252661Snp# PFs 0-3.  These get 8 MSI/8 MSI-X vectors each.  VFs are supported by
91296952Snp# these 4 PFs only.
92252661Snp[function "0"]
93296952Snp	nvf = 4
94296952Snp	wx_caps = all
95296952Snp	r_caps = all
96296952Snp	nvi = 2
97296952Snp	rssnvi = 2
98296952Snp	niqflint = 4
99296952Snp	nethctrl = 4
100296952Snp	neq = 8
101296952Snp	nexactf = 4
102296952Snp	cmask = all
103296952Snp	pmask = 0x1
104252661Snp
105252661Snp[function "1"]
106296952Snp	nvf = 4
107296952Snp	wx_caps = all
108296952Snp	r_caps = all
109296952Snp	nvi = 2
110296952Snp	rssnvi = 2
111296952Snp	niqflint = 4
112296952Snp	nethctrl = 4
113296952Snp	neq = 8
114296952Snp	nexactf = 4
115296952Snp	cmask = all
116296952Snp	pmask = 0x2
117252661Snp
118252661Snp[function "2"]
119296952Snp	nvf = 4
120296952Snp	wx_caps = all
121296952Snp	r_caps = all
122296952Snp	nvi = 2
123296952Snp	rssnvi = 2
124296952Snp	niqflint = 4
125296952Snp	nethctrl = 4
126296952Snp	neq = 8
127296952Snp	nexactf = 4
128296952Snp	cmask = all
129296952Snp	pmask = 0x4
130252661Snp
131252661Snp[function "3"]
132296952Snp	nvf = 4
133296952Snp	wx_caps = all
134296952Snp	r_caps = all
135296952Snp	nvi = 2
136296952Snp	rssnvi = 2
137296952Snp	niqflint = 4
138296952Snp	nethctrl = 4
139296952Snp	neq = 8
140296952Snp	nexactf = 4
141296952Snp	cmask = all
142296952Snp	pmask = 0x8
143252661Snp
144252661Snp# PF4 is the resource-rich PF that the bus/nexus driver attaches to.
145252661Snp# It gets 32 MSI/128 MSI-X vectors.
146252661Snp[function "4"]
147252661Snp	wx_caps = all
148252661Snp	r_caps = all
149252661Snp	nvi = 32
150273615Snp	rssnvi = 8
151273615Snp	niqflint = 512
152273615Snp	nethctrl = 1024
153273615Snp	neq = 2048
154297797Snp	nqpcq = 8192
155296952Snp	nexactf = 456
156252661Snp	cmask = all
157252661Snp	pmask = all
158252661Snp
159252661Snp	# driver will mask off features it won't use
160296951Snp	protocol = ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif
161252661Snp
162252661Snp	tp_l2t = 4096
163252661Snp	tp_ddp = 2
164296951Snp	tp_ddp_iscsi = 2
165296951Snp	tp_stag = 2
166296951Snp	tp_pbl = 5
167296951Snp	tp_rq = 7
168252661Snp
169252661Snp	# TCAM has 8K cells; each region must start at a multiple of 128 cell.
170252661Snp	# Each entry in these categories takes 4 cells each.  nhash will use the
171252661Snp	# TCAM iff there is room left (that is, the rest don't add up to 2048).
172252661Snp	nroute = 32
173252661Snp	nclip = 32
174252661Snp	nfilter = 1008
175252661Snp	nserver = 512
176252661Snp	nhash = 16384
177252661Snp
178252661Snp# PF5 is the SCSI Controller PF. It gets 32 MSI/40 MSI-X vectors.
179252661Snp# Not used right now.
180252661Snp[function "5"]
181252661Snp	nvi = 1
182273615Snp	rssnvi = 0
183252661Snp
184252661Snp# PF6 is the FCoE Controller PF. It gets 32 MSI/40 MSI-X vectors.
185252661Snp# Not used right now.
186252661Snp[function "6"]
187252661Snp	nvi = 1
188273615Snp	rssnvi = 0
189252661Snp
190252661Snp# The following function, 1023, is not an actual PCIE function but is used to
191252661Snp# configure and reserve firmware internal resources that come from the global
192252661Snp# resource pool.
193252661Snp[function "1023"]
194252661Snp	wx_caps = all
195252661Snp	r_caps = all
196252661Snp	nvi = 4
197273615Snp	rssnvi = 0
198252661Snp	cmask = all
199252661Snp	pmask = all
200252661Snp	nexactf = 8
201252661Snp	nfilter = 16
202252661Snp
203296952Snp# For Virtual functions, we only allow NIC functionality and we only allow
204296952Snp# access to one port (1 << PF).  Note that because of limitations in the
205296952Snp# Scatter Gather Engine (SGE) hardware which checks writes to VF KDOORBELL
206296952Snp# and GTS registers, the number of Ingress and Egress Queues must be a power
207296952Snp# of 2.
208296952Snp#
209296952Snp[function "0/*"]
210296952Snp	wx_caps = 0x82
211296952Snp	r_caps = 0x86
212296952Snp	nvi = 1
213296952Snp	rssnvi = 1
214296952Snp	niqflint = 2
215296952Snp	nethctrl = 2
216296952Snp	neq = 4
217296952Snp	nexactf = 2
218296952Snp	cmask = all
219296952Snp	pmask = 0x1
220296952Snp
221296952Snp[function "1/*"]
222296952Snp	wx_caps = 0x82
223296952Snp	r_caps = 0x86
224296952Snp	nvi = 1
225296952Snp	rssnvi = 1
226296952Snp	niqflint = 2
227296952Snp	nethctrl = 2
228296952Snp	neq = 4
229296952Snp	nexactf = 2
230296952Snp	cmask = all
231296952Snp	pmask = 0x2
232296952Snp
233296952Snp[function "2/*"]
234296952Snp	wx_caps = 0x82
235296952Snp	r_caps = 0x86
236296952Snp	nvi = 1
237296952Snp	rssnvi = 1
238296952Snp	niqflint = 2
239296952Snp	nethctrl = 2
240296952Snp	neq = 4
241296952Snp	nexactf = 2
242296952Snp	cmask = all
243296952Snp	pmask = 0x4
244296952Snp
245296952Snp[function "3/*"]
246296952Snp	wx_caps = 0x82
247296952Snp	r_caps = 0x86
248296952Snp	nvi = 1
249296952Snp	rssnvi = 1
250296952Snp	niqflint = 2
251296952Snp	nethctrl = 2
252296952Snp	neq = 4
253296952Snp	nexactf = 2
254296952Snp	cmask = all
255296952Snp	pmask = 0x8
256296952Snp
257252661Snp# MPS has 192K buffer space for ingress packets from the wire as well as
258252661Snp# loopback path of the L2 switch.
259252661Snp[port "0"]
260252661Snp	dcb = none
261252661Snp	bg_mem = 25
262252661Snp	lpbk_mem = 25
263252661Snp	hwm = 30
264252661Snp	lwm = 15
265252661Snp	dwm = 30
266252661Snp
267252661Snp[port "1"]
268252661Snp	dcb = none
269252661Snp	bg_mem = 25
270252661Snp	lpbk_mem = 25
271252661Snp	hwm = 30
272252661Snp	lwm = 15
273252661Snp	dwm = 30
274252661Snp
275252661Snp[port "2"]
276252661Snp	dcb = none
277252661Snp	bg_mem = 25
278252661Snp	lpbk_mem = 25
279252661Snp	hwm = 30
280252661Snp	lwm = 15
281252661Snp	dwm = 30
282252661Snp
283252661Snp[port "3"]
284252661Snp	dcb = none
285252661Snp	bg_mem = 25
286252661Snp	lpbk_mem = 25
287252661Snp	hwm = 30
288252661Snp	lwm = 15
289252661Snp	dwm = 30
290252661Snp
291252661Snp[fini]
292252661Snp	version = 0x1
293297797Snp	checksum = 0x89c83d98
294252661Snp#
295252661Snp# $FreeBSD: releng/11.0/sys/dev/cxgbe/firmware/t5fw_cfg.txt 297797 2016-04-11 02:18:59Z np $
296252661Snp#
297