xref: /illumos-gate/usr/src/cmd/fwflash/plugins/hdrs/MELLANOX.h (revision f07a6d2ab62592f08fb2856d7426d06ea26d999b)
19e39c5baSBill Taylor /*
29e39c5baSBill Taylor  * CDDL HEADER START
39e39c5baSBill Taylor  *
49e39c5baSBill Taylor  * The contents of this file are subject to the terms of the
59e39c5baSBill Taylor  * Common Development and Distribution License (the "License").
69e39c5baSBill Taylor  * You may not use this file except in compliance with the License.
79e39c5baSBill Taylor  *
89e39c5baSBill Taylor  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
99e39c5baSBill Taylor  * or http://www.opensolaris.org/os/licensing.
109e39c5baSBill Taylor  * See the License for the specific language governing permissions
119e39c5baSBill Taylor  * and limitations under the License.
129e39c5baSBill Taylor  *
139e39c5baSBill Taylor  * When distributing Covered Code, include this CDDL HEADER in each
149e39c5baSBill Taylor  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
159e39c5baSBill Taylor  * If applicable, add the following below this CDDL HEADER, with the
169e39c5baSBill Taylor  * fields enclosed by brackets "[]" replaced with your own identifying
179e39c5baSBill Taylor  * information: Portions Copyright [yyyy] [name of copyright owner]
189e39c5baSBill Taylor  *
199e39c5baSBill Taylor  * CDDL HEADER END
209e39c5baSBill Taylor  */
219e39c5baSBill Taylor 
229e39c5baSBill Taylor /*
23*f07a6d2aSShantkumar Hiremath  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
249e39c5baSBill Taylor  * Use is subject to license terms.
259e39c5baSBill Taylor  */
269e39c5baSBill Taylor 
279e39c5baSBill Taylor #ifndef _HDRS_MELLANOX_H
289e39c5baSBill Taylor #define	_HDRS_MELLANOX_H
299e39c5baSBill Taylor 
309e39c5baSBill Taylor 
319e39c5baSBill Taylor #ifdef __cplusplus
329e39c5baSBill Taylor extern "C" {
339e39c5baSBill Taylor #endif
349e39c5baSBill Taylor 
359e39c5baSBill Taylor /*
369e39c5baSBill Taylor  * MELLANOX.h
379e39c5baSBill Taylor  *
389e39c5baSBill Taylor  * This file contain common information related to Mellanox technologies
399e39c5baSBill Taylor  * HCA cards.
409e39c5baSBill Taylor  */
419e39c5baSBill Taylor #define	SUNW_OUI		0x0003baULL
429e39c5baSBill Taylor #define	MLX_OUI			0x0002c9ULL
439e39c5baSBill Taylor #define	MLX_DEFAULT_NODE_GUID	0x2c9000100d050ULL
449e39c5baSBill Taylor #define	MLX_DEFAULT_P1_GUID	0x2c9000100d051ULL
459e39c5baSBill Taylor #define	MLX_DEFAULT_P2_GUID	0x2c9000100d052ULL
469e39c5baSBill Taylor #define	MLX_DEFAULT_SYSIMG_GUID	0x2c9000100d053ULL
479e39c5baSBill Taylor 
489e39c5baSBill Taylor /* How many bits to shift and leave just the OUI */
499e39c5baSBill Taylor #define	OUISHIFT		40
509e39c5baSBill Taylor 
519e39c5baSBill Taylor #define	MLX_VPR_VIDLEN		9	/* "MELLANOX" + '\0' */
529e39c5baSBill Taylor #define	MLX_VPR_REVLEN		21	/* "%04x.%04x.%04x: %04x" + '\0' */
539e39c5baSBill Taylor 
549e39c5baSBill Taylor #define	FWFLASH_IB_MAGIC_NUMBER		0xF00B0021
559e39c5baSBill Taylor 
569e39c5baSBill Taylor /* Numerically largest OUI that's presently assigned */
579e39c5baSBill Taylor #define	TAVOR_MAX_OUI			0xacde48
589e39c5baSBill Taylor 
599e39c5baSBill Taylor #define	FWFLASH_IB_STATE_NONE		0x00
609e39c5baSBill Taylor #define	FWFLASH_IB_STATE_IMAGE_PRI	0x01
619e39c5baSBill Taylor #define	FWFLASH_IB_STATE_IMAGE_SEC	0x02
629e39c5baSBill Taylor #define	FWFLASH_IB_STATE_MMAP		0x04
639e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUIDN		0x10
649e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUID1		0x20
659e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUID2		0x40
669e39c5baSBill Taylor #define	FWFLASH_IB_STATE_GUIDS		0x80
679e39c5baSBill Taylor 
689e39c5baSBill Taylor #define	FWFLASH_IB_STATE_IMAGE		FWFLASH_IB_STATE_IMAGE_PRI
699e39c5baSBill Taylor 
709e39c5baSBill Taylor #define	FWFLASH_IB_STATE_PFI_IMAGE	FWFLASH_IB_STATE_IMAGE_PRI
719e39c5baSBill Taylor #define	FWFLASH_IB_STATE_SFI_IMAGE	FWFLASH_IB_STATE_IMAGE_SEC
729e39c5baSBill Taylor 
739e39c5baSBill Taylor /*
749e39c5baSBill Taylor  * Structure to hold the part number, PSID, and string ID
759e39c5baSBill Taylor  * for an HCA card.
769e39c5baSBill Taylor  */
779e39c5baSBill Taylor typedef struct mlx_mdr_s {
789e39c5baSBill Taylor 	char *mlx_pn;
799e39c5baSBill Taylor 	char *mlx_psid;
809e39c5baSBill Taylor 	char *mlx_id;
819e39c5baSBill Taylor } mlx_mdr_t;
829e39c5baSBill Taylor 
839e39c5baSBill Taylor /*
849e39c5baSBill Taylor  * Magic decoder ring for matching HCA hardware/firmware.
859e39c5baSBill Taylor  * Part Number / PSID / String ID
869e39c5baSBill Taylor  */
879e39c5baSBill Taylor mlx_mdr_t mlx_mdr[] = {
889e39c5baSBill Taylor 	/* Part No		PSID			Card ID */
899e39c5baSBill Taylor 	{ "MHEA28-XS",		"MT_0250000001",	"Lion mini" },
909e39c5baSBill Taylor 	{ "MHEA28-XSC",		"MT_0390110001",	"Lion mini" },
919e39c5baSBill Taylor 	{ "MHEA28-XT",		"MT_0150000001",	"Lion mini" },
929e39c5baSBill Taylor 	{ "MHEA28-XTC",		"MT_0370110001",	"Lion mini" },
939e39c5baSBill Taylor 	{ "MHGA28-XT",		"MT_0150000002",	"Lion mini" },
949e39c5baSBill Taylor 	{ "MHGA28-XTC",		"MT_0370110002",	"Lion mini" },
959e39c5baSBill Taylor 	{ "MHGA28-XTC",		"MT_0370130002",	"Lion mini" },
969e39c5baSBill Taylor 	{ "MHGA28-XS",		"MT_0250000002",	"Lion mini" },
979e39c5baSBill Taylor 	{ "MHGA28-XSC",		"MT_0390110002",	"Lion mini" },
989e39c5baSBill Taylor 	{ "MHGA28-XSC",		"MT_0390130002",	"Lion mini" },
999e39c5baSBill Taylor 	{ "MHEL-CF128",		"MT_0190000001",	"Lion cub" },
1009e39c5baSBill Taylor 	{ "MHEL-CF128-T",	"MT_00A0000001",	"Lion cub" },
1019e39c5baSBill Taylor 	{ "MTLP25208-CF128T",	"MT_00A0000001",	"Lion cub" },
1029e39c5baSBill Taylor 	{ "MHEL-CF128-TC",	"MT_00A0010001",	"Lion cub" },
1039e39c5baSBill Taylor 	{ "MHEL-CF128-TC",	"MT_0140010001",	"Lion cub" },
1049e39c5baSBill Taylor 	{ "MHEL-CF128-SC",	"MT_0190010001",	"Lion cub" },
1059e39c5baSBill Taylor 	{ "MHEA28-1TC",		"MT_02F0110001",	"Lion cub" },
1069e39c5baSBill Taylor 	{ "MHEA28-1SC",		"MT_0330110001",	"Lion cub" },
1079e39c5baSBill Taylor 	{ "MHGA28-1T",		"MT_0200000001",	"Lion cub" },
1089e39c5baSBill Taylor 	{ "MHGA28-1TC",		"MT_02F0110002",	"Lion cub" },
1099e39c5baSBill Taylor 	{ "MHGA28-1SC",		"MT_0330110002",	"Lion cub" },
1109e39c5baSBill Taylor 	{ "MHGA28-1S",		"MT_0430000001",	"Lion cub" },
1119e39c5baSBill Taylor 	{ "MHEL-CF256-T",	"MT_00B0000001",	"Lion cub" },
1129e39c5baSBill Taylor 	{ "MTLP25208-CF256T",	"MT_00B0000001",	"Lion cub" },
1139e39c5baSBill Taylor 	{ "MHEL-CF256-TC",	"MT_00B0010001",	"Lion cub" },
1149e39c5baSBill Taylor 	{ "MHEA28-2TC",		"MT_0300110001",	"Lion cub" },
1159e39c5baSBill Taylor 	{ "MHEA28-2SC",		"MT_0340110001",	"Lion cub" },
1169e39c5baSBill Taylor 	{ "MHGA28-2T",		"MT_0210000001",	"Lion cub" },
1179e39c5baSBill Taylor 	{ "MHGA28-2TC",		"MT_0300110002",	"Lion cub" },
1189e39c5baSBill Taylor 	{ "MHGA28-2SC",		"MT_0340110002",	"Lion cub" },
1199e39c5baSBill Taylor 	{ "MHEL-CF512-T",	"MT_00C0000001",	"Lion cub" },
1209e39c5baSBill Taylor 	{ "MTLP25208-CF512T",	"MT_00C0000001",	"Lion cub" },
1219e39c5baSBill Taylor 	{ "MHGA28-5T",		"MT_0220000001",	"Lion cub" },
1229e39c5baSBill Taylor 	{ "375-3382-01",	"SUN0030000001",	"Sun Lion cub DDR" },
1239e39c5baSBill Taylor 	{ "MHES14-XSC",		"MT_0410110001",	"Tiger" },
1249e39c5baSBill Taylor 	{ "MHES14-XT",		"MT_01F0000001",	"Tiger" },
1259e39c5baSBill Taylor 	{ "MHES14-XTC",		"MT_03F0110001",	"Tiger" },
1269e39c5baSBill Taylor 	{ "MHES18-XS",		"MT_0260000001",	"Cheetah" },
1279e39c5baSBill Taylor 	{ "MHES18-XS",		"MT_0260010001",	"Cheetah" },
1289e39c5baSBill Taylor 	{ "MHES18-XSC",		"MT_03D0110001",	"Cheetah" },
1299e39c5baSBill Taylor 	{ "MHES18-XSC",		"MT_03D0120001",	"Cheetah" },
1309e39c5baSBill Taylor 	{ "MHES18-XSC",		"MT_03D0130001",	"Cheetah" },
1319e39c5baSBill Taylor 	{ "MHES18-XT",		"MT_0230000002",	"Cheetah" },
1329e39c5baSBill Taylor 	{ "MHES18-XT",		"MT_0230010002",	"Cheetah" },
1339e39c5baSBill Taylor 	{ "MHES18-XTC",		"MT_03B0110001",	"Cheetah" },
1349e39c5baSBill Taylor 	{ "MHES18-XTC",		"MT_03B0120001",	"Cheetah" },
1359e39c5baSBill Taylor 	{ "MHES18-XTC",		"MT_03B0140001",	"Cheetah" },
1369e39c5baSBill Taylor 	{ "MHGS18-XS",		"MT_0260000002",	"Cheetah" },
1379e39c5baSBill Taylor 	{ "MHGS18-XSC",		"MT_03D0110002",	"Cheetah" },
1389e39c5baSBill Taylor 	{ "MHGS18-XSC",		"MT_03D0120002",	"Cheetah" },
1399e39c5baSBill Taylor 	{ "MHGS18-XSC",		"MT_03D0130002",	"Cheetah" },
1409e39c5baSBill Taylor 	{ "MHGS18-XT",		"MT_0230000001",	"Cheetah" },
1419e39c5baSBill Taylor 	{ "MHGS18-XTC",		"MT_03B0110002",	"Cheetah" },
1429e39c5baSBill Taylor 	{ "MHGS18-XTC",		"MT_03B0120002",	"Cheetah" },
1439e39c5baSBill Taylor 	{ "MHGS18-XTC",		"MT_03B0140002",	"Cheetah" },
1449e39c5baSBill Taylor 	{ "MHXL-CF128",		"MT_0180000001",	"Cougar Cub 128" },
1459e39c5baSBill Taylor 	{ "MHXL-CF128-T",	"MT_0030000001",	"Cougar Cub 128" },
1469e39c5baSBill Taylor 	{ "MTLP23108-CF128T",	"MT_0030000001",	"Cougar Cub 128" },
1479e39c5baSBill Taylor 	{ "MHET2X-1SC",		"MT_0280110001",	"Cougar Cub 128" },
1489e39c5baSBill Taylor 	{ "MHET2X-1SC",		"MT_0280120001",	"Cougar Cub 128" },
1499e39c5baSBill Taylor 	{ "MHET2X-1TC",		"MT_0270110001",	"Cougar Cub 128" },
1509e39c5baSBill Taylor 	{ "MHET2X-1TC",		"MT_0270120001",	"Cougar Cub 128" },
1519e39c5baSBill Taylor 	{ "MHXL-CF256-T",	"MT_0040000001",	"Cougar Cub 256" },
1529e39c5baSBill Taylor 	{ "MHET2X-2SC",		"MT_02D0110001",	"Cougar Cub 256" },
1539e39c5baSBill Taylor 	{ "MHET2X-2SC",		"MT_02D0120001",	"Cougar Cub 256" },
1549e39c5baSBill Taylor 	{ "MHET2X-2TC",		"MT_02B0110001",	"Cougar Cub 256" },
1559e39c5baSBill Taylor 	{ "MHET2X-2TC",		"MT_02B0120001",	"Cougar Cub 256" },
1569e39c5baSBill Taylor 	{ "375-3481-01",	"SUN0040000001",	"Sun Cougar Cub SDR" },
1579e39c5baSBill Taylor 	{ "MHX-CE128-T",	"MT_0000000001",	"Cougar 128" },
1589e39c5baSBill Taylor 	{ "MTPB23108-CE128",	"MT_0000000001",	"Cougar 128" },
1599e39c5baSBill Taylor 	{ "MHX-CE256-T",	"MT_0010000001",	"Cougar 256" },
1609e39c5baSBill Taylor 	{ "MTPB23108-CE256",	"MT_0010000001",	"Cougar 256" },
1619e39c5baSBill Taylor 	{ "MHX-CE512-T",	"MT_0050000001",	"Cougar 512" },
1629e39c5baSBill Taylor 	{ "MTPB23108-CE512",	"MT_0050000001",	"Cougar 512" },
1639e39c5baSBill Taylor 	{ "MHEH28-XSC",		"MT_04C0110001",	"Eagle SDR" },
1649e39c5baSBill Taylor 	{ "MHEH28-XSC",		"MT_04C0130005",	"Eagle SDR" },
1659e39c5baSBill Taylor 	{ "MHEH28-XTC",		"MT_04A0110001",	"Eagle SDR" },
1669e39c5baSBill Taylor 	{ "MHEH28-XTC",		"MT_04A0130005",	"Eagle SDR" },
1679e39c5baSBill Taylor 	{ "MHGH28-XSC",		"MT_04C0110002",	"Eagle DDR" },
1689e39c5baSBill Taylor 	{ "MHGH28-XSC",		"MT_04C0120002",	"Eagle DDR" },
1699e39c5baSBill Taylor 	{ "MHGH28-XSC",		"MT_04C0140005",	"Eagle DDR" },
1709e39c5baSBill Taylor 	{ "MHGH28-XTC",		"MT_04A0110002",	"Eagle DDR" },
1719e39c5baSBill Taylor 	{ "MHGH28-XTC",		"MT_04A0120002",	"Eagle DDR" },
1729e39c5baSBill Taylor 	{ "MHGH28-XTC",		"MT_04A0140005",	"Eagle DDR" },
1739e39c5baSBill Taylor 	{ "X1289A-Z",		"SUN0010010001",	"Sun IB NEM DDR" },
1749e39c5baSBill Taylor 	{ "375-3548-01",	"SUN0060000001", "Sun IB EM DDR X4216A-Z" },
1759e39c5baSBill Taylor 	{ "375-3549-01",	"SUN0070000001", "Sun PCIe DDR X4217A" },
1769e39c5baSBill Taylor 	{ "375-3481-01",	"SUN0050000001",	"Sun PCIe EM SDR" },
1779e39c5baSBill Taylor 	{ "MHGH29-XSC",		"MT_0A60110002", "Eagle DDR PCIe Gen 2.0" },
1789e39c5baSBill Taylor 	{ "MHGH29-XSC",		"MT_0A60120005", "Eagle DDR PCIe Gen 2.0" },
1799e39c5baSBill Taylor 	{ "MHGH29-XTC",		"MT_0A50110002", "Eagle DDR PCIe Gen 2.0" },
1809e39c5baSBill Taylor 	{ "MHGH29-XTC",		"MT_0A50120005", "Eagle DDR PCIe Gen 2.0" },
1819e39c5baSBill Taylor 	{ "375-3605-01",	"SUN0160000001",	"Sun Mirage QDR" },
1829e39c5baSBill Taylor 	{ "375-3606-01",	"SUN0150000001",	"Sun Falcon QDR" },
1839e39c5baSBill Taylor 	{ "MHJH29-XTC",		"MT_04E0110003",	"Eagle QDR" },
184*f07a6d2aSShantkumar Hiremath 	{ "MHJH29-XSC",		"MT_0500120005", "Eagle QDR PCIe Gen 2.0" },
185*f07a6d2aSShantkumar Hiremath 	{ "MHQH29-XTC",		"MT_04E0120005", "Eagle QDR PCIe Gen 2.0" },
186*f07a6d2aSShantkumar Hiremath 	{ "MHQH19-XTC",		"MT_0C40110009", "Falcon QDR PCIe Gen 2.0" },
187*f07a6d2aSShantkumar Hiremath 	{ "MHQH29-XTC",		"MT_0BB0110003", "Falcon QDR PCIe Gen 2.0" },
188*f07a6d2aSShantkumar Hiremath 	{ "MHQH29-XTC",		"MT_0BB0120003", "Falcon QDR PCIe Gen 2.0" },
1899e39c5baSBill Taylor 	{ "375-3551-05",	"SUN0080000001",	"Sun C48-IB-NEM" }
1909e39c5baSBill Taylor };
1919e39c5baSBill Taylor 
1929e39c5baSBill Taylor /* Get mlx_mdr[] array size */
1939e39c5baSBill Taylor #define	MLX_SZ_MLX_MDR		sizeof (mlx_mdr)
1949e39c5baSBill Taylor #define	MLX_SZ_MLX_MDR_STRUCT	sizeof (mlx_mdr[0])
1959e39c5baSBill Taylor 
1969e39c5baSBill Taylor #define	MLX_MAX_ID		MLX_SZ_MLX_MDR/MLX_SZ_MLX_MDR_STRUCT
1979e39c5baSBill Taylor #define	MLX_PSID_SZ		16
1989e39c5baSBill Taylor #define	MLX_STR_ID_SZ		64
1999e39c5baSBill Taylor 
2009e39c5baSBill Taylor #ifdef __cplusplus
2019e39c5baSBill Taylor }
2029e39c5baSBill Taylor #endif
2039e39c5baSBill Taylor 
2049e39c5baSBill Taylor #endif /* _HDRS_MELLANOX_H */
205