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