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