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 9 * http://www.opensource.org/licenses/cddl1.txt. 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 (c) 2004-2011 Emulex. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _EMLXS_FW_H 28 #define _EMLXS_FW_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 #if 0 35 #define EMLXS_FW_TABLE_DEF /* Causes the firmware table to be */ 36 /* defined in local memory. */ 37 38 #define EMLXS_FW_IMAGE_DEF /* Causes the firmware image to be */ 39 /* defined in the firmware table. */ 40 #endif /* 0 */ 41 42 #define EMLXS_FW_MODULE "misc/"DRIVER_NAME"/"DRIVER_NAME"_fw" 43 44 /* Unique id for each firmware image */ 45 typedef enum emlxs_fwid 46 { 47 FW_NOT_PROVIDED = 0, 48 LP10000_FW, 49 LP11000_FW, 50 LP11002_FW, 51 LPe11000_FW, 52 LPe11002_FW, 53 LPe12000_FW 54 } emlxs_fwid_t; 55 56 /* Firmware image descriptor */ 57 typedef struct emlxs_firmware 58 { 59 emlxs_fwid_t id; 60 uint32_t size; 61 uint8_t *image; 62 char label[64]; 63 uint32_t kern; 64 uint32_t stub; 65 uint32_t sli1; 66 uint32_t sli2; 67 uint32_t sli3; 68 uint32_t sli4; 69 } emlxs_firmware_t; 70 71 72 #ifdef EMLXS_FW_TABLE_DEF 73 74 #ifndef MODFW_SUPPORT 75 #define EMLXS_FW_IMAGE_DEF 76 #endif /* MODFW_SUPPORT */ 77 78 /* Provide firmware information for each adapter */ 79 #include <fw_lp10000.h> 80 #include <fw_lp11000.h> 81 #include <fw_lp11002.h> 82 #include <fw_lpe11000.h> 83 #include <fw_lpe11002.h> 84 #include <fw_lpe12000.h> 85 86 /* Build the firmware table */ 87 #define EMLXS_FW_TABLE \ 88 {\ 89 {\ 90 LP10000_FW,\ 91 emlxs_lp10000_size,\ 92 emlxs_lp10000_image,\ 93 emlxs_lp10000_label,\ 94 emlxs_lp10000_kern,\ 95 emlxs_lp10000_stub,\ 96 emlxs_lp10000_sli1,\ 97 emlxs_lp10000_sli2,\ 98 emlxs_lp10000_sli3,\ 99 emlxs_lp10000_sli4\ 100 },\ 101 {\ 102 LP11000_FW,\ 103 emlxs_lp11000_size,\ 104 emlxs_lp11000_image,\ 105 emlxs_lp11000_label,\ 106 emlxs_lp11000_kern,\ 107 emlxs_lp11000_stub,\ 108 emlxs_lp11000_sli1,\ 109 emlxs_lp11000_sli2,\ 110 emlxs_lp11000_sli3,\ 111 emlxs_lp11000_sli4,\ 112 },\ 113 {\ 114 LP11002_FW,\ 115 emlxs_lp11002_size,\ 116 emlxs_lp11002_image,\ 117 emlxs_lp11002_label,\ 118 emlxs_lp11002_kern,\ 119 emlxs_lp11002_stub,\ 120 emlxs_lp11002_sli1,\ 121 emlxs_lp11002_sli2,\ 122 emlxs_lp11002_sli3,\ 123 emlxs_lp11002_sli4\ 124 },\ 125 {\ 126 LPe11000_FW,\ 127 emlxs_lpe11000_size,\ 128 emlxs_lpe11000_image,\ 129 emlxs_lpe11000_label,\ 130 emlxs_lpe11000_kern,\ 131 emlxs_lpe11000_stub,\ 132 emlxs_lpe11000_sli1,\ 133 emlxs_lpe11000_sli2,\ 134 emlxs_lpe11000_sli3,\ 135 emlxs_lpe11000_sli4\ 136 },\ 137 {\ 138 LPe11002_FW,\ 139 emlxs_lpe11002_size,\ 140 emlxs_lpe11002_image,\ 141 emlxs_lpe11002_label,\ 142 emlxs_lpe11002_kern,\ 143 emlxs_lpe11002_stub,\ 144 emlxs_lpe11002_sli1,\ 145 emlxs_lpe11002_sli2,\ 146 emlxs_lpe11002_sli3,\ 147 emlxs_lpe11002_sli4\ 148 },\ 149 {\ 150 LPe12000_FW,\ 151 emlxs_lpe12000_size,\ 152 emlxs_lpe12000_image,\ 153 emlxs_lpe12000_label,\ 154 emlxs_lpe12000_kern,\ 155 emlxs_lpe12000_stub,\ 156 emlxs_lpe12000_sli1,\ 157 emlxs_lpe12000_sli2,\ 158 emlxs_lpe12000_sli3,\ 159 emlxs_lpe12000_sli4\ 160 }\ 161 } 162 #endif /* EMLXS_FW_TABLE_DEF */ 163 164 #ifdef __cplusplus 165 } 166 #endif 167 168 #endif /* _EMLXS_FW_H */ 169