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