xref: /freebsd/sys/dev/cxgbe/firmware/t4fw_cfg.txt (revision 1fb62fb074788ca4713551be09d6569966a3abee)
1# Firmware configuration file.
2#
3# Global limits (some are hardware limits, others are due to the firmware).
4# nvi = 128		virtual interfaces
5# niqflint = 1023	ingress queues with freelists and/or interrupts
6# nethctrl = 64K	Ethernet or ctrl egress queues
7# neq = 64K		egress queues of all kinds, including freelists
8# nexactf = 336		MPS TCAM entries, can oversubscribe.
9#
10
11[global]
12	rss_glb_config_mode = basicvirtual
13	rss_glb_config_options = tnlmapen,hashtoeplitz,tnlalllkp
14
15	sge_timer_value = 1, 5, 10, 50, 100, 200	# usecs
16
17	# enable TP_OUT_CONFIG.IPIDSPLITMODE
18	reg[0x7d04] = 0x00010000/0x00010000
19
20	# disable TP_PARA_REG3.RxFragEn
21	reg[0x7d6c] = 0x00000000/0x00007000
22
23	reg[0x7dc0] = 0x0e2f8849		# TP_SHIFT_CNT
24
25	filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe
26	filterMask = protocol, fcoe
27
28	tp_pmrx = 36, 512
29	tp_pmrx_pagesize = 64K
30
31	# TP number of RX channels (0 = auto)
32	tp_nrxch = 0
33
34	tp_pmtx = 46, 512
35	tp_pmtx_pagesize = 64K
36
37	# TP number of TX channels (0 = auto)
38	tp_ntxch = 0
39
40	# TP OFLD MTUs
41	tp_mtus = 88, 256, 512, 576, 808, 1024, 1280, 1488, 1500, 2002, 2048, 4096, 4352, 8192, 9000, 9600
42
43	# cluster, lan, or wan.
44	tp_tcptuning = lan
45
46# PFs 0-3.  These get 8 MSI/8 MSI-X vectors each.  VFs are supported by
47# these 4 PFs only.
48[function "0"]
49	nvf = 4
50	wx_caps = all
51	r_caps = all
52	nvi = 2
53	rssnvi = 2
54	niqflint = 4
55	nethctrl = 4
56	neq = 8
57	nexactf = 4
58	cmask = all
59	pmask = 0x1
60
61[function "1"]
62	nvf = 4
63	wx_caps = all
64	r_caps = all
65	nvi = 2
66	rssnvi = 2
67	niqflint = 4
68	nethctrl = 4
69	neq = 8
70	nexactf = 4
71	cmask = all
72	pmask = 0x2
73
74[function "2"]
75	nvf = 4
76	wx_caps = all
77	r_caps = all
78	nvi = 2
79	rssnvi = 2
80	niqflint = 4
81	nethctrl = 4
82	neq = 8
83	nexactf = 4
84	cmask = all
85	pmask = 0x4
86
87[function "3"]
88	nvf = 4
89	wx_caps = all
90	r_caps = all
91	nvi = 2
92	rssnvi = 2
93	niqflint = 4
94	nethctrl = 4
95	neq = 8
96	nexactf = 4
97	cmask = all
98	pmask = 0x8
99
100# PF4 is the resource-rich PF that the bus/nexus driver attaches to.
101# It gets 32 MSI/128 MSI-X vectors.
102[function "4"]
103	wx_caps = all
104	r_caps = all
105	nvi = 32
106	rssnvi = 8
107	niqflint = 512
108	nethctrl = 1024
109	neq = 2048
110	nexactf = 280
111	cmask = all
112	pmask = all
113
114	# driver will mask off features it won't use
115	protocol = ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu
116
117	tp_l2t = 4096
118	tp_ddp = 2
119	tp_ddp_iscsi = 2
120	tp_stag = 2
121	tp_pbl = 5
122	tp_rq = 7
123
124	# TCAM has 8K cells; each region must start at a multiple of 128 cell.
125	# Each entry in these categories takes 4 cells each.  nhash will use the
126	# TCAM iff there is room left (that is, the rest don't add up to 2048).
127	nroute = 32
128	nclip = 32
129	nfilter = 1456
130	nserver = 512
131	nhash = 16384
132
133# PF5 is the SCSI Controller PF. It gets 32 MSI/40 MSI-X vectors.
134# Not used right now.
135[function "5"]
136	nvi = 1
137	rssnvi = 0
138
139# PF6 is the FCoE Controller PF. It gets 32 MSI/40 MSI-X vectors.
140# Not used right now.
141[function "6"]
142	nvi = 1
143	rssnvi = 0
144
145# The following function, 1023, is not an actual PCIE function but is used to
146# configure and reserve firmware internal resources that come from the global
147# resource pool.
148[function "1023"]
149	wx_caps = all
150	r_caps = all
151	nvi = 4
152	rssnvi = 0
153	cmask = all
154	pmask = all
155	nexactf = 8
156	nfilter = 16
157
158# For Virtual functions, we only allow NIC functionality and we only allow
159# access to one port (1 << PF).  Note that because of limitations in the
160# Scatter Gather Engine (SGE) hardware which checks writes to VF KDOORBELL
161# and GTS registers, the number of Ingress and Egress Queues must be a power
162# of 2.
163#
164[function "0/*"]
165	wx_caps = 0x82
166	r_caps = 0x86
167	nvi = 1
168	rssnvi = 1
169	niqflint = 2
170	nethctrl = 2
171	neq = 4
172	nexactf = 2
173	cmask = all
174	pmask = 0x1
175
176[function "1/*"]
177	wx_caps = 0x82
178	r_caps = 0x86
179	nvi = 1
180	rssnvi = 1
181	niqflint = 2
182	nethctrl = 2
183	neq = 4
184	nexactf = 2
185	cmask = all
186	pmask = 0x2
187
188[function "2/*"]
189	wx_caps = 0x82
190	r_caps = 0x86
191	nvi = 1
192	rssnvi = 1
193	niqflint = 2
194	nethctrl = 2
195	neq = 4
196	nexactf = 2
197	cmask = all
198	pmask = 0x4
199
200[function "3/*"]
201	wx_caps = 0x82
202	r_caps = 0x86
203	nvi = 1
204	rssnvi = 1
205	niqflint = 2
206	nethctrl = 2
207	neq = 4
208	nexactf = 2
209	cmask = all
210	pmask = 0x8
211
212# MPS has 192K buffer space for ingress packets from the wire as well as
213# loopback path of the L2 switch.
214[port "0"]
215	dcb = none
216	bg_mem = 25
217	lpbk_mem = 25
218	hwm = 30
219	lwm = 15
220	dwm = 30
221
222[port "1"]
223	dcb = none
224	bg_mem = 25
225	lpbk_mem = 25
226	hwm = 30
227	lwm = 15
228	dwm = 30
229
230[port "2"]
231	dcb = none
232	bg_mem = 25
233	lpbk_mem = 25
234	hwm = 30
235	lwm = 15
236	dwm = 30
237
238[port "3"]
239	dcb = none
240	bg_mem = 25
241	lpbk_mem = 25
242	hwm = 30
243	lwm = 15
244	dwm = 30
245
246[fini]
247	version = 0x1
248	checksum = 0xbec0621
249#
250# $FreeBSD$
251#
252