1 /* 2 * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * Redistribution of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 11 * Redistribution in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * Neither the name of Sun Microsystems, Inc. or the names of 16 * contributors may be used to endorse or promote products derived 17 * from this software without specific prior written permission. 18 * 19 * This software is provided "AS IS," without a warranty of any kind. 20 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, 21 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A 22 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. 23 * SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE 24 * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING 25 * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL 26 * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, 27 * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR 28 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF 29 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, 30 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 31 */ 32 33 #include <stddef.h> 34 #include <ipmitool/ipmi_strings.h> 35 #include <ipmitool/ipmi_constants.h> 36 #include <ipmitool/ipmi_sensor.h> 37 #include <ipmitool/ipmi_sel.h> /* for IPMI_OEM */ 38 39 const struct valstr ipmi_oem_info[] = { 40 41 { IPMI_OEM_UNKNOWN, "Unknown" }, 42 { IPMI_OEM_HP, "Hewlett-Packard" }, 43 { IPMI_OEM_SUN, "Sun Microsystems" }, 44 { IPMI_OEM_INTEL, "Intel Corporation" }, 45 { IPMI_OEM_LMC, "LMC" }, 46 { IPMI_OEM_RADISYS, "RadiSys Corporation" }, 47 { IPMI_OEM_TYAN, "Tyan Computer Corporation" }, 48 { IPMI_OEM_NEWISYS, "Newisys" }, 49 { IPMI_OEM_SUPERMICRO, "Supermicro" }, 50 { IPMI_OEM_GOOGLE, "Google" }, 51 { IPMI_OEM_KONTRON, "Kontron" }, 52 { IPMI_OEM_NOKIA, "Nokia" }, 53 { IPMI_OEM_PICMG, "PICMG" }, 54 { IPMI_OEM_PEPPERCON, "Peppercon AG" }, 55 { IPMI_OEM_DELL, "DELL Inc" }, 56 { IPMI_OEM_NEC, "NEC" }, 57 { IPMI_OEM_MAGNUM, "Magnum Technologies" }, 58 { IPMI_OEM_FUJITSU_SIEMENS, "Fujitsu Siemens" }, 59 { IPMI_OEM_TATUNG, "Tatung" }, 60 { IPMI_OEM_AMI, "AMI" }, 61 { IPMI_OEM_RARITAN, "Raritan" }, 62 { IPMI_OEM_AVOCENT, "Avocent" }, 63 { IPMI_OEM_OSA, "OSA" }, 64 { IPMI_OEM_TOSHIBA, "Toshiba" }, 65 { IPMI_OEM_HITACHI_116, "Hitachi" }, 66 { IPMI_OEM_HITACHI_399, "Hitachi" }, 67 { IPMI_OEM_NOKIA_SOLUTIONS_AND_NETWORKS, "Nokia Solutions and Networks" }, 68 { IPMI_OEM_BULL, "Bull Company" }, 69 { IPMI_OEM_PPS, "Pigeon Point Systems" }, 70 { IPMI_OEM_BROADCOM, "Broadcom Corporation" }, 71 { IPMI_OEM_ERICSSON, "Ericsson AB"}, 72 { IPMI_OEM_QUANTA, "Quanta" }, 73 { IPMI_OEM_VITA, "VITA" }, 74 { IPMI_OEM_ADVANTECH, "Advantech" }, 75 /************************************************************************ 76 * Add ID String for IANA Enterprise Number of IBM & ADLINK 77 * https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers 78 * 2 79 * IBM 80 * Kristine Adamson 81 * adamson&us.ibm.com 82 * 4769 83 * IBM Corporation 84 * Victor Sample 85 * vsample&us.ibm.com 86 * 20301 87 * IBM eServer X 88 * Lynn Fore 89 * sls&us.ibm.com 90 * 24339 91 * ADLINK TECHNOLOGY INC. 92 * Ryan Hsu 93 * ryan.hsu&adlinktech.com 94 ************************************************************************/ 95 { IPMI_OEM_IBM_2, "IBM" }, 96 { IPMI_OEM_IBM_4769, "IBM Corporation" }, 97 { IPMI_OEM_IBM_20301, "IBM eServer X" }, 98 { IPMI_OEM_ADLINK_24339, "ADLINK Technology Inc." }, 99 { 0xffff , NULL }, 100 }; 101 102 const struct oemvalstr ipmi_oem_product_info[] = { 103 /* Keep OEM grouped together */ 104 /* Intel stuff, thanks to Tim Bell */ 105 { IPMI_OEM_INTEL, 0x000C, "TSRLT2" }, 106 { IPMI_OEM_INTEL, 0x001B, "TIGPR2U" }, 107 { IPMI_OEM_INTEL, 0x0022, "TIGI2U" }, 108 { IPMI_OEM_INTEL, 0x0026, "Bridgeport" }, 109 { IPMI_OEM_INTEL, 0x0028, "S5000PAL" }, 110 { IPMI_OEM_INTEL, 0x0029, "S5000PSL" }, 111 { IPMI_OEM_INTEL, 0x0100, "Tiger4" }, 112 { IPMI_OEM_INTEL, 0x0103, "McCarran" }, 113 { IPMI_OEM_INTEL, 0x0800, "ZT5504" }, 114 { IPMI_OEM_INTEL, 0x0808, "MPCBL0001" }, 115 { IPMI_OEM_INTEL, 0x0811, "TIGW1U" }, 116 { IPMI_OEM_INTEL, 0x4311, "NSI2U" }, 117 /* Kontron */ 118 { IPMI_OEM_KONTRON,4000, "AM4000 AdvancedMC" }, 119 { IPMI_OEM_KONTRON,4001, "AM4001 AdvancedMC" }, 120 { IPMI_OEM_KONTRON,4002, "AM4002 AdvancedMC" }, 121 { IPMI_OEM_KONTRON,4010, "AM4010 AdvancedMC" }, 122 { IPMI_OEM_KONTRON,5503, "AM4500/4520 AdvancedMC" }, 123 { IPMI_OEM_KONTRON,5504, "AM4300 AdvancedMC" }, 124 { IPMI_OEM_KONTRON,5507, "AM4301 AdvancedMC" }, 125 { IPMI_OEM_KONTRON,5508, "AM4330 AdvancedMC" }, 126 { IPMI_OEM_KONTRON,5520, "KTC5520/EATX" }, 127 { IPMI_OEM_KONTRON,5703, "RTM8020" }, 128 { IPMI_OEM_KONTRON,5704, "RTM8030" }, 129 { IPMI_OEM_KONTRON,5705, "RTM8050" }, 130 { IPMI_OEM_KONTRON,6000, "CP6000" }, 131 { IPMI_OEM_KONTRON,6006, "DT-64" }, 132 { IPMI_OEM_KONTRON,6010, "CP6010" }, 133 { IPMI_OEM_KONTRON,6011, "CP6011" }, 134 { IPMI_OEM_KONTRON,6012, "CP6012" }, 135 { IPMI_OEM_KONTRON,6014, "CP6014" }, 136 { IPMI_OEM_KONTRON,5002, "AT8001" }, 137 { IPMI_OEM_KONTRON,5003, "AT8010" }, 138 { IPMI_OEM_KONTRON,5004, "AT8020" }, 139 { IPMI_OEM_KONTRON,5006, "AT8030 IPMC" }, 140 { IPMI_OEM_KONTRON,2025, "AT8030 MMC" }, 141 { IPMI_OEM_KONTRON,5007, "AT8050" }, 142 { IPMI_OEM_KONTRON,5301, "AT8400" }, 143 { IPMI_OEM_KONTRON,5303, "AT8901" }, 144 /* Broadcom */ 145 { IPMI_OEM_BROADCOM, 5725, "BCM5725" }, 146 /* Ericsson */ 147 { IPMI_OEM_ERICSSON, 0x0054, "Phantom" }, 148 /* Advantech */ 149 /* ATCA Blades */ 150 { IPMI_OEM_ADVANTECH, 0x3393, "MIC-3393" }, 151 { IPMI_OEM_ADVANTECH, 0x3395, "MIC-3395" }, 152 { IPMI_OEM_ADVANTECH, 0x3396, "MIC-3396" }, 153 { IPMI_OEM_ADVANTECH, 0x5302, "MIC-5302" }, 154 { IPMI_OEM_ADVANTECH, 0x5304, "MIC-5304" }, 155 { IPMI_OEM_ADVANTECH, 0x5320, "MIC-5320" }, 156 { IPMI_OEM_ADVANTECH, 0x5321, "MIC-5321" }, 157 { IPMI_OEM_ADVANTECH, 0x5322, "MIC-5322" }, 158 { IPMI_OEM_ADVANTECH, 0x5332, "MIC-5332" }, 159 { IPMI_OEM_ADVANTECH, 0x5333, "MIC-5333" }, 160 { IPMI_OEM_ADVANTECH, 0x5342, "MIC-5342" }, 161 { IPMI_OEM_ADVANTECH, 0x5343, "MIC-5343" }, 162 { IPMI_OEM_ADVANTECH, 0x5344, "MIC-5344" }, 163 { IPMI_OEM_ADVANTECH, 0x5345, "MIC-5345" }, 164 { IPMI_OEM_ADVANTECH, 0x5201, "MIC-5201 Dual 10GE AMC"}, 165 { IPMI_OEM_ADVANTECH, 0x5203, "MIC-5203 Quad GbE AMC"}, 166 { IPMI_OEM_ADVANTECH, 0x5212, "MIC-5212 Dual 10GE AMC"}, 167 /* AdvancedMC */ 168 { IPMI_OEM_ADVANTECH, 0x5401, "MIC-5401" }, 169 { IPMI_OEM_ADVANTECH, 0x5601, "MIC-5601" }, 170 { IPMI_OEM_ADVANTECH, 0x5602, "MIC-5602" }, 171 { IPMI_OEM_ADVANTECH, 0x5604, "MIC-5604" }, 172 { IPMI_OEM_ADVANTECH, 0x5603, "MIC-5603" }, 173 { IPMI_OEM_ADVANTECH, 0x6311, "MIC-6311" }, 174 { IPMI_OEM_ADVANTECH, 0x6313, "MIC-6313" }, 175 { IPMI_OEM_ADVANTECH, 0x8301, "MIC-8301" }, 176 { IPMI_OEM_ADVANTECH, 0x8302, "MIC-8302" }, 177 { IPMI_OEM_ADVANTECH, 0x8304, "MIC-8304" }, 178 { IPMI_OEM_ADVANTECH, 0x5101, "RTM-5101" }, 179 { IPMI_OEM_ADVANTECH, 0x5102, "RTM-5102" }, 180 { IPMI_OEM_ADVANTECH, 0x5106, "RTM-5106" }, 181 { IPMI_OEM_ADVANTECH, 0x5107, "RTM-5107" }, 182 { IPMI_OEM_ADVANTECH, 0x5210, "RTM-5210" }, 183 { IPMI_OEM_ADVANTECH, 0x5220, "RTM-5220" }, 184 { IPMI_OEM_ADVANTECH, 0x5104, "RTM-5104" }, 185 { IPMI_OEM_ADVANTECH, 0x5500, "UTCA-5500"}, 186 { IPMI_OEM_ADVANTECH, 0x5503, "UTCA-5503"}, 187 { IPMI_OEM_ADVANTECH, 0x5504, "UTCA-5504"}, 188 { IPMI_OEM_ADVANTECH, 0x5801, "UTCA-5801"}, 189 { IPMI_OEM_ADVANTECH, 0x2210, "NCPB-2210"}, 190 { IPMI_OEM_ADVANTECH, 0x2305, "NCPB-2305"}, 191 { IPMI_OEM_ADVANTECH, 0x2320, "NCPB-2320"}, 192 { IPMI_OEM_ADVANTECH, 0x3109, "NCP-3109" }, 193 { IPMI_OEM_ADVANTECH, 0x3110, "NCP-3110" }, 194 { IPMI_OEM_ADVANTECH, 0x3200, "NCP-3200" }, 195 { IPMI_OEM_ADVANTECH, 0x5060, "SMM-5060" }, 196 { IPMI_OEM_ADVANTECH, 0x3210, "FWA-3210" }, 197 { IPMI_OEM_ADVANTECH, 0x3220, "FWA-3220" }, 198 { IPMI_OEM_ADVANTECH, 0x3221, "FWA-3221" }, 199 { IPMI_OEM_ADVANTECH, 0x3230, "FWA-3230" }, 200 { IPMI_OEM_ADVANTECH, 0x3231, "FWA-3231" }, 201 { IPMI_OEM_ADVANTECH, 0x3233, "FWA-3233" }, 202 { IPMI_OEM_ADVANTECH, 0x3250, "FWA-3250" }, 203 { IPMI_OEM_ADVANTECH, 0x3260, "FWA-3260" }, 204 { IPMI_OEM_ADVANTECH, 0x5020, "FWA-5020" }, 205 { IPMI_OEM_ADVANTECH, 0x6510, "FWA-6510" }, 206 { IPMI_OEM_ADVANTECH, 0x6511, "FWA-6511" }, 207 { IPMI_OEM_ADVANTECH, 0x6512, "FWA-6512" }, 208 { IPMI_OEM_ADVANTECH, 0x6520, "FWA-6520" }, 209 { IPMI_OEM_ADVANTECH, 0x6521, "FWA-6521" }, 210 { IPMI_OEM_ADVANTECH, 0x6522, "FWA-6522" }, 211 { IPMI_OEM_ADVANTECH, 0x7310, "ATCA-7310"}, 212 { IPMI_OEM_ADVANTECH, 0x7330, "ATCA-7330"}, 213 { IPMI_OEM_ADVANTECH, 0x7410, "ATCA-7410"}, 214 { IPMI_OEM_ADVANTECH, 0x9023, "ATCA-9023"}, 215 { IPMI_OEM_ADVANTECH, 0x9112, "ATCA-9112"}, 216 { IPMI_OEM_ADVANTECH, 0x4201, "AMC-4201" }, 217 { IPMI_OEM_ADVANTECH, 0x4202, "AMC-4202" }, 218 { IPMI_OEM_ADVANTECH, 0x3211, "NAMB-3211"}, 219 { IPMI_OEM_ADVANTECH, 0x1207, "CPCI-1207"}, 220 { IPMI_OEM_ADVANTECH, 0x120E, "CPCI-1207 Test Board"}, 221 { IPMI_OEM_ADVANTECH, 0x1304, "CPCI-1304"}, 222 { IPMI_OEM_ADVANTECH, 0x7001, "CPCI-7001"}, 223 { IPMI_OEM_ADVANTECH, 0x8220, "CPCI-8220"}, 224 { IPMI_OEM_ADVANTECH, 0x9001, "ESP-9001" }, 225 { IPMI_OEM_ADVANTECH, 0x9002, "ESP-9002" }, 226 { IPMI_OEM_ADVANTECH, 0x9012, "ESP-9012" }, 227 { IPMI_OEM_ADVANTECH, 0x9212, "ESP-9212" }, 228 { IPMI_OEM_ADVANTECH, 0x6000, "CGS-6000" }, 229 { IPMI_OEM_ADVANTECH, 0x6010, "CGS-6010" }, 230 /* ADLINK Technology Inc. */ 231 /* AdvancedTCA Processor Blades */ 232 { IPMI_OEM_ADLINK_24339, 0x3100, "aTCA-3100" }, 233 { IPMI_OEM_ADLINK_24339, 0x3110, "aTCA-3110" }, 234 { IPMI_OEM_ADLINK_24339, 0x3150, "aTCA-3150" }, 235 { IPMI_OEM_ADLINK_24339, 0x3420, "aTCA-3420" }, 236 { IPMI_OEM_ADLINK_24339, 0x3710, "aTCA-3710" }, 237 { IPMI_OEM_ADLINK_24339, 0x6100, "aTCA-6100" }, 238 { IPMI_OEM_ADLINK_24339, 0x6200, "aTCA-6200" }, 239 { IPMI_OEM_ADLINK_24339, 0x6250, "aTCA-6250/6250STW" }, 240 { IPMI_OEM_ADLINK_24339, 0x6270, "aTCA-R6270" }, 241 { IPMI_OEM_ADLINK_24339, 0x6280, "aTCA-R6280" }, 242 { IPMI_OEM_ADLINK_24339, 0x6890, "aTCA-6890" }, 243 { IPMI_OEM_ADLINK_24339, 0x6891, "aTCA-6891" }, 244 { IPMI_OEM_ADLINK_24339, 0x6900, "aTCA-6900" }, 245 { IPMI_OEM_ADLINK_24339, 0x6905, "aTCA-R6905" }, 246 { IPMI_OEM_ADLINK_24339, 0x690A, "aTCA-R6900" }, 247 { IPMI_OEM_ADLINK_24339, 0x8214, "aTCA-8214" }, 248 { IPMI_OEM_ADLINK_24339, 0x8606, "aTCA-8606" }, 249 { IPMI_OEM_ADLINK_24339, 0x9300, "aTCA-9300" }, 250 { IPMI_OEM_ADLINK_24339, 0x9700, "aTCA-9700" }, 251 { IPMI_OEM_ADLINK_24339, 0x9700, "aTCA-R9700" }, 252 { IPMI_OEM_ADLINK_24339, 0x970D, "aTCA-9700D" }, 253 { IPMI_OEM_ADLINK_24339, 0x9710, "aTCA-9710" }, 254 { IPMI_OEM_ADLINK_24339, 0x9710, "aTCA-R9710" }, 255 { IPMI_OEM_ADLINK_24339, 0xF001, "aTCA-FN001" }, 256 { IPMI_OEM_ADLINK_24339, 0xF2A0, "aTCA-F2AX" }, 257 { IPMI_OEM_ADLINK_24339, 0xF5A0, "aTCA-F5AX" }, 258 /* CompactPCI Blades */ 259 { IPMI_OEM_ADLINK_24339, 0x3510, "cPCI-3510" }, 260 { IPMI_OEM_ADLINK_24339, 0x3970, "cPCI-3970" }, 261 { IPMI_OEM_ADLINK_24339, 0x6010, "cPCI-6010" }, 262 { IPMI_OEM_ADLINK_24339, 0x6210, "cPCI-6210" }, 263 { IPMI_OEM_ADLINK_24339, 0x6510, "cPCI-6510" }, 264 { IPMI_OEM_ADLINK_24339, 0x6520, "cPCI-6520" }, 265 { IPMI_OEM_ADLINK_24339, 0x6525, "cPCI-6525" }, 266 { IPMI_OEM_ADLINK_24339, 0x6530, "cPCI-6530/6530BL" }, 267 { IPMI_OEM_ADLINK_24339, 0x6600, "cPCI-6600" }, 268 { IPMI_OEM_ADLINK_24339, 0x6840, "cPCI-6840" }, 269 { IPMI_OEM_ADLINK_24339, 0x6870, "cPCI-6870" }, 270 { IPMI_OEM_ADLINK_24339, 0x6880, "cPCI-6880" }, 271 { IPMI_OEM_ADLINK_24339, 0x6910, "cPCI-6910" }, 272 { IPMI_OEM_ADLINK_24339, 0x6920, "cPCI-6920" }, 273 { IPMI_OEM_ADLINK_24339, 0x6930, "cPCI-6930" }, 274 { IPMI_OEM_ADLINK_24339, 0x6940, "cPCI-6940" }, 275 /* VPX Blades */ 276 { IPMI_OEM_ADLINK_24339, 0x3000, "VPX3000" }, 277 { IPMI_OEM_ADLINK_24339, 0x3001, "VPX3001" }, 278 { IPMI_OEM_ADLINK_24339, 0x3002, "VPX3002" }, 279 { IPMI_OEM_ADLINK_24339, 0x3010, "VPX3010" }, 280 { IPMI_OEM_ADLINK_24339, 0x3F10, "VPX3G10" }, 281 { IPMI_OEM_ADLINK_24339, 0x6000, "VPX6000" }, 282 /* Network Appliance */ 283 { IPMI_OEM_ADLINK_24339, 0x0410, "MXN-0410" }, 284 { IPMI_OEM_ADLINK_24339, 0x2600, "MCN-2600" }, 285 { IPMI_OEM_ADLINK_24339, 0x1500, "MCN-1500" }, 286 287 { 0xffffff , 0xffff , NULL }, 288 }; 289 290 const char *ipmi_generic_sensor_type_vals[] = { 291 "reserved", 292 "Temperature", "Voltage", "Current", "Fan", 293 "Physical Security", "Platform Security", "Processor", 294 "Power Supply", "Power Unit", "Cooling Device", "Other", 295 "Memory", "Drive Slot / Bay", "POST Memory Resize", 296 "System Firmwares", "Event Logging Disabled", "Watchdog1", 297 "System Event", "Critical Interrupt", "Button", 298 "Module / Board", "Microcontroller", "Add-in Card", 299 "Chassis", "Chip Set", "Other FRU", "Cable / Interconnect", 300 "Terminator", "System Boot Initiated", "Boot Error", 301 "OS Boot", "OS Critical Stop", "Slot / Connector", 302 "System ACPI Power State", "Watchdog2", "Platform Alert", 303 "Entity Presence", "Monitor ASIC", "LAN", 304 "Management Subsys Health", "Battery", "Session Audit", 305 "Version Change", "FRU State", 306 NULL 307 }; 308 309 const struct oemvalstr ipmi_oem_sensor_type_vals[] = { 310 /* Keep OEM grouped together */ 311 { IPMI_OEM_KONTRON, 0xC0, "Firmware Info" }, 312 { IPMI_OEM_KONTRON, 0xC2, "Init Agent" }, 313 { IPMI_OEM_KONTRON, 0xC2, "Board Reset(cPCI)" }, 314 { IPMI_OEM_KONTRON, 0xC3, "IPMBL Link State" }, 315 { IPMI_OEM_KONTRON, 0xC4, "Board Reset" }, 316 { IPMI_OEM_KONTRON, 0xC5, "FRU Information Agent" }, 317 { IPMI_OEM_KONTRON, 0xC6, "POST Value Sensor" }, 318 { IPMI_OEM_KONTRON, 0xC7, "FWUM Status" }, 319 { IPMI_OEM_KONTRON, 0xC8, "Switch Mngt Software Status" }, 320 { IPMI_OEM_KONTRON, 0xC9, "OEM Diagnostic Status" }, 321 { IPMI_OEM_KONTRON, 0xCA, "Component Firmware Upgrade" }, 322 { IPMI_OEM_KONTRON, 0xCB, "FRU Over Current" }, 323 { IPMI_OEM_KONTRON, 0xCC, "FRU Sensor Error" }, 324 { IPMI_OEM_KONTRON, 0xCD, "FRU Power Denied" }, 325 { IPMI_OEM_KONTRON, 0xCE, "Reserved" }, 326 { IPMI_OEM_KONTRON, 0xCF, "Board Reset" }, 327 { IPMI_OEM_KONTRON, 0xD0, "Clock Resource Control" }, 328 { IPMI_OEM_KONTRON, 0xD1, "Power State" }, 329 { IPMI_OEM_KONTRON, 0xD2, "FRU Mngt Power Failure" }, 330 { IPMI_OEM_KONTRON, 0xD3, "Jumper Status" }, 331 { IPMI_OEM_KONTRON, 0xF2, "RTM Module Hotswap" }, 332 /* PICMG Sensor Types */ 333 { IPMI_OEM_PICMG, 0xF0, "FRU Hot Swap" }, 334 { IPMI_OEM_PICMG, 0xF1,"IPMB Physical Link" }, 335 { IPMI_OEM_PICMG, 0xF2, "Module Hot Swap" }, 336 { IPMI_OEM_PICMG, 0xF3, "Power Channel Notification" }, 337 { IPMI_OEM_PICMG, 0xF4, "Telco Alarm Input" }, 338 /* VITA 46.11 Sensor Types */ 339 { IPMI_OEM_VITA, 0xF0, "FRU State" }, 340 { IPMI_OEM_VITA, 0xF1, "System IPMB Link" }, 341 { IPMI_OEM_VITA, 0xF2, "FRU Health" }, 342 { IPMI_OEM_VITA, 0xF3, "FRU Temperature" }, 343 { IPMI_OEM_VITA, 0xF4, "Payload Test Results" }, 344 { IPMI_OEM_VITA, 0xF5, "Payload Test Status" }, 345 346 { 0xffffff, 0x00, NULL } 347 }; 348 349 const struct valstr ipmi_netfn_vals[] = { 350 { IPMI_NETFN_CHASSIS, "Chassis" }, 351 { IPMI_NETFN_BRIDGE, "Bridge" }, 352 { IPMI_NETFN_SE, "SensorEvent" }, 353 { IPMI_NETFN_APP, "Application" }, 354 { IPMI_NETFN_FIRMWARE, "Firmware" }, 355 { IPMI_NETFN_STORAGE, "Storage" }, 356 { IPMI_NETFN_TRANSPORT, "Transport" }, 357 { 0xff, NULL }, 358 }; 359 360 /* 361 * From table 26-4 of the IPMI v2 specification 362 */ 363 const struct valstr ipmi_bit_rate_vals[] = { 364 { 0x00, "IPMI-Over-Serial-Setting"}, /* Using the value in the IPMI Over Serial Config */ 365 { 0x06, "9.6" }, 366 { 0x07, "19.2" }, 367 { 0x08, "38.4" }, 368 { 0x09, "57.6" }, 369 { 0x0A, "115.2" }, 370 { 0x00, NULL }, 371 }; 372 373 const struct valstr ipmi_channel_activity_type_vals[] = { 374 { 0, "IPMI Messaging session active" }, 375 { 1, "Callback Messaging session active" }, 376 { 2, "Dial-out Alert active" }, 377 { 3, "TAP Page Active" }, 378 { 0x00, NULL }, 379 }; 380 381 382 const struct valstr ipmi_privlvl_vals[] = { 383 { IPMI_SESSION_PRIV_CALLBACK, "CALLBACK" }, 384 { IPMI_SESSION_PRIV_USER, "USER" }, 385 { IPMI_SESSION_PRIV_OPERATOR, "OPERATOR" }, 386 { IPMI_SESSION_PRIV_ADMIN, "ADMINISTRATOR" }, 387 { IPMI_SESSION_PRIV_OEM, "OEM" }, 388 { 0xF, "NO ACCESS" }, 389 { 0xFF, NULL }, 390 }; 391 392 393 const struct valstr ipmi_set_in_progress_vals[] = { 394 { IPMI_SET_IN_PROGRESS_SET_COMPLETE, "set-complete" }, 395 { IPMI_SET_IN_PROGRESS_IN_PROGRESS, "set-in-progress" }, 396 { IPMI_SET_IN_PROGRESS_COMMIT_WRITE, "commit-write" }, 397 { 0, NULL }, 398 }; 399 400 401 const struct valstr ipmi_authtype_session_vals[] = { 402 { IPMI_SESSION_AUTHTYPE_NONE, "NONE" }, 403 { IPMI_SESSION_AUTHTYPE_MD2, "MD2" }, 404 { IPMI_SESSION_AUTHTYPE_MD5, "MD5" }, 405 { IPMI_SESSION_AUTHTYPE_PASSWORD, "PASSWORD" }, 406 { IPMI_SESSION_AUTHTYPE_OEM, "OEM" }, 407 { IPMI_SESSION_AUTHTYPE_RMCP_PLUS,"RMCP+" }, 408 { 0xFF, NULL }, 409 }; 410 411 412 const struct valstr ipmi_authtype_vals[] = { 413 { IPMI_1_5_AUTH_TYPE_BIT_NONE, "NONE" }, 414 { IPMI_1_5_AUTH_TYPE_BIT_MD2, "MD2" }, 415 { IPMI_1_5_AUTH_TYPE_BIT_MD5, "MD5" }, 416 { IPMI_1_5_AUTH_TYPE_BIT_PASSWORD, "PASSWORD" }, 417 { IPMI_1_5_AUTH_TYPE_BIT_OEM, "OEM" }, 418 { 0, NULL }, 419 }; 420 421 const struct valstr entity_id_vals[] = { 422 { 0x00, "Unspecified" }, 423 { 0x01, "Other" }, 424 { 0x02, "Unknown" }, 425 { 0x03, "Processor" }, 426 { 0x04, "Disk or Disk Bay" }, 427 { 0x05, "Peripheral Bay" }, 428 { 0x06, "System Management Module" }, 429 { 0x07, "System Board" }, 430 { 0x08, "Memory Module" }, 431 { 0x09, "Processor Module" }, 432 { 0x0a, "Power Supply" }, 433 { 0x0b, "Add-in Card" }, 434 { 0x0c, "Front Panel Board" }, 435 { 0x0d, "Back Panel Board" }, 436 { 0x0e, "Power System Board" }, 437 { 0x0f, "Drive Backplane" }, 438 { 0x10, "System Internal Expansion Board" }, 439 { 0x11, "Other System Board" }, 440 { 0x12, "Processor Board" }, 441 { 0x13, "Power Unit" }, 442 { 0x14, "Power Module" }, 443 { 0x15, "Power Management" }, 444 { 0x16, "Chassis Back Panel Board" }, 445 { 0x17, "System Chassis" }, 446 { 0x18, "Sub-Chassis" }, 447 { 0x19, "Other Chassis Board" }, 448 { 0x1a, "Disk Drive Bay" }, 449 { 0x1b, "Peripheral Bay" }, 450 { 0x1c, "Device Bay" }, 451 { 0x1d, "Fan Device" }, 452 { 0x1e, "Cooling Unit" }, 453 { 0x1f, "Cable/Interconnect" }, 454 { 0x20, "Memory Device" }, 455 { 0x21, "System Management Software" }, 456 { 0x22, "BIOS" }, 457 { 0x23, "Operating System" }, 458 { 0x24, "System Bus" }, 459 { 0x25, "Group" }, 460 { 0x26, "Remote Management Device" }, 461 { 0x27, "External Environment" }, 462 { 0x28, "Battery" }, 463 { 0x29, "Processing Blade" }, 464 { 0x2A, "Connectivity Switch" }, 465 { 0x2B, "Processor/Memory Module" }, 466 { 0x2C, "I/O Module" }, 467 { 0x2D, "Processor/IO Module" }, 468 { 0x2E, "Management Controller Firmware" }, 469 { 0x2F, "IPMI Channel" }, 470 { 0x30, "PCI Bus" }, 471 { 0x31, "PCI Express Bus" }, 472 { 0x32, "SCSI Bus (parallel)" }, 473 { 0x33, "SATA/SAS Bus" }, 474 { 0x34, "Processor/Front-Side Bus" }, 475 { 0x35, "Real Time Clock(RTC)" }, 476 { 0x36, "Reserved" }, 477 { 0x37, "Air Inlet" }, 478 { 0x38, "Reserved" }, 479 { 0x39, "Reserved" }, 480 { 0x3A, "Reserved" }, 481 { 0x3B, "Reserved" }, 482 { 0x3C, "Reserved" }, 483 { 0x3D, "Reserved" }, 484 { 0x3E, "Reserved" }, 485 { 0x3F, "Reserved" }, 486 { 0x40, "Air Inlet" }, 487 { 0x41, "Processor" }, 488 { 0x42, "Baseboard/Main System Board" }, 489 /* PICMG */ 490 { 0xA0, "PICMG Front Board" }, 491 { 0xC0, "PICMG Rear Transition Module" }, 492 { 0xC1, "PICMG AdvancedMC Module" }, 493 { 0xF0, "PICMG Shelf Management Controller" }, 494 { 0xF1, "PICMG Filtration Unit" }, 495 { 0xF2, "PICMG Shelf FRU Information" }, 496 { 0xF3, "PICMG Alarm Panel" }, 497 { 0x00, NULL }, 498 }; 499 500 const struct valstr entity_device_type_vals[] = { 501 { 0x00, "Reserved" }, 502 { 0x01, "Reserved" }, 503 { 0x02, "DS1624 temperature sensor" }, 504 { 0x03, "DS1621 temperature sensor" }, 505 { 0x04, "LM75 Temperature Sensor" }, 506 { 0x05, "Heceta ASIC" }, 507 { 0x06, "Reserved" }, 508 { 0x07, "Reserved" }, 509 { 0x08, "EEPROM, 24C01" }, 510 { 0x09, "EEPROM, 24C02" }, 511 { 0x0a, "EEPROM, 24C04" }, 512 { 0x0b, "EEPROM, 24C08" }, 513 { 0x0c, "EEPROM, 24C16" }, 514 { 0x0d, "EEPROM, 24C17" }, 515 { 0x0e, "EEPROM, 24C32" }, 516 { 0x0f, "EEPROM, 24C64" }, 517 { 0x1000, "IPMI FRU Inventory" }, 518 { 0x1001, "DIMM Memory ID" }, 519 { 0x1002, "IPMI FRU Inventory" }, 520 { 0x1003, "System Processor Cartridge FRU" }, 521 { 0x11, "Reserved" }, 522 { 0x12, "Reserved" }, 523 { 0x13, "Reserved" }, 524 { 0x14, "PCF 8570 256 byte RAM" }, 525 { 0x15, "PCF 8573 clock/calendar" }, 526 { 0x16, "PCF 8574A I/O Port" }, 527 { 0x17, "PCF 8583 clock/calendar" }, 528 { 0x18, "PCF 8593 clock/calendar" }, 529 { 0x19, "Clock calendar" }, 530 { 0x1a, "PCF 8591 A/D, D/A Converter" }, 531 { 0x1b, "I/O Port" }, 532 { 0x1c, "A/D Converter" }, 533 { 0x1d, "D/A Converter" }, 534 { 0x1e, "A/D, D/A Converter" }, 535 { 0x1f, "LCD Controller/Driver" }, 536 { 0x20, "Core Logic (Chip set) Device" }, 537 { 0x21, "LMC6874 Intelligent Battery controller" }, 538 { 0x22, "Intelligent Batter controller" }, 539 { 0x23, "Combo Management ASIC" }, 540 { 0x24, "Maxim 1617 Temperature Sensor" }, 541 { 0xbf, "Other/Unspecified" }, 542 { 0x00, NULL }, 543 }; 544 545 const struct valstr ipmi_channel_protocol_vals[] = { 546 { 0x00, "reserved" }, 547 { 0x01, "IPMB-1.0" }, 548 { 0x02, "ICMB-1.0" }, 549 { 0x03, "reserved" }, 550 { 0x04, "IPMI-SMBus" }, 551 { 0x05, "KCS" }, 552 { 0x06, "SMIC" }, 553 { 0x07, "BT-10" }, 554 { 0x08, "BT-15" }, 555 { 0x09, "TMode" }, 556 { 0x1c, "OEM 1" }, 557 { 0x1d, "OEM 2" }, 558 { 0x1e, "OEM 3" }, 559 { 0x1f, "OEM 4" }, 560 { 0x00, NULL }, 561 }; 562 563 564 const struct valstr ipmi_channel_medium_vals[] = { 565 { IPMI_CHANNEL_MEDIUM_RESERVED, "reserved" }, 566 { IPMI_CHANNEL_MEDIUM_IPMB_I2C, "IPMB (I2C)" }, 567 { IPMI_CHANNEL_MEDIUM_ICMB_1, "ICMB v1.0" }, 568 { IPMI_CHANNEL_MEDIUM_ICMB_09, "ICMB v0.9" }, 569 { IPMI_CHANNEL_MEDIUM_LAN, "802.3 LAN" }, 570 { IPMI_CHANNEL_MEDIUM_SERIAL, "Serial/Modem" }, 571 { IPMI_CHANNEL_MEDIUM_LAN_OTHER,"Other LAN" }, 572 { IPMI_CHANNEL_MEDIUM_SMBUS_PCI,"PCI SMBus" }, 573 { IPMI_CHANNEL_MEDIUM_SMBUS_1, "SMBus v1.0/v1.1" }, 574 { IPMI_CHANNEL_MEDIUM_SMBUS_2, "SMBus v2.0" }, 575 { IPMI_CHANNEL_MEDIUM_USB_1, "USB 1.x" }, 576 { IPMI_CHANNEL_MEDIUM_USB_2, "USB 2.x" }, 577 { IPMI_CHANNEL_MEDIUM_SYSTEM, "System Interface" }, 578 { 0x00, NULL }, 579 }; 580 581 const struct valstr completion_code_vals[] = { 582 { 0x00, "Command completed normally" }, 583 { 0xc0, "Node busy" }, 584 { 0xc1, "Invalid command" }, 585 { 0xc2, "Invalid command on LUN" }, 586 { 0xc3, "Timeout" }, 587 { 0xc4, "Out of space" }, 588 { 0xc5, "Reservation cancelled or invalid" }, 589 { 0xc6, "Request data truncated" }, 590 { 0xc7, "Request data length invalid" }, 591 { 0xc8, "Request data field length limit exceeded" }, 592 { 0xc9, "Parameter out of range" }, 593 { 0xca, "Cannot return number of requested data bytes" }, 594 { 0xcb, "Requested sensor, data, or record not found" }, 595 { 0xcc, "Invalid data field in request" }, 596 { 0xcd, "Command illegal for specified sensor or record type" }, 597 { 0xce, "Command response could not be provided" }, 598 { 0xcf, "Cannot execute duplicated request" }, 599 { 0xd0, "SDR Repository in update mode" }, 600 { 0xd1, "Device firmeware in update mode" }, 601 { 0xd2, "BMC initialization in progress" }, 602 { 0xd3, "Destination unavailable" }, 603 { 0xd4, "Insufficient privilege level" }, 604 { 0xd5, "Command not supported in present state" }, 605 { 0xd6, "Cannot execute command, command disabled" }, 606 { 0xff, "Unspecified error" }, 607 { 0x00, NULL } 608 }; 609 610 const struct valstr ipmi_chassis_power_control_vals[] = { 611 { IPMI_CHASSIS_CTL_POWER_DOWN, "Down/Off" }, 612 { IPMI_CHASSIS_CTL_POWER_UP, "Up/On" }, 613 { IPMI_CHASSIS_CTL_POWER_CYCLE, "Cycle" }, 614 { IPMI_CHASSIS_CTL_HARD_RESET, "Reset" }, 615 { IPMI_CHASSIS_CTL_PULSE_DIAG, "Diag" }, 616 { IPMI_CHASSIS_CTL_ACPI_SOFT, "Soft" }, 617 { 0x00, NULL }, 618 }; 619 620 const struct valstr ipmi_auth_algorithms[] = { 621 { IPMI_AUTH_RAKP_NONE, "none" }, 622 { IPMI_AUTH_RAKP_HMAC_SHA1, "hmac_sha1" }, 623 { IPMI_AUTH_RAKP_HMAC_MD5, "hmac_md5" }, 624 #ifdef HAVE_CRYPTO_SHA256 625 { IPMI_AUTH_RAKP_HMAC_SHA256, "hmac_sha256" }, 626 #endif /* HAVE_CRYPTO_SHA256 */ 627 { 0x00, NULL } 628 }; 629 630 const struct valstr ipmi_integrity_algorithms[] = { 631 { IPMI_INTEGRITY_NONE, "none" }, 632 { IPMI_INTEGRITY_HMAC_SHA1_96, "hmac_sha1_96" }, 633 { IPMI_INTEGRITY_HMAC_MD5_128, "hmac_md5_128" }, 634 { IPMI_INTEGRITY_MD5_128 , "md5_128" }, 635 #ifdef HAVE_CRYPTO_SHA256 636 { IPMI_INTEGRITY_HMAC_SHA256_128, "sha256_128" }, 637 #endif /* HAVE_CRYPTO_SHA256 */ 638 { 0x00, NULL } 639 }; 640 641 const struct valstr ipmi_encryption_algorithms[] = { 642 { IPMI_CRYPT_NONE, "none" }, 643 { IPMI_CRYPT_AES_CBC_128, "aes_cbc_128" }, 644 { IPMI_CRYPT_XRC4_128, "xrc4_128" }, 645 { IPMI_CRYPT_XRC4_40, "xrc4_40" }, 646 { 0x00, NULL } 647 }; 648 649 const struct valstr ipmi_user_enable_status_vals[] = { 650 { 0x00, "unknown" }, 651 { 0x40, "enabled" }, 652 { 0x80, "disabled" }, 653 { 0xC0, "reserved" }, 654 { 0xFF, NULL }, 655 }; 656 657 const struct valstr picmg_frucontrol_vals[] = { 658 { 0, "Cold Reset" }, 659 { 1, "Warm Reset" }, 660 { 2, "Graceful Reboot" }, 661 { 3, "Issue Diagnostic Interrupt" }, 662 { 4, "Quiesce" }, 663 { 5, NULL }, 664 }; 665 666 const struct valstr picmg_clk_family_vals[] = { 667 { 0x00, "Unspecified" }, 668 { 0x01, "SONET/SDH/PDH" }, 669 { 0x02, "Reserved for PCI Express" }, 670 { 0x03, "Reserved" }, /* from 03h to C8h */ 671 { 0xC9, "Vendor defined clock family" }, /* from C9h to FFh */ 672 { 0x00, NULL }, 673 }; 674 675 const struct oemvalstr picmg_clk_accuracy_vals[] = { 676 { 0x01, 10, "PRS" }, 677 { 0x01, 20, "STU" }, 678 { 0x01, 30, "ST2" }, 679 { 0x01, 40, "TNC" }, 680 { 0x01, 50, "ST3E" }, 681 { 0x01, 60, "ST3" }, 682 { 0x01, 70, "SMC" }, 683 { 0x01, 80, "ST4" }, 684 { 0x01, 90, "DUS" }, 685 { 0x02, 0xE0, "PCI Express Generation 2" }, 686 { 0x02, 0xF0, "PCI Express Generation 1" }, 687 { 0xffffff, 0x00, NULL } 688 }; 689 690 const struct oemvalstr picmg_clk_resource_vals[] = { 691 { 0x0, 0, "On-Carrier Device 0" }, 692 { 0x0, 1, "On-Carrier Device 1" }, 693 { 0x1, 1, "AMC Site 1 - A1" }, 694 { 0x1, 2, "AMC Site 1 - A2" }, 695 { 0x1, 3, "AMC Site 1 - A3" }, 696 { 0x1, 4, "AMC Site 1 - A4" }, 697 { 0x1, 5, "AMC Site 1 - B1" }, 698 { 0x1, 6, "AMC Site 1 - B2" }, 699 { 0x1, 7, "AMC Site 1 - B3" }, 700 { 0x1, 8, "AMC Site 1 - B4" }, 701 { 0x2, 0, "ATCA Backplane" }, 702 { 0xffffff, 0x00, NULL } 703 }; 704 705 const struct oemvalstr picmg_clk_id_vals[] = { 706 { 0x0, 0, "Clock 0" }, 707 { 0x0, 1, "Clock 1" }, 708 { 0x0, 2, "Clock 2" }, 709 { 0x0, 3, "Clock 3" }, 710 { 0x0, 4, "Clock 4" }, 711 { 0x0, 5, "Clock 5" }, 712 { 0x0, 6, "Clock 6" }, 713 { 0x0, 7, "Clock 7" }, 714 { 0x0, 8, "Clock 8" }, 715 { 0x0, 9, "Clock 9" }, 716 { 0x0, 10, "Clock 10" }, 717 { 0x0, 11, "Clock 11" }, 718 { 0x0, 12, "Clock 12" }, 719 { 0x0, 13, "Clock 13" }, 720 { 0x0, 14, "Clock 14" }, 721 { 0x0, 15, "Clock 15" }, 722 { 0x1, 1, "TCLKA" }, 723 { 0x1, 2, "TCLKB" }, 724 { 0x1, 3, "TCLKC" }, 725 { 0x1, 4, "TCLKD" }, 726 { 0x1, 5, "FLCKA" }, 727 { 0x2, 1, "CLK1A" }, 728 { 0x2, 2, "CLK1A" }, 729 { 0x2, 3, "CLK1A" }, 730 { 0x2, 4, "CLK1A" }, 731 { 0x2, 5, "CLK1A" }, 732 { 0x2, 6, "CLK1A" }, 733 { 0x2, 7, "CLK1A" }, 734 { 0x2, 8, "CLK1A" }, 735 { 0x2, 9, "CLK1A" }, 736 { 0xffffff, 0x00, NULL } 737 }; 738 739 const struct valstr picmg_busres_id_vals[] = { 740 { 0x0, "Metallic Test Bus pair #1" }, 741 { 0x1, "Metallic Test Bus pair #2" }, 742 { 0x2, "Synch clock group 1 (CLK1)" }, 743 { 0x3, "Synch clock group 2 (CLK2)" }, 744 { 0x4, "Synch clock group 3 (CLK3)" }, 745 { 0x5, NULL } 746 }; 747 const struct valstr picmg_busres_board_cmd_vals[] = { 748 { 0x0, "Query" }, 749 { 0x1, "Release" }, 750 { 0x2, "Force" }, 751 { 0x3, "Bus Free" }, 752 { 0x4, NULL } 753 }; 754 755 const struct valstr picmg_busres_shmc_cmd_vals[] = { 756 { 0x0, "Request" }, 757 { 0x1, "Relinquish" }, 758 { 0x2, "Notify" }, 759 { 0x3, NULL } 760 }; 761 762 const struct oemvalstr picmg_busres_board_status_vals[] = { 763 { 0x0, 0x0, "In control" }, 764 { 0x0, 0x1, "No control" }, 765 { 0x1, 0x0, "Ack" }, 766 { 0x1, 0x1, "Refused" }, 767 { 0x1, 0x2, "No control" }, 768 { 0x2, 0x0, "Ack" }, 769 { 0x2, 0x1, "No control" }, 770 { 0x3, 0x0, "Accept" }, 771 { 0x3, 0x1, "Not Needed" }, 772 { 0xffffff, 0x00, NULL } 773 }; 774 775 const struct oemvalstr picmg_busres_shmc_status_vals[] = { 776 { 0x0, 0x0, "Grant" }, 777 { 0x0, 0x1, "Busy" }, 778 { 0x0, 0x2, "Defer" }, 779 { 0x0, 0x3, "Deny" }, 780 781 { 0x1, 0x0, "Ack" }, 782 { 0x1, 0x1, "Error" }, 783 784 { 0x2, 0x0, "Ack" }, 785 { 0x2, 0x1, "Error" }, 786 { 0x2, 0x2, "Deny" }, 787 788 { 0xffffff, 0x00, NULL } 789 }; 790