1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at
9  * http://www.opensource.org/licenses/cddl1.txt.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright (c) 2004-2012 Emulex. All rights reserved.
24  * Use is subject to license terms.
25  * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
26  * Copyright 2020 RackTop Systems, Inc.
27  */
28 
29 #ifndef _EMLXS_ADAPTERS_H
30 #define	_EMLXS_ADAPTERS_H
31 
32 #ifdef	__cplusplus
33 extern "C" {
34 #endif
35 
36 /* Unique id for each adapter model */
37 typedef enum emlxs_adapter
38 {
39 	UNKNOWN_ADAPTER = 0,
40 
41 	/* DragonFly (1) */
42 	LP8000S,	/* SBUS */
43 	LP8000,		/* Generic Single Channel */
44 	LP8000DC,	/* Generic Dual Channel */
45 
46 	/* Centaur (4) */
47 	LP9002S,	/* SBUS */
48 	LP9002L,
49 	LP9002C,
50 	LP9002DC,
51 	LP9402DC,
52 
53 	/* Pegasus (9) */
54 	LP9802,		/* Generic Single Channel */
55 	LP9802DC,	/* Generic Dual Channel */
56 
57 	/* Thor (11) */
58 	LP10000,	/* Generic Single Channel */
59 	LP10000DC,	/* Generic Dual Channel */
60 	LP10000_O,	/* Oracle branded */
61 	LP10000DC_O,	/* Oracle branded */
62 	LP10000ExDC,
63 	BLADE_2G,
64 
65 	/* Helios (17) */
66 	LP11000,	/* Generic Single Channel */
67 	LP11002,	/* Generic Dual Channel */
68 	LP11000_O,	/* Oracle branded */
69 	LP11002_O,	/* Oracle branded */
70 	LP11000_SP,	/* Spare */
71 	LP11002_SP,	/* Spare */
72 
73 	/* Zephyr (23) */
74 	LPe11000,	/* Generic Single Channel */
75 	LPe1100X,	/* Generic Multi Channel */
76 	LPe11000_O,	/* Oracle branded */
77 	LPe11002_O,	/* Oracle branded */
78 	LPem11002_O,	/* Oracle branded */
79 	LPe11020_O,	/* Oracle branded */
80 	LPeA11002_O,	/* Oracle branded */
81 	LPem11002E_O,	/* Oracle branded */
82 
83 	/* Hornet (31) */
84 	LP21000,	/* Generic Single Channel */
85 	LP21002,	/* Generic Dual Channel */
86 
87 	/* Saturn (33) */
88 	LPe12000,	/* Generic Single Channel */
89 	LPe12002,	/* Generic Dual Channel */
90 	LPe12000_O,	/* Oracle branded */
91 	LPe12002_O,	/* Oracle branded */
92 	LPem12002_O,	/* Oracle branded */
93 	LPem12002E_O,	/* Oracle branded */
94 	LPe12000_SP,	/* Spare */
95 	LPe12002_SP,	/* Spare */
96 
97 	/* BE2 (41) */
98 	OCe10101,	/* Generic Single Channel */
99 	OCe10102,	/* Generic Dual Channel */
100 
101 	/* BE3 (43) */
102 	OCe11101,	/* Generic Single Channel */
103 	OCe11102,	/* Generic Dual Channel */
104 
105 	/* Lancer FC Gen5 HBAs (45) */
106 	LPe16000,	/* Generic Single Channel FC */
107 	LPe1600X,	/* Generic Multi Channel FC */
108 	LPem16002_FC_O,	/* Oracle branded */
109 	LPe16002_FC_O,	/* Oracle branded */
110 	LPe16002_FC_SP1, /* Oracle excluded - Spare */
111 	LPe16002_FC_SP2, /* Oracle excluded - Spare */
112 
113 	/* Lancer FC Gen6 HBAs */
114 	LPe31000_M6_L,	/* Single port 16Gb, Lenovo-branded */
115 	LPe32000,	/* Generic Single Channel FC */
116 	LPe3200X,	/* Generic Multi Channel FC */
117 
118 	/* Celerity 16 FC Gen5 */
119 	CelerityFC161E,
120 	CelerityFC162E,
121 	CelerityFC164E,
122 
123 	/* Celerity 16 FC Gen6 */
124 	CelerityFC162P,
125 	CelerityFC164P,
126 	CelerityFC321E,
127 	CelerityFC322E,
128 
129 	/* Lancer FCoE */
130 	OCe15100,	/* Generic Single Channel FCOE */
131 	OCe1510X,	/* Generic Multi Channel FCOE */
132 	LPem16002_FE_O,	/* Oracle branded */
133 	LPe16002_FE_O,	/* Oracle branded */
134 	LPe16002_FE_SP1, /* Oracle excluded - Spare */
135 	LPe16002_FE_SP2, /* Oracle excluded - Spare */
136 
137 	/* BE4 (57) */
138 	OCe12104,	/* 4-Port 2xNIC +2xFCoE */
139 
140 	/* Prism FC Gen7 HBAs */
141 	LPe35000,	/* Generic Single Channel FC */
142 	LPe3500X,	/* Generic Multi Channel FC */
143 } emlxs_adapter_t;
144 
145 
146 #define	PCI_VENDOR_ID_EMULEX		0x10df
147 #define	PCI_VENDOR_ID_ATTO		0x117c
148 #define	PCI_VENDOR_ID_OCE		0x19a2
149 
150 /* Subsystem Vendor IDs */
151 #define	PCI_SSVID_EMULEX		0x10df
152 #define	PCI_SSVID_HP			0x103c
153 #define	PCI_SSVID_IBM			0x1014
154 #define	PCI_SSVID_FUJITSU		0x1734
155 #define	PCI_SSVID_CISCO			0x1137
156 #define	PCI_SSVID_HITACHI		0x1054
157 #define	PCI_SSVID_ATTO			0x117c
158 
159 
160 /* PCI_DEVICE_IDs & PCI_SSDIDs */
161 /* F800: Dragonfly */
162 #define	PCI_DEVICE_ID_DRAGONFLY		0xf800
163 #define	PCI_SSDID_LP8000		0xf800
164 #define	PCI_SSDID_LP8000DC		0xf800	/* Identified by VPD PN */
165 
166 /* F085: Dragonfly SBUS */
167 #define	PCI_DEVICE_ID_DRAGONFLY_SBUS	0xf085	/* Identified by "lpfs" */
168 #define	PCI_SSDID_LP8000S		0xf085
169 
170 
171 /* F900: Centaur */
172 #define	PCI_DEVICE_ID_CENTAUR		0xf900
173 #define	PCI_SSDID_LP9002L		0xf900
174 #define	PCI_SSDID_LP9002DC		0xf900	/* Identified by VPD PN */
175 #define	PCI_SSDID_LP9002C		0xf900	/* Identified by VPD PN */
176 #define	PCI_SSDID_LP9402DC		0xf900	/* Identified by VPD PN */
177 
178 /* F095: Centaur SBUS */
179 #define	PCI_DEVICE_ID_CENTAUR_SBUS	0xf095	/* Identified by "lpfs" */
180 #define	PCI_SSDID_LP9002S		0xf095
181 
182 
183 /* F980: Pegasus */
184 #define	PCI_DEVICE_ID_PEGASUS		0xf980
185 #define	PCI_SSDID_LP9802		0xf980
186 #define	PCI_SSDID_LP9802DC		0xf980	/* Identified by RAM size */
187 
188 
189 /* FA00: Thor */
190 #define	PCI_DEVICE_ID_THOR		0xfa00
191 #define	PCI_SSDID_LP10000		0xfa00
192 #define	PCI_SSDID_LP10000DC		0xfa00	/* Identified by VPD PN and */
193 						/* by cache_line */
194 #define	PCI_SSDID_LP10000ExDC		0xfa00	/* Identified by VPD PN and */
195 						/* by cache_line */
196 /* F0A5: Thor Blade */
197 #define	PCI_DEVICE_ID_THOR_BLADE	0xf0a5
198 #define	PCI_SSDID_BLADE_2G		0xf0a5
199 
200 /* FC00: Thor Oracle */
201 #define	PCI_DEVICE_ID_THOR_O		0xfc00
202 #define	PCI_SSDID_LP10000_O		0xfc00
203 #define	PCI_SSDID_LP10000DC_O		0xfc00	/* Identified by cache_line */
204 
205 
206 /* FD00: Helios */
207 #define	PCI_DEVICE_ID_HELIOS		0xfd00
208 #define	PCI_SSDID_LP11000		0xfd00
209 #define	PCI_SSDID_LP11002		0xfd00	/* Identified by cache_line */
210 
211 /* FD11: Helios Spare */
212 #define	PCI_DEVICE_ID_LP11000_SP	0xfd11
213 #define	PCI_SSDID_LP11000_SP		0xfd11
214 
215 /* FD12: Helios Spare */
216 #define	PCI_DEVICE_ID_LP11002_SP	0xfd12
217 #define	PCI_SSDID_LP11002_SP		0xfd12
218 
219 /* FC10: Helios Oracle */
220 #define	PCI_DEVICE_ID_HELIOS_O		0xfc10
221 #define	PCI_SSDID_LP11000_O		0xfc11
222 #define	PCI_SSDID_LP11002_O		0xfc12
223 
224 
225 /* FE00: Zephyr */
226 #define	PCI_DEVICE_ID_ZEPHYR		0xfe00
227 #define	PCI_SSDID_LPe11000		0xfe00
228 #define	PCI_SSDID_LPe1100X		0xfe00	/* Identified by cache_line */
229 
230 
231 /* FC20: Zephyr Oracle */
232 #define	PCI_DEVICE_ID_ZEPHYR_O		0xfc20
233 #define	PCI_SSDID_LPe11000_O		0xfc21
234 #define	PCI_SSDID_LPe11002_O		0xfc22
235 #define	PCI_SSDID_LPem11002E_O		0xfc23
236 #define	PCI_SSDID_LPe11020_O		0xfc2a
237 #define	PCI_SSDID_LPeA11002_O		0xfc2d
238 #define	PCI_SSDID_LPem11002_O		0xfc2e
239 
240 
241 /* FE05: Hornet */
242 #define	PCI_DEVICE_ID_HORNET		0xfe05
243 #define	PCI_SSDID_LP21000		0xfe05
244 #define	PCI_SSDID_LP21002		0xfe05  /* Identified by cache_line */
245 
246 
247 /* F100: Saturn */
248 #define	PCI_DEVICE_ID_SATURN		0xf100
249 #define	PCI_SSDID_LPe12000		0xf100
250 #define	PCI_SSDID_LPe12002		0xf100 /* Identified by cache_line */
251 
252 /* F111: Saturn Spare */
253 #define	PCI_DEVICE_ID_LPe12000_SP	0xf111
254 #define	PCI_SSDID_LPe12000_SP		0xf111
255 
256 /* F112: Saturn Spare */
257 #define	PCI_DEVICE_ID_LPe12002_SP	0xf112
258 #define	PCI_SSDID_LPe12002_SP		0xf112
259 
260 /* FC40: Saturn Oracle */
261 #define	PCI_DEVICE_ID_SATURN_O		0xfc40
262 #define	PCI_SSDID_LPe12000_O		0xfc41
263 #define	PCI_SSDID_LPe12002_O		0xfc42
264 #define	PCI_SSDID_LPem12002_O		0xfc4e
265 #define	PCI_SSDID_LPem12002E_O		0xfc43
266 
267 
268 /* 0704: BE2 (TigerShark) */
269 #define	PCI_DEVICE_ID_BE2		0x0704
270 #define	PCI_SSDID_OCe10101		0x0704
271 #define	PCI_SSDID_OCe10102		0x0704 /* Identified by cache_line */
272 
273 
274 /* 0714: BE3 (TomCat) */
275 #define	PCI_DEVICE_ID_BE3		0x0714
276 #define	PCI_SSDID_OCe11101		0x0714
277 #define	PCI_SSDID_OCe11102		0x0714 /* Identified by cache_line */
278 
279 /* 0724: BE4 (Skyhawk) */
280 #define	PCI_DEVICE_ID_BE4		0x0724
281 #define	PCI_SSDID_OCe12104		0xEF81
282 
283 /* E200: Lancer FC Gen5 */
284 #define	PCI_DEVICE_ID_LANCER_FC		0xE200
285 #define	PCI_SSDID_LPe16000		0xE200
286 #define	PCI_SSDID_LPe1600X		0xE200 /* Identified by cache_line */
287 #define	PCI_SSDID_LPem16002_FC_O	0xE20C
288 #define	PCI_SSDID_LPe16002_FC_O		0xE20E
289 #define	PCI_SSDID_LPe16002_FC_SP1	0xE217
290 #define	PCI_SSDID_LPe16002_FC_SP2	0xE219
291 
292 /* E300: Lancer FC Gen6 */
293 #define	PCI_DEVICE_ID_LANCER_G6_FC	0xE300
294 #define	PCI_SSDID_LPe31000_M6_L		0xE333
295 #define	PCI_SSDID_LPe32000		0xE300
296 #define	PCI_SSDID_LPe3200X		0xE300
297 
298 /* F400: Prism FC Gen7 */
299 #define	PCI_DEVICE_ID_PRISM_G7_FC	0xF400
300 #define	PCI_SSDID_LPe35000_M2		0xF410
301 #define	PCI_SSDID_LPe35000		0xF400
302 #define	PCI_SSDID_LPe3500X		0xF400
303 
304 /* E260: Lancer FCoE */
305 #define	PCI_DEVICE_ID_LANCER_FE		0xE260
306 #define	PCI_SSDID_OCe15100		0xE260
307 #define	PCI_SSDID_OCe1510X		0xE260 /* Identified by cache_line */
308 #define	PCI_SSDID_LPem16002_FE_O	0xE20C
309 #define	PCI_SSDID_LPe16002_FE_O		0xE20E
310 #define	PCI_SSDID_LPe16002_FE_SP1	0xE217
311 #define	PCI_SSDID_LPe16002_FE_SP2	0xE219
312 
313 /* 0063: ATTO Celerity 16 FC Gen5 */
314 #define	PCI_DEVICE_ID_CLRTY_FC_161E	0x0063
315 #define	PCI_DEVICE_ID_CLRTY_FC_162E	0x0064
316 #define	PCI_DEVICE_ID_CLRTY_FC_164E	0x0065
317 #define	PCI_SSDID_CLRTY_FC_161E		0x0063
318 #define	PCI_SSDID_CLRTY_FC_162E		0x0064
319 #define	PCI_SSDID_CLRTY_FC_164E		0x0065
320 
321 /* 0094 ATTO Celerity 16 FC Gen6 */
322 #define	PCI_DEVICE_ID_CLRTY_FC_G6	0x0094
323 #define	PCI_SSDID_CLRTY_FC_162P		0x0094
324 #define	PCI_SSDID_CLRTY_FC_164P		0x00A1
325 #define	PCI_SSDID_CLRTY_FC_321E		0x00A2
326 #define	PCI_SSDID_CLRTY_FC_322E		0x00A3
327 
328 /* JEDEC codes */
329 #define	FIREFLY_JEDEC_ID	0x1ACC
330 #define	SUPERFLY_JEDEC_ID	0x0020
331 #define	DRAGONFLY_JEDEC_ID	0x0021
332 #define	DRAGONFLY_V2_JEDEC_ID	0x0025
333 #define	CENTAUR_2G_JEDEC_ID	0x0026
334 #define	CENTAUR_1G_JEDEC_ID	0x0028
335 #define	HELIOS_4G_JEDEC_ID	0x0364
336 #define	ZEPHYR_4G_JEDEC_ID	0x0577
337 #define	NEPTUNE_4G_JEDEC_ID	0x0510
338 #define	SATURN_8G_JEDEC_ID	0x1004
339 #define	PROTEUS_8G_JEDEC_ID	0x2634
340 #define	JEDEC_ID_MASK		0x0FFFF000
341 #define	JEDEC_ID_SHIFT		12
342 #define	FC_JEDEC_ID(id)		((id & JEDEC_ID_MASK) >> JEDEC_ID_SHIFT)
343 
344 
345 typedef struct emlxs_model
346 {
347 	emlxs_adapter_t id;
348 	uint16_t	vendor_id;
349 	uint16_t	device_id;
350 	uint16_t	ssdid;
351 
352 	char		model[32];
353 	char		model_desc[80];
354 	char		manufacturer[80];
355 	uint32_t	flags;
356 
357 	/* flags */
358 #define	EMLXS_INTX_SUPPORTED	0x00000001
359 #define	EMLXS_MSI_SUPPORTED	0x00000002
360 #define	EMLXS_MSIX_SUPPORTED	0x00000004
361 #define	EMLXS_E2E_SUPPORTED	0x00000010 /* End-to-end authentication */
362 #define	EMLXS_GPIO_LEDS		0x00000040
363 #define	EMLXS_ORACLE_BRANDED	0x10000000
364 #define	EMLXS_ORACLE_EXCLUDED	0x20000000
365 #define	EMLXS_NOT_SUPPORTED	0x80000000
366 
367 	uint32_t	chip;
368 
369 	/* chip */
370 #define	EMLXS_UNKNOWN_CHIP	0x00000000
371 #define	EMLXS_DRAGONFLY_CHIP	0x00000001
372 #define	EMLXS_CENTAUR_CHIP	0x00000002
373 #define	EMLXS_PEGASUS_CHIP	0x00000004
374 #define	EMLXS_THOR_CHIP		0x00000008
375 #define	EMLXS_HELIOS_CHIP	0x00000010
376 #define	EMLXS_ZEPHYR_CHIP	0x00000020
377 #define	EMLXS_NEPTUNE_CHIP	0x00000040
378 #define	EMLXS_SATURN_CHIP	0x00000080
379 #define	EMLXS_PROTEUS_CHIP	0x00000100
380 #define	EMLXS_BE2_CHIP		0x00000200
381 #define	EMLXS_BE3_CHIP		0x00000400
382 #define	EMLXS_BE4_CHIP		0x00000800
383 #define	EMLXS_BE_CHIPS		(EMLXS_BE2_CHIP|EMLXS_BE3_CHIP|EMLXS_BE4_CHIP)
384 #define	EMLXS_LANCER_CHIP	0x00001000
385 #define	EMLXS_LANCERG6_CHIP	0x00002000
386 #define	EMLXS_PRISMG7_CHIP	0x00004000
387 #define	EMLXS_LANCER_CHIPS \
388 	(EMLXS_LANCER_CHIP|EMLXS_LANCERG6_CHIP|EMLXS_PRISMG7_CHIP)
389 
390 	emlxs_fwid_t	fwid;
391 	uint32_t	intr_limit;
392 
393 #define	EMLXS_INTR_NO_LIMIT	0x00000000
394 #define	EMLXS_INTR_LIMIT1	0x00000001
395 #define	EMLXS_INTR_LIMIT2	0x00000002
396 #define	EMLXS_INTR_LIMIT4	0x00000004
397 #define	EMLXS_INTR_LIMIT8	0x00000008
398 #define	EMLXS_INTR_LIMIT16	0x00000010
399 
400 	uint32_t	sli_mask;
401 
402 #define	EMLXS_SLI0_MASK		0x00000000
403 #define	EMLXS_SLI2_MASK		0x00000002
404 #define	EMLXS_SLI3_MASK		0x00000004
405 #define	EMLXS_SLI4_MASK		0x00000008
406 
407 #define	EMLXS_SLI_MASK(_mode)  ((_mode < 2) ? 0 : (1 << _mode))
408 
409 	uint32_t	channels;
410 #define	EMLXS_SINGLE_CHANNEL	1
411 #define	EMLXS_MULTI_CHANNEL	2
412 
413 	uint8_t		pt_2[8];	/* stub */
414 	uint8_t		pt_3[8];	/* boot */
415 	uint8_t		pt_6[8];	/* SLI1 */
416 	uint8_t		pt_7[8];	/* SLI2 */
417 	uint8_t		pt_A[8];	/* SBUS FCODE */
418 	uint8_t		pt_B[8];	/* SLI3 */
419 	uint8_t		pt_E[8];	/* SLI4 (old) */
420 	uint8_t		pt_FF[8];	/* kern */
421 	uint8_t		pt_20[8];
422 #define	NULL_PROG_TYPES		{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}
423 
424 } emlxs_model_t;
425 
426 #ifdef EMLXS_MODEL_DEF
427 
428 /* Define the SBUS adapter database */
429 emlxs_model_t   emlxs_sbus_model[] =
430 {
431 	/* Unknown */
432 	{
433 		UNKNOWN_ADAPTER,
434 		0,
435 		0,
436 		0,
437 		"unknown",
438 		"Unknown Emulex LightPulse FC HBA",
439 		"Emulex",
440 		EMLXS_NOT_SUPPORTED,
441 		EMLXS_UNKNOWN_CHIP,
442 		FW_NOT_PROVIDED,
443 		EMLXS_INTR_LIMIT1,
444 		EMLXS_SLI2_MASK,
445 		0,
446 		NULL_PROG_TYPES,
447 	},
448 
449 	/* Dragonfly midrange (QFLY) */
450 	{
451 		LP8000S,
452 		PCI_VENDOR_ID_EMULEX,
453 		PCI_DEVICE_ID_DRAGONFLY_SBUS,
454 		PCI_SSDID_LP8000S,
455 		"LP8000S",
456 		"Emulex LP8000S 1Gb 1-port SBUS FC HBA",
457 		"Emulex",
458 		EMLXS_INTX_SUPPORTED,
459 		EMLXS_DRAGONFLY_CHIP,
460 		FW_NOT_PROVIDED,
461 		EMLXS_INTR_LIMIT1,
462 		EMLXS_SLI2_MASK,
463 		EMLXS_SINGLE_CHANNEL,
464 		{0x21, 0xB0, 0},
465 		{0},
466 		{0x31, 0},
467 		{0x31, 0x39, 0},
468 		{0x01, 0},
469 		{0},
470 		{0},
471 		{0x30, 0},
472 		{0}, /* T20 */
473 	},
474 
475 	/* Centaur mid-range (RFLY, Rtaur) */
476 	{
477 		LP9002S,
478 		PCI_VENDOR_ID_EMULEX,
479 		PCI_DEVICE_ID_CENTAUR_SBUS,
480 		PCI_SSDID_LP9002S,
481 		"LP9002S",
482 		"Emulex LP9002S 2Gb 1-port SBUS FC HBA",
483 		"Emulex",
484 		EMLXS_INTX_SUPPORTED,
485 		EMLXS_CENTAUR_CHIP,
486 		FW_NOT_PROVIDED,
487 		EMLXS_INTR_LIMIT1,
488 		EMLXS_SLI2_MASK,
489 		EMLXS_SINGLE_CHANNEL,
490 		{0x41, 0xD0, 0},
491 		{0},
492 		{0x51, 0},
493 		{0x51, 0},
494 		{0x02, 0},
495 		{0},
496 		{0},
497 		{0x50, 0},
498 		{0}, /* T20 */
499 	},
500 
501 };	/* emlxs_sbus_model[] */
502 
503 #define	EMLXS_SBUS_MODEL_COUNT \
504 	(sizeof (emlxs_sbus_model) / sizeof (emlxs_model_t))
505 
506 
507 /* Define the PCI adapter database */
508 emlxs_model_t   emlxs_pci_model[] =
509 {
510 	/* Unknown */
511 	{
512 		UNKNOWN_ADAPTER,
513 		0,
514 		0,
515 		0,
516 		"unknown",
517 		"Unknown Emulex LightPulse FC HBA",
518 		"Emulex",
519 		EMLXS_NOT_SUPPORTED,
520 		EMLXS_UNKNOWN_CHIP,
521 		FW_NOT_PROVIDED,
522 		EMLXS_INTR_LIMIT1,
523 		EMLXS_SLI2_MASK,
524 		0,
525 		NULL_PROG_TYPES,
526 	},
527 
528 	/* Dragonfly */
529 	{
530 		LP8000,
531 		PCI_VENDOR_ID_EMULEX,
532 		PCI_DEVICE_ID_DRAGONFLY,
533 		PCI_SSDID_LP8000,
534 		"LP8000",
535 		"Emulex LP8000 1Gb 1-port PCI FC HBA",
536 		"Emulex",
537 		EMLXS_INTX_SUPPORTED,
538 		EMLXS_DRAGONFLY_CHIP,
539 		FW_NOT_PROVIDED,
540 		EMLXS_INTR_LIMIT1,
541 		EMLXS_SLI2_MASK,
542 		EMLXS_SINGLE_CHANNEL,
543 		{0x21, 0x22, 0x23, 0xA0, 0},
544 		{0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0},
545 		{0x21, 0x22, 0x23, 0},
546 		{0x21, 0x22, 0x23, 0},
547 		{0},
548 		{0},
549 		{0},
550 		{0x20, 0},
551 		{0}, /* T20 */
552 	},
553 
554 	/* Dragonfly DC */
555 	/* !! Must always follow the single channel entry in list */
556 	{
557 		LP8000DC,
558 		PCI_VENDOR_ID_EMULEX,
559 		PCI_DEVICE_ID_DRAGONFLY,
560 		PCI_SSDID_LP8000DC,
561 		"LP8000DC",
562 		"Emulex LP8000DC 1Gb 2-port PCI FC HBA",
563 		"Emulex",
564 		EMLXS_INTX_SUPPORTED,
565 		EMLXS_DRAGONFLY_CHIP,
566 		FW_NOT_PROVIDED,
567 		EMLXS_INTR_LIMIT1,
568 		EMLXS_SLI2_MASK,
569 		EMLXS_MULTI_CHANNEL,
570 		{0x21, 0x22, 0x23, 0xA0, 0},
571 		{0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0},
572 		{0x21, 0x22, 0x23, 0},
573 		{0x21, 0x22, 0x23, 0},
574 		{0},
575 		{0},
576 		{0},
577 		{0x20, 0},
578 		{0}, /* T20 */
579 	},
580 
581 	/* Centaur PCI */
582 	{
583 		LP9002L,
584 		PCI_VENDOR_ID_EMULEX,
585 		PCI_DEVICE_ID_CENTAUR,
586 		PCI_SSDID_LP9002L,
587 		"LP9002L",
588 		"Emulex LP9002L 2Gb 1-port PCI FC HBA",
589 		"Emulex",
590 		EMLXS_INTX_SUPPORTED,
591 		EMLXS_CENTAUR_CHIP,
592 		FW_NOT_PROVIDED,
593 		EMLXS_INTR_LIMIT1,
594 		EMLXS_SLI2_MASK,
595 		EMLXS_SINGLE_CHANNEL,
596 		{0x41, 0x43, 0xC0, 0},
597 		{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0},
598 		{0x41, 0x43, 0},
599 		{0x41, 0x43, 0},
600 		{0},
601 		{0},
602 		{0},
603 		{0x40, 0},
604 		{0}, /* T20 */
605 	},
606 
607 	/* Centaur cPCI */
608 	{
609 		LP9002C,
610 		PCI_VENDOR_ID_EMULEX,
611 		PCI_DEVICE_ID_CENTAUR,
612 		PCI_SSDID_LP9002C,
613 		"LP9002C",
614 		"Emulex LP9002C 2Gb 1-port cPCI FC HBA",
615 		"Emulex",
616 		EMLXS_INTX_SUPPORTED,
617 		EMLXS_CENTAUR_CHIP,
618 		FW_NOT_PROVIDED,
619 		EMLXS_INTR_LIMIT1,
620 		EMLXS_SLI2_MASK,
621 		EMLXS_SINGLE_CHANNEL,
622 		{0x41, 0x43, 0xC0, 0},
623 		{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0},
624 		{0x41, 0x43, 0},
625 		{0x41, 0x43, 0},
626 		{0},
627 		{0},
628 		{0},
629 		{0x40, 0},
630 		{0}, /* T20 */
631 	},
632 
633 	/* Centaur DC PCI */
634 	/* !! Must always follow the single channel entry in list */
635 	{
636 		LP9002DC,
637 		PCI_VENDOR_ID_EMULEX,
638 		PCI_DEVICE_ID_CENTAUR,
639 		PCI_SSDID_LP9002DC,
640 		"LP9002DC",
641 		"Emulex LP9002DC 2Gb 2-port PCI FC HBA",
642 		"Emulex",
643 		EMLXS_INTX_SUPPORTED,
644 		EMLXS_CENTAUR_CHIP,
645 		FW_NOT_PROVIDED,
646 		EMLXS_INTR_LIMIT1,
647 		EMLXS_SLI2_MASK,
648 		EMLXS_MULTI_CHANNEL,
649 		{0x41, 0x43, 0xC0, 0},
650 		{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0},
651 		{0x41, 0x43, 0},
652 		{0x41, 0x43, 0},
653 		{0},
654 		{0},
655 		{0},
656 		{0x40, 0},
657 		{0}, /* T20 */
658 	},
659 
660 	/* Centaur DC PCI-X */
661 	/* !! Must always follow the single channel entry in list */
662 	{
663 		LP9402DC,
664 		PCI_VENDOR_ID_EMULEX,
665 		PCI_DEVICE_ID_CENTAUR,
666 		PCI_SSDID_LP9402DC,
667 		"LP9402DC",
668 		"Emulex LP9402DC 2Gb 2-port PCI-X FC HBA",
669 		"Emulex",
670 		EMLXS_INTX_SUPPORTED,
671 		EMLXS_CENTAUR_CHIP,
672 		FW_NOT_PROVIDED,
673 		EMLXS_INTR_LIMIT1,
674 		EMLXS_SLI2_MASK,
675 		EMLXS_MULTI_CHANNEL,
676 		{0x41, 0x43, 0xC0, 0},
677 		{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0},
678 		{0x41, 0x43, 0},
679 		{0x41, 0x43, 0},
680 		{0},
681 		{0},
682 		{0},
683 		{0x40, 0},
684 		{0}, /* T20 */
685 	},
686 
687 	/* Pegasus */
688 	{
689 		LP9802,
690 		PCI_VENDOR_ID_EMULEX,
691 		PCI_DEVICE_ID_PEGASUS,
692 		PCI_SSDID_LP9802,
693 		"LP9802",
694 		"Emulex LP9802 2Gb 1-port PCI-X FC HBA",
695 		"Emulex",
696 		EMLXS_INTX_SUPPORTED,
697 		EMLXS_PEGASUS_CHIP,
698 		FW_NOT_PROVIDED,
699 		EMLXS_INTR_LIMIT1,
700 		EMLXS_SLI2_MASK,
701 		EMLXS_SINGLE_CHANNEL,
702 		{0x63, 0xE0, 0},
703 		{0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0},
704 		{0x63, 0},
705 		{0x63, 0},
706 		{0},
707 		{0x63, 0},
708 		{0},
709 		{0x60, 0},
710 		{0}, /* T20 */
711 	},
712 
713 	/* Pegasus DC */
714 	/* !! Must always follow the single channel entry in list */
715 	{
716 		LP9802DC,
717 		PCI_VENDOR_ID_EMULEX,
718 		PCI_DEVICE_ID_PEGASUS,
719 		PCI_SSDID_LP9802DC,
720 		"LP9802DC",
721 		"Emulex LP9802DC 2Gb 2-port PCI-X FC HBA",
722 		"Emulex",
723 		EMLXS_INTX_SUPPORTED,
724 		EMLXS_PEGASUS_CHIP,
725 		FW_NOT_PROVIDED,
726 		EMLXS_INTR_LIMIT1,
727 		EMLXS_SLI2_MASK,
728 		EMLXS_MULTI_CHANNEL,
729 		{0x61, 0xE0, 0},
730 		{0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0},
731 		{0x61, 0},
732 		{0x61, 0},
733 		{0},
734 		{0x61, 0},
735 		{0},
736 		{0x60, 0},
737 		{0}, /* T20 */
738 	},
739 
740 	/* Thor */
741 	{
742 		LP10000,
743 		PCI_VENDOR_ID_EMULEX,
744 		PCI_DEVICE_ID_THOR,
745 		PCI_SSDID_LP10000,
746 		"LP10000",
747 		"Emulex LP10000 2Gb 1-port PCI-X FC HBA",
748 		"Emulex",
749 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
750 		EMLXS_THOR_CHIP,
751 		LP10000_FW,
752 		EMLXS_INTR_LIMIT1,
753 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
754 		EMLXS_SINGLE_CHANNEL,
755 		{0x81, 0x83, 0x88, 0},
756 		{0x81, 0x82, 0x83, 0x85, 0x86, 0x87, 0},
757 		{0x81, 0x83, 0},
758 		{0x81, 0x83, 0},
759 		{0},
760 		{0x81, 0x83, 0},
761 		{0},
762 		{0x80, 0},
763 		{0}, /* T20 */
764 	},
765 
766 	/* Thor DC */
767 	/* !! Must always follow the single channel entry in list */
768 	{
769 		LP10000DC,
770 		PCI_VENDOR_ID_EMULEX,
771 		PCI_DEVICE_ID_THOR,
772 		PCI_SSDID_LP10000DC,
773 		"LP10000DC",
774 		"Emulex LP10000DC 2Gb 2-port PCI-X FC HBA",
775 		"Emulex",
776 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
777 		EMLXS_THOR_CHIP,
778 		LP10000_FW,
779 		EMLXS_INTR_LIMIT1,
780 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
781 		EMLXS_MULTI_CHANNEL,
782 		{0x81, 0x83, 0x88, 0},
783 		{0x81, 0x82, 0x83, 0x85, 0x86, 0x87, 0},
784 		{0x81, 0x83, 0},
785 		{0x81, 0x83, 0},
786 		{0},
787 		{0x81, 0x83, 0},
788 		{0},
789 		{0x80, 0},
790 		{0}, /* T20 */
791 	},
792 
793 	/* Thor DC express */
794 	/* !! Must always follow the single channel entry in list */
795 	{
796 		LP10000ExDC,
797 		PCI_VENDOR_ID_EMULEX,
798 		PCI_DEVICE_ID_THOR,
799 		PCI_SSDID_LP10000ExDC,
800 		"LP10000ExDC",
801 		"Emulex LP10000ExDC 2Gb 2-port PCIe FC HBA",
802 		"Emulex",
803 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
804 		EMLXS_THOR_CHIP,
805 		LP10000_FW,
806 		EMLXS_INTR_LIMIT1,
807 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
808 		EMLXS_MULTI_CHANNEL,
809 		{0x81, 0x83, 0x88, 0},
810 		{0x81, 0x82, 0x83, 0x85, 0x86, 0x87, 0},
811 		{0x81, 0x83, 0},
812 		{0x81, 0x83, 0},
813 		{0},
814 		{0x81, 0x83, 0},
815 		{0},
816 		{0x80, 0},
817 		{0}, /* T20 */
818 	},
819 
820 	/* Thor (Oracle Rainbow-E1) */
821 	{
822 		LP10000_O,
823 		PCI_VENDOR_ID_EMULEX,
824 		PCI_DEVICE_ID_THOR_O,
825 		PCI_SSDID_LP10000_O,
826 		"LP10000-S",
827 		"Emulex LP10000-S 2Gb 1-port PCI-X FC HBA",
828 		"Emulex",
829 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
830 			EMLXS_MSI_SUPPORTED,
831 		EMLXS_THOR_CHIP,
832 		LP10000_FW,
833 		EMLXS_INTR_LIMIT1,
834 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
835 		EMLXS_SINGLE_CHANNEL,
836 		{0x83, 0x88, 0},
837 		{0x82, 0x84, 0},
838 		{0x83, 0},
839 		{0x83, 0},
840 		{0},
841 		{0x83, 0},
842 		{0},
843 		{0x80, 0},
844 		{0}, /* T20 */
845 	},
846 
847 	/* Thor DC (Oracle Rainbow-E2) */
848 	/* !! Must always follow the single channel entry in list */
849 	{
850 		LP10000DC_O,
851 		PCI_VENDOR_ID_EMULEX,
852 		PCI_DEVICE_ID_THOR_O,
853 		PCI_SSDID_LP10000DC_O,
854 		"LP10000DC-S",
855 		"Emulex LP10000DC-S 2Gb 2-port PCI-X FC HBA",
856 		"Emulex",
857 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
858 			EMLXS_MSI_SUPPORTED,
859 		EMLXS_THOR_CHIP,
860 		LP10000_FW,
861 		EMLXS_INTR_LIMIT1,
862 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
863 		EMLXS_MULTI_CHANNEL,
864 		{0x83, 0x88, 0},
865 		{0x82, 0x84, 0},
866 		{0x83, 0},
867 		{0x83, 0},
868 		{0},
869 		{0x83, 0},
870 		{0},
871 		{0x80, 0},
872 		{0}, /* T20 */
873 	},
874 
875 	/* Thor mid-range (MiniThor) */
876 	{
877 		BLADE_2G,
878 		PCI_VENDOR_ID_EMULEX,
879 		PCI_DEVICE_ID_THOR_BLADE,
880 		PCI_SSDID_BLADE_2G,
881 		"2G Blade Adapter",
882 		"Emulex 2G 2-port Blade PCI-X FC HBA",
883 		"Emulex",
884 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
885 		EMLXS_THOR_CHIP,
886 		FW_NOT_PROVIDED,
887 		EMLXS_INTR_LIMIT1,
888 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
889 		EMLXS_MULTI_CHANNEL,
890 		{0x98, 0},
891 		{0x91, 0x92, 0x93, 0x95, 0x96, 0x97, 0},
892 		{0x91, 0},
893 		{0x91, 0},
894 		{0},
895 		{0x91, 0},
896 		{0},
897 		{0x90, 0},
898 		{0}, /* T20 */
899 	},
900 
901 	/* Helios */
902 	{
903 		LP11000,
904 		PCI_VENDOR_ID_EMULEX,
905 		PCI_DEVICE_ID_HELIOS,
906 		PCI_SSDID_LP11000,
907 		"LP11000",
908 		"Emulex LP11000 4Gb 1-port PCI-X2 FC HBA",
909 		"Emulex",
910 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
911 		EMLXS_HELIOS_CHIP,
912 		LP11000_FW,
913 		EMLXS_INTR_LIMIT1,
914 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
915 		EMLXS_SINGLE_CHANNEL,
916 		{0xC3, 0xC8, 0},
917 		{0xC1, 0xC2, 0xC3, 0xC5, 0xC6, 0xC7, 0},
918 		{0xC3, 0},
919 		{0xC3, 0},
920 		{0},
921 		{0xC3, 0},
922 		{0},
923 		{0xC0, 0},
924 		{0}, /* T20 */
925 	},
926 
927 	/* Helios DC */
928 	/* !! Must always follow the single channel entry in list */
929 	{
930 		LP11002,
931 		PCI_VENDOR_ID_EMULEX,
932 		PCI_DEVICE_ID_HELIOS,
933 		PCI_SSDID_LP11002,
934 		"LP11002",
935 		"Emulex LP11002 4Gb 2-port PCI-X2 FC HBA",
936 		"Emulex",
937 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
938 		EMLXS_HELIOS_CHIP,
939 		LP11002_FW,
940 		EMLXS_INTR_LIMIT1,
941 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
942 		EMLXS_MULTI_CHANNEL,
943 		{0xC1, 0xC8, 0},
944 		{0xC1, 0xC2, 0xC3, 0xC5, 0xC6, 0xC7, 0},
945 		{0xC1, 0},
946 		{0xC1, 0},
947 		{0},
948 		{0xC1, 0},
949 		{0},
950 		{0xC0, 0},
951 		{0}, /* T20 */
952 	},
953 
954 	/* Helios (Oracle Pyramid-E1) */
955 	{
956 		LP11000_O,
957 		PCI_VENDOR_ID_EMULEX,
958 		PCI_DEVICE_ID_HELIOS_O,
959 		PCI_SSDID_LP11000_O,
960 		"LP11000-S",
961 		"Emulex LP11000-S 4Gb 1-port PCI-X2 FC HBA",
962 		"Emulex",
963 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
964 			EMLXS_MSI_SUPPORTED,
965 		EMLXS_HELIOS_CHIP,
966 		LP11000_FW,
967 		EMLXS_INTR_LIMIT1,
968 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
969 		EMLXS_SINGLE_CHANNEL,
970 		{0xC3, 0xC8, 0},
971 		{0xC4, 0},
972 		{0xC3, 0},
973 		{0xC3, 0},
974 		{0},
975 		{0xC3, 0},
976 		{0},
977 		{0xC0, 0},
978 		{0}, /* T20 */
979 	},
980 
981 	/* Helios DC (Oracle Pyramid-E2) */
982 	{
983 		LP11002_O,
984 		PCI_VENDOR_ID_EMULEX,
985 		PCI_DEVICE_ID_HELIOS_O,
986 		PCI_SSDID_LP11002_O,
987 		"LP11002-S",
988 		"Emulex LP11002-S 4Gb 2-port PCI-X2 FC HBA",
989 		"Emulex",
990 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
991 			EMLXS_MSI_SUPPORTED,
992 		EMLXS_HELIOS_CHIP,
993 		LP11002_FW,
994 		EMLXS_INTR_LIMIT1,
995 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
996 		EMLXS_MULTI_CHANNEL,
997 		{0xC1, 0xC8, 0},
998 		{0xC4, 0},
999 		{0xC1, 0},
1000 		{0xC1, 0},
1001 		{0},
1002 		{0xC1, 0},
1003 		{0},
1004 		{0xC0, 0},
1005 		{0}, /* T20 */
1006 	},
1007 
1008 	/* Helios Enterprise (Spare) */
1009 	{
1010 		LP11000_SP,
1011 		PCI_VENDOR_ID_EMULEX,
1012 		PCI_DEVICE_ID_LP11000_SP,
1013 		PCI_SSDID_LP11000_SP,
1014 		"LP11000",
1015 		"Emulex LP11000 4Gb 1-port PCI-X2 FC HBA",
1016 		"Emulex",
1017 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
1018 		EMLXS_HELIOS_CHIP,
1019 		LP11000_FW,
1020 		EMLXS_INTR_LIMIT1,
1021 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1022 		EMLXS_SINGLE_CHANNEL,
1023 		{0xC3, 0xC8, 0},
1024 		{0xC1, 0xC2, 0xC3, 0xC5, 0xC6, 0xC7, 0},
1025 		{0xC3, 0},
1026 		{0xC3, 0},
1027 		{0},
1028 		{0xC3, 0},
1029 		{0},
1030 		{0xC0, 0},
1031 		{0}, /* T20 */
1032 	},
1033 
1034 	/* Helios DC Enterprise (Spare) */
1035 	{
1036 		LP11002_SP,
1037 		PCI_VENDOR_ID_EMULEX,
1038 		PCI_DEVICE_ID_LP11002_SP,
1039 		PCI_SSDID_LP11002_SP,
1040 		"LP11002",
1041 		"Emulex LP11002 4Gb 2-port PCI-X2 FC HBA",
1042 		"Emulex",
1043 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
1044 		EMLXS_HELIOS_CHIP,
1045 		LP11002_FW,
1046 		EMLXS_INTR_LIMIT1,
1047 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1048 		EMLXS_MULTI_CHANNEL,
1049 		{0xC1, 0xC8, 0},
1050 		{0xC1, 0xC2, 0xC3, 0xC5, 0xC6, 0xC7, 0},
1051 		{0xC1, 0},
1052 		{0xC1, 0},
1053 		{0},
1054 		{0xC1, 0},
1055 		{0},
1056 		{0xC0, 0},
1057 		{0}, /* T20 */
1058 	},
1059 
1060 	/* Zephyr */
1061 	{
1062 		LPe11000,
1063 		PCI_VENDOR_ID_EMULEX,
1064 		PCI_DEVICE_ID_ZEPHYR,
1065 		PCI_SSDID_LPe11000,
1066 		"LPe11000",
1067 		"Emulex LPe11000 4Gb 1-port PCIe FC HBA",
1068 		"Emulex",
1069 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
1070 		EMLXS_ZEPHYR_CHIP,
1071 		LPe11000_FW,
1072 		EMLXS_INTR_NO_LIMIT,
1073 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1074 		EMLXS_SINGLE_CHANNEL,
1075 		{0xE3, 0xE8, 0},
1076 		{0xE1, 0xE2, 0xE3, 0xE5, 0xE6, 0xE7, 0},
1077 		{0xE3, 0},
1078 		{0xE3, 0},
1079 		{0},
1080 		{0xE3, 0},
1081 		{0},
1082 		{0xE0, 0},
1083 		{0}, /* T20 */
1084 	},
1085 
1086 	/* Zephyr */
1087 	/* !! Must always follow the single channel entry in list */
1088 	{
1089 		LPe1100X,
1090 		PCI_VENDOR_ID_EMULEX,
1091 		PCI_DEVICE_ID_ZEPHYR,
1092 		PCI_SSDID_LPe1100X,
1093 		"LPe11000",
1094 		"Emulex LPe11000 4Gb Multi-port PCIe FC HBA",
1095 		"Emulex",
1096 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
1097 		EMLXS_ZEPHYR_CHIP,
1098 		LPe11002_FW,
1099 		EMLXS_INTR_NO_LIMIT,
1100 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1101 		EMLXS_MULTI_CHANNEL,
1102 		{0xE1, 0xE8, 0},
1103 		{0xE1, 0xE2, 0xE3, 0xE5, 0xE6, 0xE7, 0},
1104 		{0xE1, 0},
1105 		{0xE1, 0},
1106 		{0},
1107 		{0xE1, 0},
1108 		{0},
1109 		{0xE0, 0},
1110 		{0}, /* T20 */
1111 	},
1112 
1113 	/* Zephyr Hornet */
1114 	{
1115 		LP21000,
1116 		PCI_VENDOR_ID_EMULEX,
1117 		PCI_DEVICE_ID_HORNET,
1118 		PCI_SSDID_LP21000,
1119 		"LP21000",
1120 		"Emulex LP21000 10GE 1-port PCIe FCoE HBA",
1121 		"Emulex",
1122 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
1123 		EMLXS_ZEPHYR_CHIP,
1124 		FW_NOT_PROVIDED,
1125 		EMLXS_INTR_NO_LIMIT,
1126 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1127 		EMLXS_SINGLE_CHANNEL,
1128 		{0x50, 0},
1129 		{0x59, 0x5A, 0x5B, 0x5D, 0x5E, 0x5F, 0},
1130 		{0},
1131 		{0x53, 0x59, 0},
1132 		{0},
1133 		{0x53, 0x59, 0},
1134 		{0},
1135 		{0x58, 0},
1136 		{0}, /* T20 */
1137 	},
1138 
1139 	/* Zephyr Hornet DC */
1140 	/* !! Must always follow the single channel entry in list */
1141 	{
1142 		LP21002,
1143 		PCI_VENDOR_ID_EMULEX,
1144 		PCI_DEVICE_ID_HORNET,
1145 		PCI_SSDID_LP21002,
1146 		"LP21002",
1147 		"Emulex LP21002 10GE 2-port PCIe FCoE HBA",
1148 		"Emulex",
1149 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED,
1150 		EMLXS_ZEPHYR_CHIP,
1151 		FW_NOT_PROVIDED,
1152 		EMLXS_INTR_NO_LIMIT,
1153 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1154 		EMLXS_MULTI_CHANNEL,
1155 		{0x50, 0},
1156 		{0x59, 0x5A, 0x5B, 0x5D, 0x5E, 0x5F, 0},
1157 		{0},
1158 		{0x53, 0x59, 0},
1159 		{0},
1160 		{0x53, 0x59, 0},
1161 		{0},
1162 		{0x58, 0},
1163 		{0}, /* T20 */
1164 	},
1165 
1166 	/* Zephyr (Oracle Summit-E1) */
1167 	{
1168 		LPe11000_O,
1169 		PCI_VENDOR_ID_EMULEX,
1170 		PCI_DEVICE_ID_ZEPHYR_O,
1171 		PCI_SSDID_LPe11000_O,
1172 		"LPe11000-S",
1173 		"Emulex LPe11000-S 4Gb 1-port PCIe FC HBA",
1174 		"Emulex",
1175 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1176 			EMLXS_MSI_SUPPORTED,
1177 		EMLXS_ZEPHYR_CHIP,
1178 		LPe11000_FW,
1179 		EMLXS_INTR_NO_LIMIT,
1180 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1181 		EMLXS_SINGLE_CHANNEL,
1182 		{0xE3, 0xE8, 0},
1183 		{0xE4, 0},
1184 		{0xE3, 0},
1185 		{0xE3, 0},
1186 		{0},
1187 		{0xE3, 0},
1188 		{0},
1189 		{0xE0, 0},
1190 		{0}, /* T20 */
1191 	},
1192 
1193 	/* Zephyr DC (Oracle Summit-E2) */
1194 	/* !! Must always follow the single channel entry in list */
1195 	{
1196 		LPe11002_O,
1197 		PCI_VENDOR_ID_EMULEX,
1198 		PCI_DEVICE_ID_ZEPHYR_O,
1199 		PCI_SSDID_LPe11002_O,
1200 		"LPe11002-S",
1201 		"Emulex LPe11002-S 4Gb 2-port PCIe FC HBA",
1202 		"Emulex",
1203 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1204 			EMLXS_MSI_SUPPORTED,
1205 		EMLXS_ZEPHYR_CHIP,
1206 		LPe11002_FW,
1207 		EMLXS_INTR_NO_LIMIT,
1208 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1209 		EMLXS_MULTI_CHANNEL,
1210 		{0xE1, 0xE8, 0},
1211 		{0xE4, 0},
1212 		{0xE1, 0},
1213 		{0xE1, 0},
1214 		{0},
1215 		{0xE1, 0},
1216 		{0},
1217 		{0xE0, 0},
1218 		{0}, /* T20 */
1219 	},
1220 
1221 	/* Zephyr NEM (Oracle Janus) */
1222 	/* !! Must always follow the single channel entry in list */
1223 	{
1224 		LPe11020_O,
1225 		PCI_VENDOR_ID_EMULEX,
1226 		PCI_DEVICE_ID_ZEPHYR_O,
1227 		PCI_SSDID_LPe11020_O,
1228 		"LPe11020-S",
1229 		"Emulex LPe11020-S 4Gb 20-port PCIe FC HBA",
1230 		"Emulex",
1231 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1232 			EMLXS_MSI_SUPPORTED,
1233 		EMLXS_ZEPHYR_CHIP,
1234 		LPe11002_FW,
1235 		EMLXS_INTR_NO_LIMIT,
1236 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1237 		EMLXS_MULTI_CHANNEL,
1238 		{0xE1, 0xE8, 0},
1239 		{0xE4, 0},
1240 		{0xE1, 0},
1241 		{0xE1, 0},
1242 		{0},
1243 		{0xE1, 0},
1244 		{0},
1245 		{0xE0, 0},
1246 		{0}, /* T20 */
1247 	},
1248 
1249 	/* Zephyr Express Module (Oracle TitanE) */
1250 	/* !! Must always follow the single channel entry in list */
1251 	{
1252 		LPem11002_O,
1253 		PCI_VENDOR_ID_EMULEX,
1254 		PCI_DEVICE_ID_ZEPHYR_O,
1255 		PCI_SSDID_LPem11002_O,
1256 		"LPem11002-S",
1257 		"Emulex LPem11002-S 4Gb 2-port PCIe FC HBA",
1258 		"Emulex",
1259 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1260 			EMLXS_MSI_SUPPORTED,
1261 		EMLXS_ZEPHYR_CHIP,
1262 		LPe11002_FW,
1263 		EMLXS_INTR_NO_LIMIT,
1264 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1265 		EMLXS_MULTI_CHANNEL,
1266 		{0xE1, 0xE8, 0},
1267 		{0xE4, 0},
1268 		{0xE1, 0},
1269 		{0xE1, 0},
1270 		{0},
1271 		{0xE1, 0},
1272 		{0},
1273 		{0xE0, 0},
1274 		{0}, /* T20 */
1275 	},
1276 
1277 	/* Zephyr Express Module (Oracle Elara) */
1278 	/* !! Must always follow the single channel entry in list */
1279 	{
1280 		LPem11002E_O,
1281 		PCI_VENDOR_ID_EMULEX,
1282 		PCI_DEVICE_ID_ZEPHYR_O,
1283 		PCI_SSDID_LPem11002E_O,
1284 		"LPem11002E-S",
1285 		"Emulex LPem11002E-S 4Gb 2-port FC & 2-port 1GE PCIe HBA",
1286 		"Emulex",
1287 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1288 			EMLXS_MSI_SUPPORTED,
1289 		EMLXS_ZEPHYR_CHIP,
1290 		LPe11002_FW,
1291 		EMLXS_INTR_NO_LIMIT,
1292 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1293 		EMLXS_MULTI_CHANNEL,
1294 		{0xE1, 0xE8, 0},
1295 		{0xE4, 0},
1296 		{0xE1, 0},
1297 		{0xE1, 0},
1298 		{0},
1299 		{0xE1, 0},
1300 		{0},
1301 		{0xE0, 0},
1302 		{0}, /* T20 */
1303 	},
1304 
1305 	/* Zephyr AMC (Oracle Helene/Dione) */
1306 	/* !! Must always follow the single channel entry in list */
1307 	{
1308 		LPeA11002_O,
1309 		PCI_VENDOR_ID_EMULEX,
1310 		PCI_DEVICE_ID_ZEPHYR_O,
1311 		PCI_SSDID_LPeA11002_O,
1312 		"LPeA11002-S",
1313 		"Emulex LPeA11002-S 4Gb 2-port PCIe FC HBA",
1314 		"Emulex",
1315 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1316 			EMLXS_MSI_SUPPORTED,
1317 		EMLXS_ZEPHYR_CHIP,
1318 		LPe11002_FW,
1319 		EMLXS_INTR_NO_LIMIT,
1320 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1321 		EMLXS_MULTI_CHANNEL,
1322 		{0xE1, 0xE8, 0},
1323 		{0xE4, 0},
1324 		{0xE1, 0},
1325 		{0xE1, 0},
1326 		{0},
1327 		{0xE1, 0},
1328 		{0},
1329 		{0xE0, 0},
1330 		{0}, /* T20 */
1331 	},
1332 
1333 	/* Saturn */
1334 	{
1335 		LPe12000,
1336 		PCI_VENDOR_ID_EMULEX,
1337 		PCI_DEVICE_ID_SATURN,
1338 		PCI_SSDID_LPe12000,
1339 		"LPe12000",
1340 		"Emulex LPe12000 8Gb 1-port PCIe FC HBA",
1341 		"Emulex",
1342 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1343 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1344 		EMLXS_SATURN_CHIP,
1345 		LPe12000_FW,
1346 		EMLXS_INTR_NO_LIMIT,
1347 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1348 		EMLXS_SINGLE_CHANNEL,
1349 		{0x78, 0},
1350 		{0x79, 0x7A, 0x7B, 0x7D, 0x7E, 0x7F, 0},
1351 		{0},
1352 		{0x73, 0x79, 0},
1353 		{0},
1354 		{0x73, 0x79, 0},
1355 		{0},
1356 		{0x78, 0},
1357 		{0}, /* T20 */
1358 	},
1359 
1360 	/* Saturn DC */
1361 	/* !! Must always follow the single channel entry in list */
1362 	{
1363 		LPe12002,
1364 		PCI_VENDOR_ID_EMULEX,
1365 		PCI_DEVICE_ID_SATURN,
1366 		PCI_SSDID_LPe12002,
1367 		"LPe12002",
1368 		"Emulex LPe12002 8Gb 2-port PCIe FC HBA",
1369 		"Emulex",
1370 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1371 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1372 		EMLXS_SATURN_CHIP,
1373 		LPe12000_FW,
1374 		EMLXS_INTR_NO_LIMIT,
1375 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1376 		EMLXS_MULTI_CHANNEL,
1377 		{0x78, 0},
1378 		{0x79, 0x7A, 0x7B, 0x7D, 0x7E, 0x7F, 0},
1379 		{0},
1380 		{0x73, 0x79, 0},
1381 		{0},
1382 		{0x73, 0x79, 0},
1383 		{0},
1384 		{0x78, 0},
1385 		{0}, /* T20 */
1386 	},
1387 
1388 	/* Saturn (Oracle) */
1389 	{
1390 		LPe12000_O,
1391 		PCI_VENDOR_ID_EMULEX,
1392 		PCI_DEVICE_ID_SATURN_O,
1393 		PCI_SSDID_LPe12000_O,
1394 		"LPe12000-S",
1395 		"Emulex LPe12000-S 8Gb 1-port PCIe FC HBA",
1396 		"Emulex",
1397 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1398 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1399 			EMLXS_E2E_SUPPORTED,
1400 		EMLXS_SATURN_CHIP,
1401 		LPe12000_FW,
1402 		EMLXS_INTR_NO_LIMIT,
1403 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1404 		EMLXS_SINGLE_CHANNEL,
1405 		{0x78, 0},
1406 		{0x7C, 0},
1407 		{0},
1408 		{0x73, 0},
1409 		{0},
1410 		{0x73, 0},
1411 		{0},
1412 		{0x78, 0},
1413 		{0}, /* T20 */
1414 	},
1415 
1416 	/* Saturn DC (Oracle) */
1417 	{
1418 		LPe12002_O,
1419 		PCI_VENDOR_ID_EMULEX,
1420 		PCI_DEVICE_ID_SATURN_O,
1421 		PCI_SSDID_LPe12002_O,
1422 		"LPe12002-S",
1423 		"Emulex LPe12002-S 8Gb 2-port PCIe FC HBA",
1424 		"Emulex",
1425 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1426 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1427 			EMLXS_E2E_SUPPORTED,
1428 		EMLXS_SATURN_CHIP,
1429 		LPe12000_FW,
1430 		EMLXS_INTR_NO_LIMIT,
1431 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1432 		EMLXS_MULTI_CHANNEL,
1433 		{0x78, 0},
1434 		{0x7C, 0},
1435 		{0},
1436 		{0x73, 0},
1437 		{0},
1438 		{0x73, 0},
1439 		{0},
1440 		{0x78, 0},
1441 		{0}, /* T20 */
1442 	},
1443 
1444 	/* Saturn Express Module (Oracle) */
1445 	{
1446 		LPem12002_O,
1447 		PCI_VENDOR_ID_EMULEX,
1448 		PCI_DEVICE_ID_SATURN_O,
1449 		PCI_SSDID_LPem12002_O,
1450 		"LPem12002-S",
1451 		"Emulex LPem12002-S 8Gb 2-port PCIe FC HBA",
1452 		"Emulex",
1453 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1454 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1455 			EMLXS_E2E_SUPPORTED,
1456 		EMLXS_SATURN_CHIP,
1457 		LPe12000_FW,
1458 		EMLXS_INTR_NO_LIMIT,
1459 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1460 		EMLXS_MULTI_CHANNEL,
1461 		{0x78, 0},
1462 		{0x7C, 0},
1463 		{0},
1464 		{0x73, 0},
1465 		{0},
1466 		{0x73, 0},
1467 		{0},
1468 		{0x78, 0},
1469 		{0}, /* T20 */
1470 	},
1471 
1472 	/* Saturn Express Module (Oracle Metis) */
1473 	{
1474 		LPem12002E_O,
1475 		PCI_VENDOR_ID_EMULEX,
1476 		PCI_DEVICE_ID_SATURN_O,
1477 		PCI_SSDID_LPem12002E_O,
1478 		"LPem12002E-S",
1479 		"Emulex LPem12002E-S 8Gb 2-port PCIe FC HBA",
1480 		"Emulex",
1481 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1482 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1483 			EMLXS_E2E_SUPPORTED,
1484 		EMLXS_SATURN_CHIP,
1485 		LPe12000_FW,
1486 		EMLXS_INTR_NO_LIMIT,
1487 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1488 		EMLXS_MULTI_CHANNEL,
1489 		{0x78, 0},
1490 		{0x7C, 0},
1491 		{0},
1492 		{0x73, 0},
1493 		{0},
1494 		{0x73, 0},
1495 		{0},
1496 		{0x78, 0},
1497 		{0}, /* T20 */
1498 	},
1499 
1500 	/* Saturn */
1501 	{
1502 		LPe12000_SP,
1503 		PCI_VENDOR_ID_EMULEX,
1504 		PCI_DEVICE_ID_LPe12000_SP,
1505 		PCI_SSDID_LPe12000_SP,
1506 		"LPe12000",
1507 		"Emulex LPe12000 8Gb 1-port PCIe FC HBA",
1508 		"Emulex",
1509 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1510 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1511 		EMLXS_SATURN_CHIP,
1512 		LPe12000_FW,
1513 		EMLXS_INTR_NO_LIMIT,
1514 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1515 		EMLXS_SINGLE_CHANNEL,
1516 		{0x78, 0},
1517 		{0x79, 0x7A, 0x7B, 0x7D, 0x7E, 0x7F, 0},
1518 		{0},
1519 		{0x73, 0},
1520 		{0},
1521 		{0x73, 0},
1522 		{0},
1523 		{0x78, 0},
1524 		{0}, /* T20 */
1525 	},
1526 
1527 	/* Saturn DC */
1528 	{
1529 		LPe12002_SP,
1530 		PCI_VENDOR_ID_EMULEX,
1531 		PCI_DEVICE_ID_LPe12002_SP,
1532 		PCI_SSDID_LPe12002_SP,
1533 		"LPe12002",
1534 		"Emulex LPe12002 8Gb 2-port PCIe FC HBA",
1535 		"Emulex",
1536 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1537 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1538 		EMLXS_SATURN_CHIP,
1539 		LPe12000_FW,
1540 		EMLXS_INTR_NO_LIMIT,
1541 		EMLXS_SLI2_MASK | EMLXS_SLI3_MASK,
1542 		EMLXS_MULTI_CHANNEL,
1543 		{0x78, 0},
1544 		{0x79, 0x7A, 0x7B, 0x7D, 0x7E, 0x7F, 0},
1545 		{0},
1546 		{0x73, 0},
1547 		{0},
1548 		{0x73, 0},
1549 		{0},
1550 		{0x78, 0},
1551 		{0}, /* T20 */
1552 	},
1553 
1554 	/* BE2 (Tigershark) */
1555 	{
1556 		OCe10101,
1557 		PCI_VENDOR_ID_OCE,
1558 		PCI_DEVICE_ID_BE2,
1559 		PCI_SSDID_OCe10101,
1560 		"OCe10101",
1561 		"Emulex OneConnect OCe10101 10Gb 1-port FCoE HBA",
1562 		"Emulex",
1563 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1564 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1565 		EMLXS_BE2_CHIP,
1566 		FW_NOT_PROVIDED,
1567 		EMLXS_INTR_NO_LIMIT,
1568 		EMLXS_SLI4_MASK,
1569 		EMLXS_SINGLE_CHANNEL,
1570 		NULL_PROG_TYPES,
1571 	},
1572 
1573 	/* BE2 DC (Tigershark) */
1574 	/* !! Must always follow the single channel entry in list */
1575 	{
1576 		OCe10102,
1577 		PCI_VENDOR_ID_OCE,
1578 		PCI_DEVICE_ID_BE2,
1579 		PCI_SSDID_OCe10102,
1580 		"OCe10102",
1581 		"Emulex OneConnect OCe10102 10Gb 2-port FCoE HBA",
1582 		"Emulex",
1583 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1584 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1585 		EMLXS_BE2_CHIP,
1586 		FW_NOT_PROVIDED,
1587 		EMLXS_INTR_NO_LIMIT,
1588 		EMLXS_SLI4_MASK,
1589 		EMLXS_MULTI_CHANNEL,
1590 		NULL_PROG_TYPES,
1591 	},
1592 
1593 	/* BE3 (TomCat) */
1594 	{
1595 		OCe11101,
1596 		PCI_VENDOR_ID_OCE,
1597 		PCI_DEVICE_ID_BE3,
1598 		PCI_SSDID_OCe11101,
1599 		"OCe11101",
1600 		"Emulex OneConnect OCe11101 10Gb 1-port FCoE HBA",
1601 		"Emulex",
1602 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1603 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1604 		EMLXS_BE3_CHIP,
1605 		FW_NOT_PROVIDED,
1606 		EMLXS_INTR_NO_LIMIT,
1607 		EMLXS_SLI4_MASK,
1608 		EMLXS_SINGLE_CHANNEL,
1609 		NULL_PROG_TYPES,
1610 	},
1611 
1612 	/* BE3 DC (Tomcat) */
1613 	/* !! Must always follow the single channel entry in list */
1614 	{
1615 		OCe11102,
1616 		PCI_VENDOR_ID_OCE,
1617 		PCI_DEVICE_ID_BE3,
1618 		PCI_SSDID_OCe11102,
1619 		"OCe11102",
1620 		"Emulex OneConnect OCe11102 10Gb 2-port FCoE HBA",
1621 		"Emulex",
1622 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1623 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1624 		EMLXS_BE3_CHIP,
1625 		FW_NOT_PROVIDED,
1626 		EMLXS_INTR_NO_LIMIT,
1627 		EMLXS_SLI4_MASK,
1628 		EMLXS_MULTI_CHANNEL,
1629 		NULL_PROG_TYPES,
1630 	},
1631 
1632 	/* Lancer FC (Generic) */
1633 	{
1634 		LPe16000,
1635 		PCI_VENDOR_ID_EMULEX,
1636 		PCI_DEVICE_ID_LANCER_FC,
1637 		PCI_SSDID_LPe16000,
1638 		"LPe16000",
1639 		"Emulex LightPulse LPe16000 16Gb 1-port FC HBA",
1640 		"Emulex",
1641 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1642 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1643 		EMLXS_LANCER_CHIP,
1644 		FW_NOT_PROVIDED,
1645 		EMLXS_INTR_NO_LIMIT,
1646 		EMLXS_SLI4_MASK,
1647 		EMLXS_SINGLE_CHANNEL,
1648 		NULL_PROG_TYPES,
1649 	},
1650 
1651 	/* Lancer FC (Generic Multi-Channel) */
1652 	/* !! Must always follow the single channel entry in list */
1653 	{
1654 		LPe1600X,
1655 		PCI_VENDOR_ID_EMULEX,
1656 		PCI_DEVICE_ID_LANCER_FC,
1657 		PCI_SSDID_LPe1600X,
1658 		"LPe16000",
1659 		"Emulex LightPulse LPe16000 16Gb Multi-port FC HBA",
1660 		"Emulex",
1661 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1662 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1663 		EMLXS_LANCER_CHIP,
1664 		FW_NOT_PROVIDED,
1665 		EMLXS_INTR_NO_LIMIT,
1666 		EMLXS_SLI4_MASK,
1667 		EMLXS_MULTI_CHANNEL,
1668 		NULL_PROG_TYPES,
1669 	},
1670 
1671 	/* Lancer FC DC Express Module (Oracle Ganymede) */
1672 	{
1673 		LPem16002_FC_O,
1674 		PCI_VENDOR_ID_EMULEX,
1675 		PCI_DEVICE_ID_LANCER_FC,
1676 		PCI_SSDID_LPem16002_FC_O,
1677 		"LPem16002-M6-O",
1678 		"Emulex LightPulse LPem16002-M6-O 16Gb 2-port FC HBA",
1679 		"Emulex",
1680 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1681 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1682 			EMLXS_E2E_SUPPORTED,
1683 		EMLXS_LANCER_CHIP,
1684 		FW_NOT_PROVIDED,
1685 		EMLXS_INTR_NO_LIMIT,
1686 		EMLXS_SLI4_MASK,
1687 		EMLXS_MULTI_CHANNEL,
1688 		NULL_PROG_TYPES,
1689 	},
1690 
1691 	/* Lancer FC DC (Oracle Ganymede) */
1692 	{
1693 		LPe16002_FC_O,
1694 		PCI_VENDOR_ID_EMULEX,
1695 		PCI_DEVICE_ID_LANCER_FC,
1696 		PCI_SSDID_LPe16002_FC_O,
1697 		"LPe16002-M6-O",
1698 		"Emulex LightPulse LPe16002-M6-O 16Gb 2-port FC HBA",
1699 		"Emulex",
1700 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
1701 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1702 			EMLXS_E2E_SUPPORTED,
1703 		EMLXS_LANCER_CHIP,
1704 		FW_NOT_PROVIDED,
1705 		EMLXS_INTR_NO_LIMIT,
1706 		EMLXS_SLI4_MASK,
1707 		EMLXS_MULTI_CHANNEL,
1708 		NULL_PROG_TYPES,
1709 	},
1710 
1711 	/* Lancer FC DC (Oracle Excluded - Spare 1) */
1712 	{
1713 		LPe16002_FC_SP1,
1714 		PCI_VENDOR_ID_EMULEX,
1715 		PCI_DEVICE_ID_LANCER_FC,
1716 		PCI_SSDID_LPe16002_FC_SP1,
1717 		"LPe16002",
1718 		"Emulex LightPulse LPe16002 16Gb 2-port FC HBA",
1719 		"Emulex",
1720 		EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
1721 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1722 			EMLXS_E2E_SUPPORTED,
1723 		EMLXS_LANCER_CHIP,
1724 		FW_NOT_PROVIDED,
1725 		EMLXS_INTR_NO_LIMIT,
1726 		EMLXS_SLI4_MASK,
1727 		EMLXS_MULTI_CHANNEL,
1728 		NULL_PROG_TYPES,
1729 	},
1730 
1731 	/* Lancer FC DC (Oracle Excluded - Spare 2) */
1732 	{
1733 		LPe16002_FC_SP2,
1734 		PCI_VENDOR_ID_EMULEX,
1735 		PCI_DEVICE_ID_LANCER_FC,
1736 		PCI_SSDID_LPe16002_FC_SP2,
1737 		"LPe16002",
1738 		"Emulex LightPulse LPe16002 16Gb 2-port FC HBA",
1739 		"Emulex",
1740 		EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
1741 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1742 			EMLXS_E2E_SUPPORTED,
1743 		EMLXS_LANCER_CHIP,
1744 		FW_NOT_PROVIDED,
1745 		EMLXS_INTR_NO_LIMIT,
1746 		EMLXS_SLI4_MASK,
1747 		EMLXS_MULTI_CHANNEL,
1748 		NULL_PROG_TYPES,
1749 	},
1750 
1751 	/* Lancer Gen6 16Gb FC Single-port, Lenovo-branded */
1752 	{
1753 		LPe31000_M6_L,
1754 		PCI_VENDOR_ID_EMULEX,
1755 		PCI_DEVICE_ID_LANCER_G6_FC,
1756 		PCI_SSDID_LPe31000_M6_L,
1757 		"LPe31000",
1758 		"PCI_SSDID_LPe31000_M6_L",
1759 		"Emulex",
1760 		EMLXS_INTX_SUPPORTED |
1761 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1762 			EMLXS_E2E_SUPPORTED,
1763 		EMLXS_LANCERG6_CHIP,
1764 		FW_NOT_PROVIDED,
1765 		EMLXS_INTR_NO_LIMIT,
1766 		EMLXS_SLI4_MASK,
1767 		EMLXS_SINGLE_CHANNEL,
1768 		NULL_PROG_TYPES,
1769 	},
1770 
1771 	/* Lancer Gen6 FC (Generic) */
1772 	{
1773 		LPe32000,
1774 		PCI_VENDOR_ID_EMULEX,
1775 		PCI_DEVICE_ID_LANCER_G6_FC,
1776 		PCI_SSDID_LPe32000,
1777 		"LPe32000",
1778 		"Emulex LightPulse LPe32000 32Gb 1-port FC HBA",
1779 		"Emulex",
1780 		EMLXS_INTX_SUPPORTED |
1781 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1782 			EMLXS_E2E_SUPPORTED,
1783 		EMLXS_LANCERG6_CHIP,
1784 		FW_NOT_PROVIDED,
1785 		EMLXS_INTR_NO_LIMIT,
1786 		EMLXS_SLI4_MASK,
1787 		EMLXS_SINGLE_CHANNEL,
1788 		NULL_PROG_TYPES,
1789 	},
1790 
1791 	/* Lancer Gen6 FC (Generic Multi-Channel) */
1792 	/* !! Must always follow the single channel entry in list */
1793 	{
1794 		LPe3200X,
1795 		PCI_VENDOR_ID_EMULEX,
1796 		PCI_DEVICE_ID_LANCER_G6_FC,
1797 		PCI_SSDID_LPe3200X,
1798 		"LPe32000",
1799 		"Emulex LightPulse LPe32000 32Gb Multi-port FC HBA",
1800 		"Emulex",
1801 		EMLXS_INTX_SUPPORTED |
1802 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1803 			EMLXS_E2E_SUPPORTED,
1804 		EMLXS_LANCERG6_CHIP,
1805 		FW_NOT_PROVIDED,
1806 		EMLXS_INTR_NO_LIMIT,
1807 		EMLXS_SLI4_MASK,
1808 		EMLXS_MULTI_CHANNEL,
1809 		NULL_PROG_TYPES,
1810 	},
1811 
1812 	/* ATTO Celerity 161E */
1813 	{
1814 		CelerityFC161E,
1815 		PCI_VENDOR_ID_ATTO,
1816 		PCI_DEVICE_ID_CLRTY_FC_161E,
1817 		PCI_SSDID_CLRTY_FC_161E,
1818 		"Celerity FC 161E",
1819 		"ATTO Celerity 161E Single-Channel FC HBA",
1820 		"ATTO Technology",
1821 		EMLXS_INTX_SUPPORTED |
1822 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1823 			EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
1824 		EMLXS_LANCER_CHIP,
1825 		FW_NOT_PROVIDED,
1826 		EMLXS_INTR_NO_LIMIT,
1827 		EMLXS_SLI4_MASK,
1828 		EMLXS_SINGLE_CHANNEL,
1829 		NULL_PROG_TYPES,
1830 	},
1831 
1832 	/* ATTO Celerity 162E */
1833 	{
1834 		CelerityFC162E,
1835 		PCI_VENDOR_ID_ATTO,
1836 		PCI_DEVICE_ID_CLRTY_FC_162E,
1837 		PCI_SSDID_CLRTY_FC_162E,
1838 		"Celerity FC 162E",
1839 		"ATTO Celerity 162E Dual-Channel FC HBA",
1840 		"ATTO Technology",
1841 		EMLXS_INTX_SUPPORTED |
1842 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1843 			EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
1844 		EMLXS_LANCER_CHIP,
1845 		FW_NOT_PROVIDED,
1846 		EMLXS_INTR_NO_LIMIT,
1847 		EMLXS_SLI4_MASK,
1848 		EMLXS_SINGLE_CHANNEL,
1849 		NULL_PROG_TYPES,
1850 	},
1851 
1852 	/* ATTO Celerity 164E */
1853 	{
1854 		CelerityFC164E,
1855 		PCI_VENDOR_ID_ATTO,
1856 		PCI_DEVICE_ID_CLRTY_FC_164E,
1857 		PCI_SSDID_CLRTY_FC_164E,
1858 		"Celerity FC 164E",
1859 		"ATTO Celerity 164E Quad-Channel FC HBA",
1860 		"ATTO Technology",
1861 		EMLXS_INTX_SUPPORTED |
1862 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1863 			EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
1864 		EMLXS_LANCER_CHIP,
1865 		FW_NOT_PROVIDED,
1866 		EMLXS_INTR_NO_LIMIT,
1867 		EMLXS_SLI4_MASK,
1868 		EMLXS_SINGLE_CHANNEL,
1869 		NULL_PROG_TYPES,
1870 	},
1871 
1872 	/* ATTO Celerity 162P */
1873 	{
1874 		CelerityFC162P,
1875 		PCI_VENDOR_ID_ATTO,
1876 		PCI_DEVICE_ID_CLRTY_FC_G6,
1877 		PCI_SSDID_CLRTY_FC_162P,
1878 		"Celerity FC 162P",
1879 		"ATTO Celerity 162P Dual-Channel FC HBA",
1880 		"ATTO Technology",
1881 		EMLXS_INTX_SUPPORTED |
1882 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1883 			EMLXS_E2E_SUPPORTED,
1884 		EMLXS_LANCERG6_CHIP,
1885 		FW_NOT_PROVIDED,
1886 		EMLXS_INTR_NO_LIMIT,
1887 		EMLXS_SLI4_MASK,
1888 		EMLXS_SINGLE_CHANNEL,
1889 		NULL_PROG_TYPES,
1890 	},
1891 
1892 	/* ATTO Celerity 164P */
1893 	{
1894 		CelerityFC164P,
1895 		PCI_VENDOR_ID_ATTO,
1896 		PCI_DEVICE_ID_CLRTY_FC_G6,
1897 		PCI_SSDID_CLRTY_FC_164P,
1898 		"Celerity FC 164P",
1899 		"ATTO Celerity 164P Quad-Channel FC HBA",
1900 		"ATTO Technology",
1901 		EMLXS_INTX_SUPPORTED |
1902 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1903 			EMLXS_E2E_SUPPORTED,
1904 		EMLXS_LANCERG6_CHIP,
1905 		FW_NOT_PROVIDED,
1906 		EMLXS_INTR_NO_LIMIT,
1907 		EMLXS_SLI4_MASK,
1908 		EMLXS_SINGLE_CHANNEL,
1909 		NULL_PROG_TYPES,
1910 	},
1911 
1912 	/* ATTO Celerity 321E */
1913 	{
1914 		CelerityFC321E,
1915 		PCI_VENDOR_ID_ATTO,
1916 		PCI_DEVICE_ID_CLRTY_FC_G6,
1917 		PCI_SSDID_CLRTY_FC_321E,
1918 		"Celerity FC 321E",
1919 		"ATTO Celerity 321E Single-Channel FC HBA",
1920 		"ATTO Technology",
1921 		EMLXS_INTX_SUPPORTED |
1922 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1923 			EMLXS_E2E_SUPPORTED,
1924 		EMLXS_LANCERG6_CHIP,
1925 		FW_NOT_PROVIDED,
1926 		EMLXS_INTR_NO_LIMIT,
1927 		EMLXS_SLI4_MASK,
1928 		EMLXS_SINGLE_CHANNEL,
1929 		NULL_PROG_TYPES,
1930 	},
1931 
1932 	/* ATTO Celerity 322E */
1933 	{
1934 		CelerityFC322E,
1935 		PCI_VENDOR_ID_ATTO,
1936 		PCI_DEVICE_ID_CLRTY_FC_G6,
1937 		PCI_SSDID_CLRTY_FC_322E,
1938 		"Celerity FC 322E",
1939 		"ATTO Celerity 322E Dual-Channel FC HBA",
1940 		"ATTO Technology",
1941 		EMLXS_INTX_SUPPORTED |
1942 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1943 			EMLXS_E2E_SUPPORTED,
1944 		EMLXS_LANCERG6_CHIP,
1945 		FW_NOT_PROVIDED,
1946 		EMLXS_INTR_NO_LIMIT,
1947 		EMLXS_SLI4_MASK,
1948 		EMLXS_SINGLE_CHANNEL,
1949 		NULL_PROG_TYPES,
1950 	},
1951 
1952 	/* Lancer FCOE (Generic) */
1953 	{
1954 		OCe15100,
1955 		PCI_VENDOR_ID_EMULEX,
1956 		PCI_DEVICE_ID_LANCER_FE,
1957 		PCI_SSDID_OCe15100,
1958 		"OCe15100",
1959 		"Emulex OneConnect OCe15100 10Gb 1-port FCoE HBA",
1960 		"Emulex",
1961 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1962 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1963 		EMLXS_LANCER_CHIP,
1964 		FW_NOT_PROVIDED,
1965 		EMLXS_INTR_NO_LIMIT,
1966 		EMLXS_SLI4_MASK,
1967 		EMLXS_SINGLE_CHANNEL,
1968 		NULL_PROG_TYPES,
1969 	},
1970 
1971 	/* Lancer FCOE (Generic Multi-Channel) */
1972 	/* !! Must always follow the single channel entry in list */
1973 	{
1974 		OCe1510X,
1975 		PCI_VENDOR_ID_EMULEX,
1976 		PCI_DEVICE_ID_LANCER_FE,
1977 		PCI_SSDID_OCe1510X,
1978 		"OCe15100",
1979 		"Emulex OneConnect OCe15100 10Gb Multi-port FCoE HBA",
1980 		"Emulex",
1981 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1982 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1983 		EMLXS_LANCER_CHIP,
1984 		FW_NOT_PROVIDED,
1985 		EMLXS_INTR_NO_LIMIT,
1986 		EMLXS_SLI4_MASK,
1987 		EMLXS_MULTI_CHANNEL,
1988 		NULL_PROG_TYPES,
1989 	},
1990 
1991 	/* Lancer FCOE DC Express Module (Oracle Ganymede) */
1992 	{
1993 		LPem16002_FE_O,
1994 		PCI_VENDOR_ID_EMULEX,
1995 		PCI_DEVICE_ID_LANCER_FE,
1996 		PCI_SSDID_LPem16002_FE_O,
1997 		"LPem16002-M6-O",
1998 		"Emulex OneConnect LPem16002-M6-O 10Gb 2-port FCoE HBA",
1999 		"Emulex",
2000 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
2001 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
2002 			EMLXS_E2E_SUPPORTED,
2003 		EMLXS_LANCER_CHIP,
2004 		FW_NOT_PROVIDED,
2005 		EMLXS_INTR_NO_LIMIT,
2006 		EMLXS_SLI4_MASK,
2007 		EMLXS_MULTI_CHANNEL,
2008 		NULL_PROG_TYPES,
2009 	},
2010 
2011 	/* Lancer FCOE DC (Oracle Ganymede) */
2012 	{
2013 		LPe16002_FE_O,
2014 		PCI_VENDOR_ID_EMULEX,
2015 		PCI_DEVICE_ID_LANCER_FE,
2016 		PCI_SSDID_LPe16002_FE_O,
2017 		"LPe16002-M6-O",
2018 		"Emulex OneConnect LPe16002-M6-O 10Gb 2-port FCoE HBA",
2019 		"Emulex",
2020 		EMLXS_ORACLE_BRANDED | EMLXS_INTX_SUPPORTED |
2021 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
2022 			EMLXS_E2E_SUPPORTED,
2023 		EMLXS_LANCER_CHIP,
2024 		FW_NOT_PROVIDED,
2025 		EMLXS_INTR_NO_LIMIT,
2026 		EMLXS_SLI4_MASK,
2027 		EMLXS_MULTI_CHANNEL,
2028 		NULL_PROG_TYPES,
2029 	},
2030 
2031 	/* Lancer FCOE DC (Oracle Excluded - Spare 1) */
2032 	{
2033 		LPe16002_FE_SP1,
2034 		PCI_VENDOR_ID_EMULEX,
2035 		PCI_DEVICE_ID_LANCER_FE,
2036 		PCI_SSDID_LPe16002_FE_SP1,
2037 		"LPe16002",
2038 		"Emulex OneConnect LPe16002 10Gb 2-port FCoE HBA",
2039 		"Emulex",
2040 		EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
2041 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
2042 			EMLXS_E2E_SUPPORTED,
2043 		EMLXS_LANCER_CHIP,
2044 		FW_NOT_PROVIDED,
2045 		EMLXS_INTR_NO_LIMIT,
2046 		EMLXS_SLI4_MASK,
2047 		EMLXS_MULTI_CHANNEL,
2048 		NULL_PROG_TYPES,
2049 	},
2050 
2051 	/* Lancer FCOE DC (Oracle Excluded - Spare 2) */
2052 	{
2053 		LPe16002_FE_SP2,
2054 		PCI_VENDOR_ID_EMULEX,
2055 		PCI_DEVICE_ID_LANCER_FE,
2056 		PCI_SSDID_LPe16002_FE_SP2,
2057 		"LPe16002",
2058 		"Emulex OneConnect LPe16002 10Gb 2-port FCoE HBA",
2059 		"Emulex",
2060 		EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
2061 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
2062 			EMLXS_E2E_SUPPORTED,
2063 		EMLXS_LANCER_CHIP,
2064 		FW_NOT_PROVIDED,
2065 		EMLXS_INTR_NO_LIMIT,
2066 		EMLXS_SLI4_MASK,
2067 		EMLXS_MULTI_CHANNEL,
2068 		NULL_PROG_TYPES,
2069 	},
2070 
2071 	/* BE4 (Skyhawk) */
2072 	{
2073 		OCe12104,
2074 		PCI_VENDOR_ID_OCE,
2075 		PCI_DEVICE_ID_BE4,
2076 		PCI_SSDID_OCe12104,
2077 		"OCe12104",
2078 		"Emulex OneConnect OCe12104 10Gb 2-port FCoE HBA",
2079 		"Emulex",
2080 		EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
2081 			EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
2082 		EMLXS_BE4_CHIP,
2083 		FW_NOT_PROVIDED,
2084 		EMLXS_INTR_NO_LIMIT,
2085 		EMLXS_SLI4_MASK,
2086 		EMLXS_MULTI_CHANNEL,
2087 		NULL_PROG_TYPES,
2088 	},
2089 	/* Prism Gen7 FC (Generic) single port */
2090 	{
2091 		LPe35000,
2092 		PCI_VENDOR_ID_EMULEX,
2093 		PCI_DEVICE_ID_PRISM_G7_FC,
2094 		PCI_SSDID_LPe35000,
2095 		"LPe35000",
2096 		"Emulex LightPulse LPe35000 64Gb 1-port FC HBA",
2097 		"Emulex",
2098 		EMLXS_INTX_SUPPORTED |
2099 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
2100 			EMLXS_E2E_SUPPORTED,
2101 		EMLXS_PRISMG7_CHIP,
2102 		FW_NOT_PROVIDED,
2103 		EMLXS_INTR_NO_LIMIT,
2104 		EMLXS_SLI4_MASK,
2105 		EMLXS_SINGLE_CHANNEL,
2106 		NULL_PROG_TYPES,
2107 	},
2108 	/* Prism Gen7 FC (Generic) dual port */
2109 	{
2110 		LPe35000,
2111 		PCI_VENDOR_ID_EMULEX,
2112 		PCI_DEVICE_ID_PRISM_G7_FC,
2113 		PCI_SSDID_LPe3500X,
2114 		"LPe3500X",
2115 		"Emulex LightPulse LPe35000 64Gb 2-port FC HBA",
2116 		"Emulex",
2117 		EMLXS_INTX_SUPPORTED |
2118 			EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
2119 			EMLXS_E2E_SUPPORTED,
2120 		EMLXS_PRISMG7_CHIP,
2121 		FW_NOT_PROVIDED,
2122 		EMLXS_INTR_NO_LIMIT,
2123 		EMLXS_SLI4_MASK,
2124 		EMLXS_MULTI_CHANNEL,
2125 		NULL_PROG_TYPES,
2126 	}
2127 };	/* emlxs_pci_model[] */
2128 
2129 int emlxs_pci_model_count =
2130 	(sizeof (emlxs_pci_model) / sizeof (emlxs_model_t));
2131 
2132 #endif	/* EMLXS_MODEL_DEF */
2133 
2134 #ifdef	__cplusplus
2135 }
2136 #endif
2137 
2138 #endif	/* _EMLXS_ADAPTERS_H */
2139