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