xref: /illumos-gate/usr/src/cmd/fwflash/plugins/hdrs/MELLANOX.h (revision 9e39c5ba00a55fa05777cc94b148296af305e135)
1*9e39c5baSBill Taylor /*
2*9e39c5baSBill Taylor  * CDDL HEADER START
3*9e39c5baSBill Taylor  *
4*9e39c5baSBill Taylor  * The contents of this file are subject to the terms of the
5*9e39c5baSBill Taylor  * Common Development and Distribution License (the "License").
6*9e39c5baSBill Taylor  * You may not use this file except in compliance with the License.
7*9e39c5baSBill Taylor  *
8*9e39c5baSBill Taylor  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*9e39c5baSBill Taylor  * or http://www.opensolaris.org/os/licensing.
10*9e39c5baSBill Taylor  * See the License for the specific language governing permissions
11*9e39c5baSBill Taylor  * and limitations under the License.
12*9e39c5baSBill Taylor  *
13*9e39c5baSBill Taylor  * When distributing Covered Code, include this CDDL HEADER in each
14*9e39c5baSBill Taylor  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*9e39c5baSBill Taylor  * If applicable, add the following below this CDDL HEADER, with the
16*9e39c5baSBill Taylor  * fields enclosed by brackets "[]" replaced with your own identifying
17*9e39c5baSBill Taylor  * information: Portions Copyright [yyyy] [name of copyright owner]
18*9e39c5baSBill Taylor  *
19*9e39c5baSBill Taylor  * CDDL HEADER END
20*9e39c5baSBill Taylor  */
21*9e39c5baSBill Taylor 
22*9e39c5baSBill Taylor /*
23*9e39c5baSBill Taylor  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24*9e39c5baSBill Taylor  * Use is subject to license terms.
25*9e39c5baSBill Taylor  */
26*9e39c5baSBill Taylor 
27*9e39c5baSBill Taylor #ifndef _HDRS_MELLANOX_H
28*9e39c5baSBill Taylor #define	_HDRS_MELLANOX_H
29*9e39c5baSBill Taylor 
30*9e39c5baSBill Taylor 
31*9e39c5baSBill Taylor #ifdef __cplusplus
32*9e39c5baSBill Taylor extern "C" {
33*9e39c5baSBill Taylor #endif
34*9e39c5baSBill Taylor 
35*9e39c5baSBill Taylor /*
36*9e39c5baSBill Taylor  * MELLANOX.h
37*9e39c5baSBill Taylor  *
38*9e39c5baSBill Taylor  * This file contain common information related to Mellanox technologies
39*9e39c5baSBill Taylor  * HCA cards.
40*9e39c5baSBill Taylor  */
41*9e39c5baSBill Taylor #define	SUNW_OUI		0x0003baULL
42*9e39c5baSBill Taylor #define	MLX_OUI			0x0002c9ULL
43*9e39c5baSBill Taylor #define	MLX_DEFAULT_NODE_GUID	0x2c9000100d050ULL
44*9e39c5baSBill Taylor #define	MLX_DEFAULT_P1_GUID	0x2c9000100d051ULL
45*9e39c5baSBill Taylor #define	MLX_DEFAULT_P2_GUID	0x2c9000100d052ULL
46*9e39c5baSBill Taylor #define	MLX_DEFAULT_SYSIMG_GUID	0x2c9000100d053ULL
47*9e39c5baSBill Taylor 
48*9e39c5baSBill Taylor /* How many bits to shift and leave just the OUI */
49*9e39c5baSBill Taylor #define	OUISHIFT		40
50*9e39c5baSBill Taylor 
51*9e39c5baSBill Taylor #define	MLX_VPR_VIDLEN		9	/* "MELLANOX" + '\0' */
52*9e39c5baSBill Taylor #define	MLX_VPR_REVLEN		21	/* "%04x.%04x.%04x: %04x" + '\0' */
53*9e39c5baSBill Taylor 
54*9e39c5baSBill Taylor #define	FWFLASH_IB_MAGIC_NUMBER		0xF00B0021
55*9e39c5baSBill Taylor 
56*9e39c5baSBill Taylor /* Numerically largest OUI that's presently assigned */
57*9e39c5baSBill Taylor #define	TAVOR_MAX_OUI			0xacde48
58*9e39c5baSBill Taylor 
59*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_NONE		0x00
60*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_IMAGE_PRI	0x01
61*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_IMAGE_SEC	0x02
62*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_MMAP		0x04
63*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUIDN		0x10
64*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUID1		0x20
65*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUID2		0x40
66*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUIDS		0x80
67*9e39c5baSBill Taylor 
68*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_IMAGE		FWFLASH_IB_STATE_IMAGE_PRI
69*9e39c5baSBill Taylor 
70*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_PFI_IMAGE	FWFLASH_IB_STATE_IMAGE_PRI
71*9e39c5baSBill Taylor #define	FWFLASH_IB_STATE_SFI_IMAGE	FWFLASH_IB_STATE_IMAGE_SEC
72*9e39c5baSBill Taylor 
73*9e39c5baSBill Taylor /*
74*9e39c5baSBill Taylor  * Structure to hold the part number, PSID, and string ID
75*9e39c5baSBill Taylor  * for an HCA card.
76*9e39c5baSBill Taylor  */
77*9e39c5baSBill Taylor typedef struct mlx_mdr_s {
78*9e39c5baSBill Taylor 	char *mlx_pn;
79*9e39c5baSBill Taylor 	char *mlx_psid;
80*9e39c5baSBill Taylor 	char *mlx_id;
81*9e39c5baSBill Taylor } mlx_mdr_t;
82*9e39c5baSBill Taylor 
83*9e39c5baSBill Taylor /*
84*9e39c5baSBill Taylor  * Magic decoder ring for matching HCA hardware/firmware.
85*9e39c5baSBill Taylor  * Part Number / PSID / String ID
86*9e39c5baSBill Taylor  */
87*9e39c5baSBill Taylor mlx_mdr_t mlx_mdr[] = {
88*9e39c5baSBill Taylor 	/* Part No		PSID			Card ID */
89*9e39c5baSBill Taylor 	{ "MHEA28-XS",		"MT_0250000001",	"Lion mini" },
90*9e39c5baSBill Taylor 	{ "MHEA28-XSC",		"MT_0390110001",	"Lion mini" },
91*9e39c5baSBill Taylor 	{ "MHEA28-XT",		"MT_0150000001",	"Lion mini" },
92*9e39c5baSBill Taylor 	{ "MHEA28-XTC",		"MT_0370110001",	"Lion mini" },
93*9e39c5baSBill Taylor 	{ "MHGA28-XT",		"MT_0150000002",	"Lion mini" },
94*9e39c5baSBill Taylor 	{ "MHGA28-XTC",		"MT_0370110002",	"Lion mini" },
95*9e39c5baSBill Taylor 	{ "MHGA28-XTC",		"MT_0370130002",	"Lion mini" },
96*9e39c5baSBill Taylor 	{ "MHGA28-XS",		"MT_0250000002",	"Lion mini" },
97*9e39c5baSBill Taylor 	{ "MHGA28-XSC",		"MT_0390110002",	"Lion mini" },
98*9e39c5baSBill Taylor 	{ "MHGA28-XSC",		"MT_0390130002",	"Lion mini" },
99*9e39c5baSBill Taylor 	{ "MHEL-CF128",		"MT_0190000001",	"Lion cub" },
100*9e39c5baSBill Taylor 	{ "MHEL-CF128-T",	"MT_00A0000001",	"Lion cub" },
101*9e39c5baSBill Taylor 	{ "MTLP25208-CF128T",	"MT_00A0000001",	"Lion cub" },
102*9e39c5baSBill Taylor 	{ "MHEL-CF128-TC",	"MT_00A0010001",	"Lion cub" },
103*9e39c5baSBill Taylor 	{ "MHEL-CF128-TC",	"MT_0140010001",	"Lion cub" },
104*9e39c5baSBill Taylor 	{ "MHEL-CF128-SC",	"MT_0190010001",	"Lion cub" },
105*9e39c5baSBill Taylor 	{ "MHEA28-1TC",		"MT_02F0110001",	"Lion cub" },
106*9e39c5baSBill Taylor 	{ "MHEA28-1SC",		"MT_0330110001",	"Lion cub" },
107*9e39c5baSBill Taylor 	{ "MHGA28-1T",		"MT_0200000001",	"Lion cub" },
108*9e39c5baSBill Taylor 	{ "MHGA28-1TC",		"MT_02F0110002",	"Lion cub" },
109*9e39c5baSBill Taylor 	{ "MHGA28-1SC",		"MT_0330110002",	"Lion cub" },
110*9e39c5baSBill Taylor 	{ "MHGA28-1S",		"MT_0430000001",	"Lion cub" },
111*9e39c5baSBill Taylor 	{ "MHEL-CF256-T",	"MT_00B0000001",	"Lion cub" },
112*9e39c5baSBill Taylor 	{ "MTLP25208-CF256T",	"MT_00B0000001",	"Lion cub" },
113*9e39c5baSBill Taylor 	{ "MHEL-CF256-TC",	"MT_00B0010001",	"Lion cub" },
114*9e39c5baSBill Taylor 	{ "MHEA28-2TC",		"MT_0300110001",	"Lion cub" },
115*9e39c5baSBill Taylor 	{ "MHEA28-2SC",		"MT_0340110001",	"Lion cub" },
116*9e39c5baSBill Taylor 	{ "MHGA28-2T",		"MT_0210000001",	"Lion cub" },
117*9e39c5baSBill Taylor 	{ "MHGA28-2TC",		"MT_0300110002",	"Lion cub" },
118*9e39c5baSBill Taylor 	{ "MHGA28-2SC",		"MT_0340110002",	"Lion cub" },
119*9e39c5baSBill Taylor 	{ "MHEL-CF512-T",	"MT_00C0000001",	"Lion cub" },
120*9e39c5baSBill Taylor 	{ "MTLP25208-CF512T",	"MT_00C0000001",	"Lion cub" },
121*9e39c5baSBill Taylor 	{ "MHGA28-5T",		"MT_0220000001",	"Lion cub" },
122*9e39c5baSBill Taylor 	{ "375-3382-01",	"SUN0030000001",	"Sun Lion cub DDR" },
123*9e39c5baSBill Taylor 	{ "MHES14-XSC",		"MT_0410110001",	"Tiger" },
124*9e39c5baSBill Taylor 	{ "MHES14-XT",		"MT_01F0000001",	"Tiger" },
125*9e39c5baSBill Taylor 	{ "MHES14-XTC",		"MT_03F0110001",	"Tiger" },
126*9e39c5baSBill Taylor 	{ "MHES18-XS",		"MT_0260000001",	"Cheetah" },
127*9e39c5baSBill Taylor 	{ "MHES18-XS",		"MT_0260010001",	"Cheetah" },
128*9e39c5baSBill Taylor 	{ "MHES18-XSC",		"MT_03D0110001",	"Cheetah" },
129*9e39c5baSBill Taylor 	{ "MHES18-XSC",		"MT_03D0120001",	"Cheetah" },
130*9e39c5baSBill Taylor 	{ "MHES18-XSC",		"MT_03D0130001",	"Cheetah" },
131*9e39c5baSBill Taylor 	{ "MHES18-XT",		"MT_0230000002",	"Cheetah" },
132*9e39c5baSBill Taylor 	{ "MHES18-XT",		"MT_0230010002",	"Cheetah" },
133*9e39c5baSBill Taylor 	{ "MHES18-XTC",		"MT_03B0110001",	"Cheetah" },
134*9e39c5baSBill Taylor 	{ "MHES18-XTC",		"MT_03B0120001",	"Cheetah" },
135*9e39c5baSBill Taylor 	{ "MHES18-XTC",		"MT_03B0140001",	"Cheetah" },
136*9e39c5baSBill Taylor 	{ "MHGS18-XS",		"MT_0260000002",	"Cheetah" },
137*9e39c5baSBill Taylor 	{ "MHGS18-XSC",		"MT_03D0110002",	"Cheetah" },
138*9e39c5baSBill Taylor 	{ "MHGS18-XSC",		"MT_03D0120002",	"Cheetah" },
139*9e39c5baSBill Taylor 	{ "MHGS18-XSC",		"MT_03D0130002",	"Cheetah" },
140*9e39c5baSBill Taylor 	{ "MHGS18-XT",		"MT_0230000001",	"Cheetah" },
141*9e39c5baSBill Taylor 	{ "MHGS18-XTC",		"MT_03B0110002",	"Cheetah" },
142*9e39c5baSBill Taylor 	{ "MHGS18-XTC",		"MT_03B0120002",	"Cheetah" },
143*9e39c5baSBill Taylor 	{ "MHGS18-XTC",		"MT_03B0140002",	"Cheetah" },
144*9e39c5baSBill Taylor 	{ "MHXL-CF128",		"MT_0180000001",	"Cougar Cub 128" },
145*9e39c5baSBill Taylor 	{ "MHXL-CF128-T",	"MT_0030000001",	"Cougar Cub 128" },
146*9e39c5baSBill Taylor 	{ "MTLP23108-CF128T",	"MT_0030000001",	"Cougar Cub 128" },
147*9e39c5baSBill Taylor 	{ "MHET2X-1SC",		"MT_0280110001",	"Cougar Cub 128" },
148*9e39c5baSBill Taylor 	{ "MHET2X-1SC",		"MT_0280120001",	"Cougar Cub 128" },
149*9e39c5baSBill Taylor 	{ "MHET2X-1TC",		"MT_0270110001",	"Cougar Cub 128" },
150*9e39c5baSBill Taylor 	{ "MHET2X-1TC",		"MT_0270120001",	"Cougar Cub 128" },
151*9e39c5baSBill Taylor 	{ "MHXL-CF256-T",	"MT_0040000001",	"Cougar Cub 256" },
152*9e39c5baSBill Taylor 	{ "MHET2X-2SC",		"MT_02D0110001",	"Cougar Cub 256" },
153*9e39c5baSBill Taylor 	{ "MHET2X-2SC",		"MT_02D0120001",	"Cougar Cub 256" },
154*9e39c5baSBill Taylor 	{ "MHET2X-2TC",		"MT_02B0110001",	"Cougar Cub 256" },
155*9e39c5baSBill Taylor 	{ "MHET2X-2TC",		"MT_02B0120001",	"Cougar Cub 256" },
156*9e39c5baSBill Taylor 	{ "375-3481-01",	"SUN0040000001",	"Sun Cougar Cub SDR" },
157*9e39c5baSBill Taylor 	{ "MHX-CE128-T",	"MT_0000000001",	"Cougar 128" },
158*9e39c5baSBill Taylor 	{ "MTPB23108-CE128",	"MT_0000000001",	"Cougar 128" },
159*9e39c5baSBill Taylor 	{ "MHX-CE256-T",	"MT_0010000001",	"Cougar 256" },
160*9e39c5baSBill Taylor 	{ "MTPB23108-CE256",	"MT_0010000001",	"Cougar 256" },
161*9e39c5baSBill Taylor 	{ "MHX-CE512-T",	"MT_0050000001",	"Cougar 512" },
162*9e39c5baSBill Taylor 	{ "MTPB23108-CE512",	"MT_0050000001",	"Cougar 512" },
163*9e39c5baSBill Taylor 	{ "MHEH28-XSC",		"MT_04C0110001",	"Eagle SDR" },
164*9e39c5baSBill Taylor 	{ "MHEH28-XSC",		"MT_04C0130005",	"Eagle SDR" },
165*9e39c5baSBill Taylor 	{ "MHEH28-XTC",		"MT_04A0110001",	"Eagle SDR" },
166*9e39c5baSBill Taylor 	{ "MHEH28-XTC",		"MT_04A0130005",	"Eagle SDR" },
167*9e39c5baSBill Taylor 	{ "MHGH28-XSC",		"MT_04C0110002",	"Eagle DDR" },
168*9e39c5baSBill Taylor 	{ "MHGH28-XSC",		"MT_04C0120002",	"Eagle DDR" },
169*9e39c5baSBill Taylor 	{ "MHGH28-XSC",		"MT_04C0140005",	"Eagle DDR" },
170*9e39c5baSBill Taylor 	{ "MHGH28-XTC",		"MT_04A0110002",	"Eagle DDR" },
171*9e39c5baSBill Taylor 	{ "MHGH28-XTC",		"MT_04A0120002",	"Eagle DDR" },
172*9e39c5baSBill Taylor 	{ "MHGH28-XTC",		"MT_04A0140005",	"Eagle DDR" },
173*9e39c5baSBill Taylor 	{ "X1289A-Z",		"SUN0010010001",	"Sun IB NEM DDR" },
174*9e39c5baSBill Taylor 	{ "375-3548-01",	"SUN0060000001", "Sun IB EM DDR X4216A-Z" },
175*9e39c5baSBill Taylor 	{ "375-3549-01",	"SUN0070000001", "Sun PCIe DDR X4217A" },
176*9e39c5baSBill Taylor 	{ "375-3481-01",	"SUN0050000001",	"Sun PCIe EM SDR" },
177*9e39c5baSBill Taylor 	{ "MHGH29-XSC",		"MT_0A60110002", "Eagle DDR PCIe Gen 2.0" },
178*9e39c5baSBill Taylor 	{ "MHGH29-XSC",		"MT_0A60120005", "Eagle DDR PCIe Gen 2.0" },
179*9e39c5baSBill Taylor 	{ "MHGH29-XTC",		"MT_0A50110002", "Eagle DDR PCIe Gen 2.0" },
180*9e39c5baSBill Taylor 	{ "MHGH29-XTC",		"MT_0A50120005", "Eagle DDR PCIe Gen 2.0" },
181*9e39c5baSBill Taylor 	{ "375-3605-01",	"SUN0160000001",	"Sun Mirage QDR" },
182*9e39c5baSBill Taylor 	{ "375-3606-01",	"SUN0150000001",	"Sun Falcon QDR" },
183*9e39c5baSBill Taylor 	{ "MHJH29-XTC",		"MT_04E0110003",	"Eagle QDR" },
184*9e39c5baSBill Taylor 	{ "375-3551-05",	"SUN0080000001",	"Sun C48-IB-NEM" }
185*9e39c5baSBill Taylor };
186*9e39c5baSBill Taylor 
187*9e39c5baSBill Taylor /* Get mlx_mdr[] array size */
188*9e39c5baSBill Taylor #define	MLX_SZ_MLX_MDR		sizeof (mlx_mdr)
189*9e39c5baSBill Taylor #define	MLX_SZ_MLX_MDR_STRUCT	sizeof (mlx_mdr[0])
190*9e39c5baSBill Taylor 
191*9e39c5baSBill Taylor #define	MLX_MAX_ID		MLX_SZ_MLX_MDR/MLX_SZ_MLX_MDR_STRUCT
192*9e39c5baSBill Taylor #define	MLX_PSID_SZ		16
193*9e39c5baSBill Taylor #define	MLX_STR_ID_SZ		64
194*9e39c5baSBill Taylor 
195*9e39c5baSBill Taylor #ifdef __cplusplus
196*9e39c5baSBill Taylor }
197*9e39c5baSBill Taylor #endif
198*9e39c5baSBill Taylor 
199*9e39c5baSBill Taylor #endif /* _HDRS_MELLANOX_H */
200