1291a2b4Sukumar Swaminathan/*
2291a2b4Sukumar Swaminathan * CDDL HEADER START
3291a2b4Sukumar Swaminathan *
4291a2b4Sukumar Swaminathan * The contents of this file are subject to the terms of the
5291a2b4Sukumar Swaminathan * Common Development and Distribution License (the "License").
6291a2b4Sukumar Swaminathan * You may not use this file except in compliance with the License.
7291a2b4Sukumar Swaminathan *
88f23e9fHans Rosenfeld * You can obtain a copy of the license at
98f23e9fHans Rosenfeld * http://www.opensource.org/licenses/cddl1.txt.
10291a2b4Sukumar Swaminathan * See the License for the specific language governing permissions
11291a2b4Sukumar Swaminathan * and limitations under the License.
12291a2b4Sukumar Swaminathan *
13291a2b4Sukumar Swaminathan * When distributing Covered Code, include this CDDL HEADER in each
14291a2b4Sukumar Swaminathan * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15291a2b4Sukumar Swaminathan * If applicable, add the following below this CDDL HEADER, with the
16291a2b4Sukumar Swaminathan * fields enclosed by brackets "[]" replaced with your own identifying
17291a2b4Sukumar Swaminathan * information: Portions Copyright [yyyy] [name of copyright owner]
18291a2b4Sukumar Swaminathan *
19291a2b4Sukumar Swaminathan * CDDL HEADER END
20291a2b4Sukumar Swaminathan */
21291a2b4Sukumar Swaminathan
22291a2b4Sukumar Swaminathan/*
238f23e9fHans Rosenfeld * Copyright (c) 2004-2011 Emulex. All rights reserved.
248252773Sukumar Swaminathan * Use is subject to license terms.
25291a2b4Sukumar Swaminathan */
26291a2b4Sukumar Swaminathan
27291a2b4Sukumar Swaminathan#ifndef _EMLXS_FW_H
28291a2b4Sukumar Swaminathan#define	_EMLXS_FW_H
29291a2b4Sukumar Swaminathan
30291a2b4Sukumar Swaminathan#ifdef	__cplusplus
31291a2b4Sukumar Swaminathanextern "C" {
32291a2b4Sukumar Swaminathan#endif
33291a2b4Sukumar Swaminathan
34291a2b4Sukumar Swaminathan#if 0
35291a2b4Sukumar Swaminathan#define	EMLXS_FW_TABLE_DEF	/* Causes the firmware table to be */
36291a2b4Sukumar Swaminathan				/* defined in local memory. */
37291a2b4Sukumar Swaminathan
38291a2b4Sukumar Swaminathan#define	EMLXS_FW_IMAGE_DEF	/* Causes the firmware image to be */
39291a2b4Sukumar Swaminathan				/* defined in the firmware table. */
408f23e9fHans Rosenfeld#endif /* 0 */
41291a2b4Sukumar Swaminathan
428f23e9fHans Rosenfeld#define	EMLXS_FW_MODULE		"misc/"DRIVER_NAME"/"DRIVER_NAME"_fw"
43291a2b4Sukumar Swaminathan
44291a2b4Sukumar Swaminathan/* Unique id for each firmware image */
45291a2b4Sukumar Swaminathantypedef enum emlxs_fwid
46291a2b4Sukumar Swaminathan{
47291a2b4Sukumar Swaminathan	FW_NOT_PROVIDED = 0,
48291a2b4Sukumar Swaminathan	LP10000_FW,
49291a2b4Sukumar Swaminathan	LP11000_FW,
50291a2b4Sukumar Swaminathan	LP11002_FW,
51291a2b4Sukumar Swaminathan	LPe11000_FW,
52291a2b4Sukumar Swaminathan	LPe11002_FW,
53291a2b4Sukumar Swaminathan	LPe12000_FW
54291a2b4Sukumar Swaminathan} emlxs_fwid_t;
55291a2b4Sukumar Swaminathan
56291a2b4Sukumar Swaminathan/* Firmware image descriptor */
57291a2b4Sukumar Swaminathantypedef struct emlxs_firmware
58291a2b4Sukumar Swaminathan{
59291a2b4Sukumar Swaminathan	emlxs_fwid_t	id;
60291a2b4Sukumar Swaminathan	uint32_t	size;
61291a2b4Sukumar Swaminathan	uint8_t		*image;
62291a2b4Sukumar Swaminathan	char		label[64];
63291a2b4Sukumar Swaminathan	uint32_t	kern;
64291a2b4Sukumar Swaminathan	uint32_t	stub;
65291a2b4Sukumar Swaminathan	uint32_t	sli1;
66291a2b4Sukumar Swaminathan	uint32_t	sli2;
67291a2b4Sukumar Swaminathan	uint32_t	sli3;
68291a2b4Sukumar Swaminathan	uint32_t	sli4;
69291a2b4Sukumar Swaminathan} emlxs_firmware_t;
70291a2b4Sukumar Swaminathan
71291a2b4Sukumar Swaminathan
72291a2b4Sukumar Swaminathan#ifdef EMLXS_FW_TABLE_DEF
73291a2b4Sukumar Swaminathan
74291a2b4Sukumar Swaminathan#ifndef MODFW_SUPPORT
75291a2b4Sukumar Swaminathan#define	EMLXS_FW_IMAGE_DEF
76291a2b4Sukumar Swaminathan#endif /* MODFW_SUPPORT */
77291a2b4Sukumar Swaminathan
78291a2b4Sukumar Swaminathan/* Provide firmware information for each adapter */
79291a2b4Sukumar Swaminathan#include <fw_lp10000.h>
80291a2b4Sukumar Swaminathan#include <fw_lp11000.h>
81291a2b4Sukumar Swaminathan#include <fw_lp11002.h>
82291a2b4Sukumar Swaminathan#include <fw_lpe11000.h>
83291a2b4Sukumar Swaminathan#include <fw_lpe11002.h>
84291a2b4Sukumar Swaminathan#include <fw_lpe12000.h>
85291a2b4Sukumar Swaminathan
86291a2b4Sukumar Swaminathan/* Build the firmware table */
878252773Sukumar Swaminathan#define	EMLXS_FW_TABLE	\
888252773Sukumar Swaminathan{\
898252773Sukumar Swaminathan	{\
908252773Sukumar Swaminathan		LP10000_FW,\
918252773Sukumar Swaminathan		emlxs_lp10000_size,\
928252773Sukumar Swaminathan		emlxs_lp10000_image,\
938252773Sukumar Swaminathan		emlxs_lp10000_label,\
948252773Sukumar Swaminathan		emlxs_lp10000_kern,\
958252773Sukumar Swaminathan		emlxs_lp10000_stub,\
968252773Sukumar Swaminathan		emlxs_lp10000_sli1,\
978252773Sukumar Swaminathan		emlxs_lp10000_sli2,\
988252773Sukumar Swaminathan		emlxs_lp10000_sli3,\
998252773Sukumar Swaminathan		emlxs_lp10000_sli4\
1008252773Sukumar Swaminathan	},\
1018252773Sukumar Swaminathan	{\
1028252773Sukumar Swaminathan		LP11000_FW,\
1038252773Sukumar Swaminathan		emlxs_lp11000_size,\
1048252773Sukumar Swaminathan		emlxs_lp11000_image,\
1058252773Sukumar Swaminathan		emlxs_lp11000_label,\
1068252773Sukumar Swaminathan		emlxs_lp11000_kern,\
1078252773Sukumar Swaminathan		emlxs_lp11000_stub,\
1088252773Sukumar Swaminathan		emlxs_lp11000_sli1,\
1098252773Sukumar Swaminathan		emlxs_lp11000_sli2,\
1108252773Sukumar Swaminathan		emlxs_lp11000_sli3,\
1118252773Sukumar Swaminathan		emlxs_lp11000_sli4,\
1128252773Sukumar Swaminathan	},\
1138252773Sukumar Swaminathan	{\
1148252773Sukumar Swaminathan		LP11002_FW,\
1158252773Sukumar Swaminathan		emlxs_lp11002_size,\
1168252773Sukumar Swaminathan		emlxs_lp11002_image,\
1178252773Sukumar Swaminathan		emlxs_lp11002_label,\
1188252773Sukumar Swaminathan		emlxs_lp11002_kern,\
1198252773Sukumar Swaminathan		emlxs_lp11002_stub,\
1208252773Sukumar Swaminathan		emlxs_lp11002_sli1,\
1218252773Sukumar Swaminathan		emlxs_lp11002_sli2,\
1228252773Sukumar Swaminathan		emlxs_lp11002_sli3,\
1238252773Sukumar Swaminathan		emlxs_lp11002_sli4\
1248252773Sukumar Swaminathan	},\
1258252773Sukumar Swaminathan	{\
1268252773Sukumar Swaminathan		LPe11000_FW,\
1278252773Sukumar Swaminathan		emlxs_lpe11000_size,\
1288252773Sukumar Swaminathan		emlxs_lpe11000_image,\
1298252773Sukumar Swaminathan		emlxs_lpe11000_label,\
1308252773Sukumar Swaminathan		emlxs_lpe11000_kern,\
1318252773Sukumar Swaminathan		emlxs_lpe11000_stub,\
1328252773Sukumar Swaminathan		emlxs_lpe11000_sli1,\
1338252773Sukumar Swaminathan		emlxs_lpe11000_sli2,\
1348252773Sukumar Swaminathan		emlxs_lpe11000_sli3,\
1358252773Sukumar Swaminathan		emlxs_lpe11000_sli4\
1368252773Sukumar Swaminathan	},\
1378252773Sukumar Swaminathan	{\
1388252773Sukumar Swaminathan		LPe11002_FW,\
1398252773Sukumar Swaminathan		emlxs_lpe11002_size,\
1408252773Sukumar Swaminathan		emlxs_lpe11002_image,\
1418252773Sukumar Swaminathan		emlxs_lpe11002_label,\
1428252773Sukumar Swaminathan		emlxs_lpe11002_kern,\
1438252773Sukumar Swaminathan		emlxs_lpe11002_stub,\
1448252773Sukumar Swaminathan		emlxs_lpe11002_sli1,\
1458252773Sukumar Swaminathan		emlxs_lpe11002_sli2,\
1468252773Sukumar Swaminathan		emlxs_lpe11002_sli3,\
1478252773Sukumar Swaminathan		emlxs_lpe11002_sli4\
1488252773Sukumar Swaminathan	},\
1498252773Sukumar Swaminathan	{\
1508252773Sukumar Swaminathan		LPe12000_FW,\
1518252773Sukumar Swaminathan		emlxs_lpe12000_size,\
1528252773Sukumar Swaminathan		emlxs_lpe12000_image,\
1538252773Sukumar Swaminathan		emlxs_lpe12000_label,\
1548252773Sukumar Swaminathan		emlxs_lpe12000_kern,\
1558252773Sukumar Swaminathan		emlxs_lpe12000_stub,\
1568252773Sukumar Swaminathan		emlxs_lpe12000_sli1,\
1578252773Sukumar Swaminathan		emlxs_lpe12000_sli2,\
1588252773Sukumar Swaminathan		emlxs_lpe12000_sli3,\
1598252773Sukumar Swaminathan		emlxs_lpe12000_sli4\
1608252773Sukumar Swaminathan	}\
1618252773Sukumar Swaminathan}
162291a2b4Sukumar Swaminathan#endif /* EMLXS_FW_TABLE_DEF */
163291a2b4Sukumar Swaminathan
164291a2b4Sukumar Swaminathan#ifdef	__cplusplus
165291a2b4Sukumar Swaminathan}
166291a2b4Sukumar Swaminathan#endif
167291a2b4Sukumar Swaminathan
168291a2b4Sukumar Swaminathan#endif	/* _EMLXS_FW_H */
169