xref: /illumos-gate/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fw.h (revision 825277341c15b6b0d2c4b8b622ae7b1d2bdc0390)
1291a2b48SSukumar Swaminathan /*
2291a2b48SSukumar Swaminathan  * CDDL HEADER START
3291a2b48SSukumar Swaminathan  *
4291a2b48SSukumar Swaminathan  * The contents of this file are subject to the terms of the
5291a2b48SSukumar Swaminathan  * Common Development and Distribution License (the "License").
6291a2b48SSukumar Swaminathan  * You may not use this file except in compliance with the License.
7291a2b48SSukumar Swaminathan  *
8291a2b48SSukumar Swaminathan  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9291a2b48SSukumar Swaminathan  * or http://www.opensolaris.org/os/licensing.
10291a2b48SSukumar Swaminathan  * See the License for the specific language governing permissions
11291a2b48SSukumar Swaminathan  * and limitations under the License.
12291a2b48SSukumar Swaminathan  *
13291a2b48SSukumar Swaminathan  * When distributing Covered Code, include this CDDL HEADER in each
14291a2b48SSukumar Swaminathan  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15291a2b48SSukumar Swaminathan  * If applicable, add the following below this CDDL HEADER, with the
16291a2b48SSukumar Swaminathan  * fields enclosed by brackets "[]" replaced with your own identifying
17291a2b48SSukumar Swaminathan  * information: Portions Copyright [yyyy] [name of copyright owner]
18291a2b48SSukumar Swaminathan  *
19291a2b48SSukumar Swaminathan  * CDDL HEADER END
20291a2b48SSukumar Swaminathan  */
21291a2b48SSukumar Swaminathan 
22291a2b48SSukumar Swaminathan /*
23291a2b48SSukumar Swaminathan  * Copyright 2009 Emulex.  All rights reserved.
24*82527734SSukumar Swaminathan  * Use is subject to license terms.
25291a2b48SSukumar Swaminathan  */
26291a2b48SSukumar Swaminathan 
27291a2b48SSukumar Swaminathan #ifndef _EMLXS_FW_H
28291a2b48SSukumar Swaminathan #define	_EMLXS_FW_H
29291a2b48SSukumar Swaminathan 
30291a2b48SSukumar Swaminathan #ifdef	__cplusplus
31291a2b48SSukumar Swaminathan extern "C" {
32291a2b48SSukumar Swaminathan #endif
33291a2b48SSukumar Swaminathan 
34291a2b48SSukumar Swaminathan #if 0
35291a2b48SSukumar Swaminathan #define	EMLXS_FW_TABLE_DEF	/* Causes the firmware table to be */
36291a2b48SSukumar Swaminathan 				/* defined in local memory. */
37291a2b48SSukumar Swaminathan 
38291a2b48SSukumar Swaminathan #define	EMLXS_FW_IMAGE_DEF	/* Causes the firmware image to be */
39291a2b48SSukumar Swaminathan 				/* defined in the firmware table. */
40291a2b48SSukumar Swaminathan #endif
41291a2b48SSukumar Swaminathan 
42291a2b48SSukumar Swaminathan #define	EMLXS_FW_MODULE  "misc/emlxs/emlxs_fw"
43291a2b48SSukumar Swaminathan 
44291a2b48SSukumar Swaminathan /* Unique id for each firmware image */
45291a2b48SSukumar Swaminathan typedef enum emlxs_fwid
46291a2b48SSukumar Swaminathan {
47291a2b48SSukumar Swaminathan 	FW_NOT_PROVIDED = 0,
48291a2b48SSukumar Swaminathan 	LP10000_FW,
49291a2b48SSukumar Swaminathan 	LP11000_FW,
50291a2b48SSukumar Swaminathan 	LP11002_FW,
51291a2b48SSukumar Swaminathan 	LPe11000_FW,
52291a2b48SSukumar Swaminathan 	LPe11002_FW,
53291a2b48SSukumar Swaminathan 	LPe12000_FW
54291a2b48SSukumar Swaminathan } emlxs_fwid_t;
55291a2b48SSukumar Swaminathan 
56291a2b48SSukumar Swaminathan /* Firmware image descriptor */
57291a2b48SSukumar Swaminathan typedef struct emlxs_firmware
58291a2b48SSukumar Swaminathan {
59291a2b48SSukumar Swaminathan 	emlxs_fwid_t	id;
60291a2b48SSukumar Swaminathan 	uint32_t	size;
61291a2b48SSukumar Swaminathan 	uint8_t		*image;
62291a2b48SSukumar Swaminathan 	char		label[64];
63291a2b48SSukumar Swaminathan 	uint32_t	kern;
64291a2b48SSukumar Swaminathan 	uint32_t	stub;
65291a2b48SSukumar Swaminathan 	uint32_t	sli1;
66291a2b48SSukumar Swaminathan 	uint32_t	sli2;
67291a2b48SSukumar Swaminathan 	uint32_t	sli3;
68291a2b48SSukumar Swaminathan 	uint32_t	sli4;
69291a2b48SSukumar Swaminathan } emlxs_firmware_t;
70291a2b48SSukumar Swaminathan 
71291a2b48SSukumar Swaminathan 
72291a2b48SSukumar Swaminathan #ifdef EMLXS_FW_TABLE_DEF
73291a2b48SSukumar Swaminathan 
74291a2b48SSukumar Swaminathan #ifndef MODFW_SUPPORT
75291a2b48SSukumar Swaminathan #define	EMLXS_FW_IMAGE_DEF
76291a2b48SSukumar Swaminathan #endif /* MODFW_SUPPORT */
77291a2b48SSukumar Swaminathan 
78291a2b48SSukumar Swaminathan /* Provide firmware information for each adapter */
79291a2b48SSukumar Swaminathan #include <fw_lp10000.h>
80291a2b48SSukumar Swaminathan #include <fw_lp11000.h>
81291a2b48SSukumar Swaminathan #include <fw_lp11002.h>
82291a2b48SSukumar Swaminathan #include <fw_lpe11000.h>
83291a2b48SSukumar Swaminathan #include <fw_lpe11002.h>
84291a2b48SSukumar Swaminathan #include <fw_lpe12000.h>
85291a2b48SSukumar Swaminathan 
86291a2b48SSukumar Swaminathan /* Build the firmware table */
87*82527734SSukumar Swaminathan #define	EMLXS_FW_TABLE	\
88*82527734SSukumar Swaminathan {\
89*82527734SSukumar Swaminathan 	{\
90*82527734SSukumar Swaminathan 		LP10000_FW,\
91*82527734SSukumar Swaminathan 		emlxs_lp10000_size,\
92*82527734SSukumar Swaminathan 		emlxs_lp10000_image,\
93*82527734SSukumar Swaminathan 		emlxs_lp10000_label,\
94*82527734SSukumar Swaminathan 		emlxs_lp10000_kern,\
95*82527734SSukumar Swaminathan 		emlxs_lp10000_stub,\
96*82527734SSukumar Swaminathan 		emlxs_lp10000_sli1,\
97*82527734SSukumar Swaminathan 		emlxs_lp10000_sli2,\
98*82527734SSukumar Swaminathan 		emlxs_lp10000_sli3,\
99*82527734SSukumar Swaminathan 		emlxs_lp10000_sli4\
100*82527734SSukumar Swaminathan 	},\
101*82527734SSukumar Swaminathan 	{\
102*82527734SSukumar Swaminathan 		LP11000_FW,\
103*82527734SSukumar Swaminathan 		emlxs_lp11000_size,\
104*82527734SSukumar Swaminathan 		emlxs_lp11000_image,\
105*82527734SSukumar Swaminathan 		emlxs_lp11000_label,\
106*82527734SSukumar Swaminathan 		emlxs_lp11000_kern,\
107*82527734SSukumar Swaminathan 		emlxs_lp11000_stub,\
108*82527734SSukumar Swaminathan 		emlxs_lp11000_sli1,\
109*82527734SSukumar Swaminathan 		emlxs_lp11000_sli2,\
110*82527734SSukumar Swaminathan 		emlxs_lp11000_sli3,\
111*82527734SSukumar Swaminathan 		emlxs_lp11000_sli4,\
112*82527734SSukumar Swaminathan 	},\
113*82527734SSukumar Swaminathan 	{\
114*82527734SSukumar Swaminathan 		LP11002_FW,\
115*82527734SSukumar Swaminathan 		emlxs_lp11002_size,\
116*82527734SSukumar Swaminathan 		emlxs_lp11002_image,\
117*82527734SSukumar Swaminathan 		emlxs_lp11002_label,\
118*82527734SSukumar Swaminathan 		emlxs_lp11002_kern,\
119*82527734SSukumar Swaminathan 		emlxs_lp11002_stub,\
120*82527734SSukumar Swaminathan 		emlxs_lp11002_sli1,\
121*82527734SSukumar Swaminathan 		emlxs_lp11002_sli2,\
122*82527734SSukumar Swaminathan 		emlxs_lp11002_sli3,\
123*82527734SSukumar Swaminathan 		emlxs_lp11002_sli4\
124*82527734SSukumar Swaminathan 	},\
125*82527734SSukumar Swaminathan 	{\
126*82527734SSukumar Swaminathan 		LPe11000_FW,\
127*82527734SSukumar Swaminathan 		emlxs_lpe11000_size,\
128*82527734SSukumar Swaminathan 		emlxs_lpe11000_image,\
129*82527734SSukumar Swaminathan 		emlxs_lpe11000_label,\
130*82527734SSukumar Swaminathan 		emlxs_lpe11000_kern,\
131*82527734SSukumar Swaminathan 		emlxs_lpe11000_stub,\
132*82527734SSukumar Swaminathan 		emlxs_lpe11000_sli1,\
133*82527734SSukumar Swaminathan 		emlxs_lpe11000_sli2,\
134*82527734SSukumar Swaminathan 		emlxs_lpe11000_sli3,\
135*82527734SSukumar Swaminathan 		emlxs_lpe11000_sli4\
136*82527734SSukumar Swaminathan 	},\
137*82527734SSukumar Swaminathan 	{\
138*82527734SSukumar Swaminathan 		LPe11002_FW,\
139*82527734SSukumar Swaminathan 		emlxs_lpe11002_size,\
140*82527734SSukumar Swaminathan 		emlxs_lpe11002_image,\
141*82527734SSukumar Swaminathan 		emlxs_lpe11002_label,\
142*82527734SSukumar Swaminathan 		emlxs_lpe11002_kern,\
143*82527734SSukumar Swaminathan 		emlxs_lpe11002_stub,\
144*82527734SSukumar Swaminathan 		emlxs_lpe11002_sli1,\
145*82527734SSukumar Swaminathan 		emlxs_lpe11002_sli2,\
146*82527734SSukumar Swaminathan 		emlxs_lpe11002_sli3,\
147*82527734SSukumar Swaminathan 		emlxs_lpe11002_sli4\
148*82527734SSukumar Swaminathan 	},\
149*82527734SSukumar Swaminathan 	{\
150*82527734SSukumar Swaminathan 		LPe12000_FW,\
151*82527734SSukumar Swaminathan 		emlxs_lpe12000_size,\
152*82527734SSukumar Swaminathan 		emlxs_lpe12000_image,\
153*82527734SSukumar Swaminathan 		emlxs_lpe12000_label,\
154*82527734SSukumar Swaminathan 		emlxs_lpe12000_kern,\
155*82527734SSukumar Swaminathan 		emlxs_lpe12000_stub,\
156*82527734SSukumar Swaminathan 		emlxs_lpe12000_sli1,\
157*82527734SSukumar Swaminathan 		emlxs_lpe12000_sli2,\
158*82527734SSukumar Swaminathan 		emlxs_lpe12000_sli3,\
159*82527734SSukumar Swaminathan 		emlxs_lpe12000_sli4\
160*82527734SSukumar Swaminathan 	}\
161*82527734SSukumar Swaminathan }
162291a2b48SSukumar Swaminathan #endif /* EMLXS_FW_TABLE_DEF */
163291a2b48SSukumar Swaminathan 
164291a2b48SSukumar Swaminathan #ifdef	__cplusplus
165291a2b48SSukumar Swaminathan }
166291a2b48SSukumar Swaminathan #endif
167291a2b48SSukumar Swaminathan 
168291a2b48SSukumar Swaminathan #endif	/* _EMLXS_FW_H */
169