xref: /freebsd/sys/dev/cxgbe/firmware/t4fw_cfg.txt (revision 031beb4e239bfce798af17f5fe8dba8bcaf13d99)
1733b9277SNavdeep Parhar# Firmware configuration file.
2733b9277SNavdeep Parhar#
3733b9277SNavdeep Parhar# Global limits (some are hardware limits, others are due to the firmware).
4733b9277SNavdeep Parhar# nvi = 128		virtual interfaces
5733b9277SNavdeep Parhar# niqflint = 1023	ingress queues with freelists and/or interrupts
6733b9277SNavdeep Parhar# nethctrl = 64K	Ethernet or ctrl egress queues
7733b9277SNavdeep Parhar# neq = 64K		egress queues of all kinds, including freelists
8733b9277SNavdeep Parhar# nexactf = 336		MPS TCAM entries, can oversubscribe.
9733b9277SNavdeep Parhar#
10733b9277SNavdeep Parhar
11733b9277SNavdeep Parhar[global]
12733b9277SNavdeep Parhar	rss_glb_config_mode = basicvirtual
13733b9277SNavdeep Parhar	rss_glb_config_options = tnlmapen,hashtoeplitz,tnlalllkp
14733b9277SNavdeep Parhar
15733b9277SNavdeep Parhar	sge_timer_value = 1, 5, 10, 50, 100, 200	# usecs
16733b9277SNavdeep Parhar
1748d05478SNavdeep Parhar	# enable TP_OUT_CONFIG.IPIDSPLITMODE
1848d05478SNavdeep Parhar	reg[0x7d04] = 0x00010000/0x00010000
1948d05478SNavdeep Parhar
20dd991bd5SNavdeep Parhar	# disable TP_PARA_REG3.RxFragEn
21dd991bd5SNavdeep Parhar	reg[0x7d6c] = 0x00000000/0x00007000
22dd991bd5SNavdeep Parhar
23c47c408aSNavdeep Parhar	reg[0x7dc0] = 0x0e2f8849		# TP_SHIFT_CNT
24733b9277SNavdeep Parhar
25733b9277SNavdeep Parhar	filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe
2648d05478SNavdeep Parhar	filterMask = protocol, fcoe
27733b9277SNavdeep Parhar
28fc2aa1fcSNavdeep Parhar	tp_pmrx = 36, 512
29733b9277SNavdeep Parhar	tp_pmrx_pagesize = 64K
30c47c408aSNavdeep Parhar
31c47c408aSNavdeep Parhar	# TP number of RX channels (0 = auto)
32c47c408aSNavdeep Parhar	tp_nrxch = 0
33c47c408aSNavdeep Parhar
34fc2aa1fcSNavdeep Parhar	tp_pmtx = 46, 512
35733b9277SNavdeep Parhar	tp_pmtx_pagesize = 64K
36733b9277SNavdeep Parhar
37c47c408aSNavdeep Parhar	# TP number of TX channels (0 = auto)
38c47c408aSNavdeep Parhar	tp_ntxch = 0
3900cc2faaSNavdeep Parhar
4048d05478SNavdeep Parhar	# TP OFLD MTUs
4148d05478SNavdeep Parhar	tp_mtus = 88, 256, 512, 576, 808, 1024, 1280, 1488, 1500, 2002, 2048, 4096, 4352, 8192, 9000, 9600
4248d05478SNavdeep Parhar
43c47c408aSNavdeep Parhar	# cluster, lan, or wan.
44c47c408aSNavdeep Parhar	tp_tcptuning = lan
45c47c408aSNavdeep Parhar
46733b9277SNavdeep Parhar# PFs 0-3.  These get 8 MSI/8 MSI-X vectors each.  VFs are supported by
47460f25e5SNavdeep Parhar# these 4 PFs only.
48733b9277SNavdeep Parhar[function "0"]
49460f25e5SNavdeep Parhar	wx_caps = all
50460f25e5SNavdeep Parhar	r_caps = all
51*305e7e92SNavdeep Parhar	nvi = 1
52*305e7e92SNavdeep Parhar	rssnvi = 0
53*305e7e92SNavdeep Parhar	niqflint = 2
54*305e7e92SNavdeep Parhar	nethctrl = 2
55*305e7e92SNavdeep Parhar	neq = 4
56*305e7e92SNavdeep Parhar	nexactf = 2
57460f25e5SNavdeep Parhar	cmask = all
58460f25e5SNavdeep Parhar	pmask = 0x1
59733b9277SNavdeep Parhar
60733b9277SNavdeep Parhar[function "1"]
61460f25e5SNavdeep Parhar	wx_caps = all
62460f25e5SNavdeep Parhar	r_caps = all
63*305e7e92SNavdeep Parhar	nvi = 1
64*305e7e92SNavdeep Parhar	rssnvi = 0
65*305e7e92SNavdeep Parhar	niqflint = 2
66*305e7e92SNavdeep Parhar	nethctrl = 2
67*305e7e92SNavdeep Parhar	neq = 4
68*305e7e92SNavdeep Parhar	nexactf = 2
69460f25e5SNavdeep Parhar	cmask = all
70460f25e5SNavdeep Parhar	pmask = 0x2
71733b9277SNavdeep Parhar
72733b9277SNavdeep Parhar[function "2"]
73460f25e5SNavdeep Parhar	wx_caps = all
74460f25e5SNavdeep Parhar	r_caps = all
75*305e7e92SNavdeep Parhar	nvi = 1
76*305e7e92SNavdeep Parhar	rssnvi = 0
77*305e7e92SNavdeep Parhar	niqflint = 2
78*305e7e92SNavdeep Parhar	nethctrl = 2
79*305e7e92SNavdeep Parhar	neq = 4
80*305e7e92SNavdeep Parhar	nexactf = 2
81460f25e5SNavdeep Parhar	cmask = all
82460f25e5SNavdeep Parhar	pmask = 0x4
83733b9277SNavdeep Parhar
84733b9277SNavdeep Parhar[function "3"]
85460f25e5SNavdeep Parhar	wx_caps = all
86460f25e5SNavdeep Parhar	r_caps = all
87*305e7e92SNavdeep Parhar	nvi = 1
88*305e7e92SNavdeep Parhar	rssnvi = 0
89*305e7e92SNavdeep Parhar	niqflint = 2
90*305e7e92SNavdeep Parhar	nethctrl = 2
91*305e7e92SNavdeep Parhar	neq = 4
92*305e7e92SNavdeep Parhar	nexactf = 2
93460f25e5SNavdeep Parhar	cmask = all
94460f25e5SNavdeep Parhar	pmask = 0x8
95733b9277SNavdeep Parhar
96733b9277SNavdeep Parhar# PF4 is the resource-rich PF that the bus/nexus driver attaches to.
97733b9277SNavdeep Parhar# It gets 32 MSI/128 MSI-X vectors.
98733b9277SNavdeep Parhar[function "4"]
99733b9277SNavdeep Parhar	wx_caps = all
100733b9277SNavdeep Parhar	r_caps = all
101c9bfe3d1SNavdeep Parhar	nvi = 32
102*305e7e92SNavdeep Parhar	rssnvi = 16
10312845013SNavdeep Parhar	niqflint = 512
10412845013SNavdeep Parhar	nethctrl = 1024
10512845013SNavdeep Parhar	neq = 2048
106460f25e5SNavdeep Parhar	nexactf = 280
107733b9277SNavdeep Parhar	cmask = all
108733b9277SNavdeep Parhar	pmask = all
109ac4031d8SNavdeep Parhar	nethofld = 2048
110733b9277SNavdeep Parhar
111733b9277SNavdeep Parhar	# driver will mask off features it won't use
112fc2aa1fcSNavdeep Parhar	protocol = ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu
113733b9277SNavdeep Parhar
114efc9fddcSNavdeep Parhar	tp_l2t = 4096
115efc9fddcSNavdeep Parhar	tp_ddp = 2
116fc2aa1fcSNavdeep Parhar	tp_ddp_iscsi = 2
117fc2aa1fcSNavdeep Parhar	tp_stag = 2
118fc2aa1fcSNavdeep Parhar	tp_pbl = 5
119fc2aa1fcSNavdeep Parhar	tp_rq = 7
120733b9277SNavdeep Parhar
121733b9277SNavdeep Parhar	# TCAM has 8K cells; each region must start at a multiple of 128 cell.
122733b9277SNavdeep Parhar	# Each entry in these categories takes 4 cells each.  nhash will use the
123733b9277SNavdeep Parhar	# TCAM iff there is room left (that is, the rest don't add up to 2048).
124733b9277SNavdeep Parhar	nroute = 32
125c9bfe3d1SNavdeep Parhar	nclip = 32
126c9bfe3d1SNavdeep Parhar	nfilter = 1456
127733b9277SNavdeep Parhar	nserver = 512
128733b9277SNavdeep Parhar	nhash = 16384
129733b9277SNavdeep Parhar
130733b9277SNavdeep Parhar# PF5 is the SCSI Controller PF. It gets 32 MSI/40 MSI-X vectors.
131733b9277SNavdeep Parhar# Not used right now.
132733b9277SNavdeep Parhar[function "5"]
133733b9277SNavdeep Parhar	nvi = 1
13412845013SNavdeep Parhar	rssnvi = 0
135733b9277SNavdeep Parhar
136733b9277SNavdeep Parhar# PF6 is the FCoE Controller PF. It gets 32 MSI/40 MSI-X vectors.
137733b9277SNavdeep Parhar# Not used right now.
138733b9277SNavdeep Parhar[function "6"]
139733b9277SNavdeep Parhar	nvi = 1
14012845013SNavdeep Parhar	rssnvi = 0
141733b9277SNavdeep Parhar
1422a5f6b0eSNavdeep Parhar# The following function, 1023, is not an actual PCIE function but is used to
1432a5f6b0eSNavdeep Parhar# configure and reserve firmware internal resources that come from the global
1442a5f6b0eSNavdeep Parhar# resource pool.
1452a5f6b0eSNavdeep Parhar[function "1023"]
1462a5f6b0eSNavdeep Parhar	wx_caps = all
1472a5f6b0eSNavdeep Parhar	r_caps = all
1482a5f6b0eSNavdeep Parhar	nvi = 4
14912845013SNavdeep Parhar	rssnvi = 0
1502a5f6b0eSNavdeep Parhar	cmask = all
1512a5f6b0eSNavdeep Parhar	pmask = all
1522a5f6b0eSNavdeep Parhar	nexactf = 8
1532a5f6b0eSNavdeep Parhar	nfilter = 16
1542a5f6b0eSNavdeep Parhar
155460f25e5SNavdeep Parhar# For Virtual functions, we only allow NIC functionality and we only allow
156460f25e5SNavdeep Parhar# access to one port (1 << PF).  Note that because of limitations in the
157460f25e5SNavdeep Parhar# Scatter Gather Engine (SGE) hardware which checks writes to VF KDOORBELL
158460f25e5SNavdeep Parhar# and GTS registers, the number of Ingress and Egress Queues must be a power
159460f25e5SNavdeep Parhar# of 2.
160460f25e5SNavdeep Parhar#
161460f25e5SNavdeep Parhar[function "0/*"]
162460f25e5SNavdeep Parhar	wx_caps = 0x82
163460f25e5SNavdeep Parhar	r_caps = 0x86
164460f25e5SNavdeep Parhar	nvi = 1
165*305e7e92SNavdeep Parhar	rssnvi = 0
166460f25e5SNavdeep Parhar	niqflint = 2
167460f25e5SNavdeep Parhar	nethctrl = 2
168460f25e5SNavdeep Parhar	neq = 4
169460f25e5SNavdeep Parhar	nexactf = 2
170460f25e5SNavdeep Parhar	cmask = all
171460f25e5SNavdeep Parhar	pmask = 0x1
172460f25e5SNavdeep Parhar
173460f25e5SNavdeep Parhar[function "1/*"]
174460f25e5SNavdeep Parhar	wx_caps = 0x82
175460f25e5SNavdeep Parhar	r_caps = 0x86
176460f25e5SNavdeep Parhar	nvi = 1
177*305e7e92SNavdeep Parhar	rssnvi = 0
178460f25e5SNavdeep Parhar	niqflint = 2
179460f25e5SNavdeep Parhar	nethctrl = 2
180460f25e5SNavdeep Parhar	neq = 4
181460f25e5SNavdeep Parhar	nexactf = 2
182460f25e5SNavdeep Parhar	cmask = all
183460f25e5SNavdeep Parhar	pmask = 0x2
184460f25e5SNavdeep Parhar
185460f25e5SNavdeep Parhar[function "2/*"]
186460f25e5SNavdeep Parhar	wx_caps = 0x82
187460f25e5SNavdeep Parhar	r_caps = 0x86
188460f25e5SNavdeep Parhar	nvi = 1
189*305e7e92SNavdeep Parhar	rssnvi = 0
190460f25e5SNavdeep Parhar	niqflint = 2
191460f25e5SNavdeep Parhar	nethctrl = 2
192460f25e5SNavdeep Parhar	neq = 4
193460f25e5SNavdeep Parhar	nexactf = 2
194460f25e5SNavdeep Parhar	cmask = all
195460f25e5SNavdeep Parhar	pmask = 0x4
196460f25e5SNavdeep Parhar
197460f25e5SNavdeep Parhar[function "3/*"]
198460f25e5SNavdeep Parhar	wx_caps = 0x82
199460f25e5SNavdeep Parhar	r_caps = 0x86
200460f25e5SNavdeep Parhar	nvi = 1
201*305e7e92SNavdeep Parhar	rssnvi = 0
202460f25e5SNavdeep Parhar	niqflint = 2
203460f25e5SNavdeep Parhar	nethctrl = 2
204460f25e5SNavdeep Parhar	neq = 4
205460f25e5SNavdeep Parhar	nexactf = 2
206460f25e5SNavdeep Parhar	cmask = all
207460f25e5SNavdeep Parhar	pmask = 0x8
208460f25e5SNavdeep Parhar
209733b9277SNavdeep Parhar# MPS has 192K buffer space for ingress packets from the wire as well as
210733b9277SNavdeep Parhar# loopback path of the L2 switch.
211733b9277SNavdeep Parhar[port "0"]
212733b9277SNavdeep Parhar	dcb = none
213733b9277SNavdeep Parhar	bg_mem = 25
214733b9277SNavdeep Parhar	lpbk_mem = 25
215733b9277SNavdeep Parhar	hwm = 30
216733b9277SNavdeep Parhar	lwm = 15
217733b9277SNavdeep Parhar	dwm = 30
218733b9277SNavdeep Parhar
219733b9277SNavdeep Parhar[port "1"]
220733b9277SNavdeep Parhar	dcb = none
221733b9277SNavdeep Parhar	bg_mem = 25
222733b9277SNavdeep Parhar	lpbk_mem = 25
223733b9277SNavdeep Parhar	hwm = 30
224733b9277SNavdeep Parhar	lwm = 15
225733b9277SNavdeep Parhar	dwm = 30
226733b9277SNavdeep Parhar
227733b9277SNavdeep Parhar[port "2"]
228733b9277SNavdeep Parhar	dcb = none
229733b9277SNavdeep Parhar	bg_mem = 25
230733b9277SNavdeep Parhar	lpbk_mem = 25
231733b9277SNavdeep Parhar	hwm = 30
232733b9277SNavdeep Parhar	lwm = 15
233733b9277SNavdeep Parhar	dwm = 30
234733b9277SNavdeep Parhar
235733b9277SNavdeep Parhar[port "3"]
236733b9277SNavdeep Parhar	dcb = none
237733b9277SNavdeep Parhar	bg_mem = 25
238733b9277SNavdeep Parhar	lpbk_mem = 25
239733b9277SNavdeep Parhar	hwm = 30
240733b9277SNavdeep Parhar	lwm = 15
241733b9277SNavdeep Parhar	dwm = 30
242733b9277SNavdeep Parhar
243733b9277SNavdeep Parhar[fini]
244733b9277SNavdeep Parhar	version = 0x1
245*305e7e92SNavdeep Parhar	checksum = 0x3ecbe8a0
246733b9277SNavdeep Parhar#
247733b9277SNavdeep Parhar#
248