1 /* $NoKeywords */ 2 /** 3 * @file 4 * 5 * MemIscp.h 6 * 7 * Contains common Memory Training ISCP-related structures and defines. 8 * 9 * @xrefitem bom "File Content Label" "Release Content" 10 * @e project: FDK 11 * @e sub-project: UEFI 12 * @e version: $Revision: 317558 $ @e date: $Date: 2015-04-24 17:20:55 -0700 (Fri, 24 Apr 2015) $ 13 * 14 */ 15 /***************************************************************************** 16 * 17 * Copyright 2013 - 2016 ADVANCED MICRO DEVICES, INC. All Rights Reserved. 18 * 19 * This program and the accompanying materials are licensed and made available 20 * under the terms and conditions of the BSD License which accompanies this 21 * distribution. The full text of the license may be found at 22 * http://opensource.org/licenses/bsd-license.php 23 * 24 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 25 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 26 * IMPLIED. 27 * 28 ***************************************************************************/ 29 30 //######################################################################### 31 //######################################################################### 32 //######################################################################### 33 // NOTE: This file shared between SCP and UEFI, make sure all // 34 // changes are reflected in both copies. // 35 //######################################################################### 36 //######################################################################### 37 //######################################################################### 38 39 #ifndef CPUISCP_H_ 40 #define CPUISCP_H_ 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 /*---------------------------------------------------------------------------------------- 47 * M O D U L E S U S E D 48 *---------------------------------------------------------------------------------------- 49 */ 50 #include <ProcessorBind.h> // Included just so this file can be built into both the RTOS 51 // and UEFI without needing separate copies for both build 52 // environments. 53 54 55 /*---------------------------------------------------------------------------------------- 56 * T Y P E D E F S A N D S T R U C T U R E S 57 *---------------------------------------------------------------------------------------- 58 */ 59 60 /// Processor ID 61 typedef struct { 62 UINT32 ProcIDMsd; ///< Processor ID Msd 63 UINT32 ProcIDLsd; ///< Processor ID Lsd 64 } ISCP_PROC_ID; 65 66 /// Processor Type 67 typedef enum { 68 ISCP_CPU_TYPE_OTHER = 1, ///< Other 69 ISCP_CPU_TYPE_UNKNOWN, ///< Unknown 70 ISCP_CPU_TYPE_CENTRAL_PROCESSOR, ///< Central Processor 71 ISCP_CPU_TYPE_MATH_COPROCESSOR, ///< Math Coprocessor 72 ISCP_CPU_TYPE_DSP_PROCESSOR, ///< DSP Processor 73 ISCP_CPU_TYPE_VIDEO_PROCESSOR ///< Video Processor 74 } ISCP_PROCESSOR_TYPE; 75 76 /// Processor Information - Processor Family. 77 typedef enum { 78 ISCP_ProcessorFamilyOther = 0x01, ///< Processor Family - Other 79 ISCP_ProcessorFamilyUnknown = 0x02, ///< Processor Family - Unknown 80 ISCP_ProcessorFamily8086 = 0x03, ///< Processor Family - 8086 81 ISCP_ProcessorFamily80286 = 0x04, ///< Processor Family - 80286 82 ISCP_ProcessorFamilyIntel386 = 0x05, ///< Processor Family - Intel 386 83 ISCP_ProcessorFamilyIntel486 = 0x06, ///< Processor Family - Intel 486 84 ISCP_ProcessorFamily8087 = 0x07, ///< Processor Family - 8087 85 ISCP_ProcessorFamily80287 = 0x08, ///< Processor Family - 80287 86 ISCP_ProcessorFamily80387 = 0x09, ///< Processor Family - 80387 87 ISCP_ProcessorFamily80487 = 0x0A, ///< Processor Family - 80487 88 ISCP_ProcessorFamilyPentium = 0x0B, ///< Processor Family - Pentium 89 ISCP_ProcessorFamilyPentiumPro = 0x0C, ///< Processor Family - Pentium Pro 90 ISCP_ProcessorFamilyPentiumII = 0x0D, ///< Processor Family - Pentium II 91 ISCP_ProcessorFamilyPentiumMMX = 0x0E, ///< Processor Family - Pentium MMX 92 ISCP_ProcessorFamilyCeleron = 0x0F, ///< Processor Family - Celeron 93 ISCP_ProcessorFamilyPentiumIIXeon = 0x10, ///< Processor Family - Pentium II Xeon 94 ISCP_ProcessorFamilyPentiumIII = 0x11, ///< Processor Family - Pentium III 95 ISCP_ProcessorFamilyM1 = 0x12, ///< Processor Family - M1 96 ISCP_ProcessorFamilyM2 = 0x13, ///< Processor Family - M2 97 ISCP_ProcessorFamilyIntelCeleronM = 0x14, ///< Processor Family - Intel Celeron 98 ISCP_ProcessorFamilyIntelPentium4Ht = 0x15, ///< Processor Family - Intel Pentium 4Ht 99 ISCP_ProcessorFamilyAmdDuron = 0x18, ///< Processor Family - AMD Duron 100 ISCP_ProcessorFamilyK5 = 0x19, ///< Processor Family - K5 101 ISCP_ProcessorFamilyK6 = 0x1A, ///< Processor Family - K6 102 ISCP_ProcessorFamilyK6_2 = 0x1B, ///< Processor Family - K6-2 103 ISCP_ProcessorFamilyK6_3 = 0x1C, ///< Processor Family - K6-3 104 ISCP_ProcessorFamilyAmdAthlon = 0x1D, ///< Processor Family - AMD Athlon 105 ISCP_ProcessorFamilyAmd29000 = 0x1E, ///< Processor Family - AMD 29000 106 ISCP_ProcessorFamilyK6_2Plus = 0x1F, ///< Processor Family - K6-2 Plus 107 ISCP_ProcessorFamilyPowerPC = 0x20, ///< Processor Family - Power PC 108 ISCP_ProcessorFamilyPowerPC601 = 0x21, ///< Processor Family - Power PC 601 109 ISCP_ProcessorFamilyPowerPC603 = 0x22, ///< Processor Family - Power PC 603 110 ISCP_ProcessorFamilyPowerPC603Plus = 0x23, ///< Processor Family - Power PC 603 Plus 111 ISCP_ProcessorFamilyPowerPC604 = 0x24, ///< Processor Family - Power PC 604 112 ISCP_ProcessorFamilyPowerPC620 = 0x25, ///< Processor Family - Power PC 620 113 ISCP_ProcessorFamilyPowerPCx704 = 0x26, ///< Processor Family - Power PC x704 114 ISCP_ProcessorFamilyPowerPC750 = 0x27, ///< Processor Family - Power PC 750 115 ISCP_ProcessorFamilyIntelCoreDuo = 0x28, ///< Processor Family - Intel Core Duo 116 ISCP_ProcessorFamilyIntelCoreDuoMobile = 0x29, ///< Processor Family - Intel core Duo Mobile 117 ISCP_ProcessorFamilyIntelCoreSoloMobile = 0x2A, ///< Processor Family - Intel Core Solo Mobile 118 ISCP_ProcessorFamilyIntelAtom = 0x2B, ///< Processor Family - Intel Atom 119 ISCP_ProcessorFamilyAlpha = 0x30, ///< Processor Family - Alpha 120 ISCP_ProcessorFamilyAlpha21064 = 0x31, ///< Processor Family - Alpha 21064 121 ISCP_ProcessorFamilyAlpha21066 = 0x32, ///< Processor Family - Alpha 21166 122 ISCP_ProcessorFamilyAlpha21164 = 0x33, ///< Processor Family - Alpha 21164 123 ISCP_ProcessorFamilyAlpha21164PC = 0x34, ///< Processor Family - Alpha 21164PC 124 ISCP_ProcessorFamilyAlpha21164a = 0x35, ///< Processor Family - Alpha 21164a 125 ISCP_ProcessorFamilyAlpha21264 = 0x36, ///< Processor Family - Alpha 21264 126 ISCP_ProcessorFamilyAlpha21364 = 0x37, ///< Processor Family - Alpha 21364 127 ISCP_ProcessorFamilyAmdTurionIIUltraDualCoreMobileM = 0x38, ///< Processor Family - AMD Turion II Ultra Dual Core Mobile M 128 ISCP_ProcessorFamilyAmdTurionIIDualCoreMobileM = 0x39, ///< Processor Family - AMD Turion II Dual Core Mobile M 129 ISCP_ProcessorFamilyAmdAthlonIIDualCoreM = 0x3A, ///< Processor Family - AMD Athlon II Dual Core M 130 ISCP_ProcessorFamilyAmdOpteron6100Series = 0x3B, ///< Processor Family - AMD Opteron 6100 Series 131 ISCP_ProcessorFamilyAmdOpteron4100Series = 0x3C, ///< Processor Family - AMD Opteron 4100 Series 132 ISCP_ProcessorFamilyAmdOpteron6200Series = 0x3D, ///< Processor Family - AMD Opteron 6200 Series 133 ISCP_ProcessorFamilyAmdOpteron4200Series = 0x3E, ///< Processor Family - AMD Opteron 4200 Series 134 ISCP_ProcessorFamilyAmdFxSeries = 0x3F, ///< Processor Family - AMD FX Series 135 ISCP_ProcessorFamilyMips = 0x40, ///< Processor Family - MIPs 136 ISCP_ProcessorFamilyMIPSR4000 = 0x41, ///< Processor Family - MIPs R4000 137 ISCP_ProcessorFamilyMIPSR4200 = 0x42, ///< Processor Family - MIPs R4200 138 ISCP_ProcessorFamilyMIPSR4400 = 0x43, ///< Processor Family - MIPs R4400 139 ISCP_ProcessorFamilyMIPSR4600 = 0x44, ///< Processor Family - MIPs R4600 140 ISCP_ProcessorFamilyMIPSR10000 = 0x45, ///< Processor Family - MIPs R10000 141 ISCP_ProcessorFamilyAmdCSeries = 0x46, ///< Processor Family - AMD C Series 142 ISCP_ProcessorFamilyAmdESeries = 0x47, ///< Processor Family - AMD E Series 143 ISCP_ProcessorFamilyAmdASeries = 0x48, ///< Processor Family - AMD A Series 144 ISCP_ProcessorFamilyAmdGSeries = 0x49, ///< Processor Family - AMD G Series 145 ISCP_ProcessorFamilyAmdZSeries = 0x4A, ///< Processor Family - AMD Z Series 146 ISCP_ProcessorFamilyAmdRSeries = 0x4B, ///< Processor Family - AMD R Series 147 ISCP_ProcessorFamilyAmdOpteron4300 = 0x4C, ///< Processor Family - AMD Opteron 4300 148 ISCP_ProcessorFamilyAmdOpteron6300 = 0x4D, ///< Processor Family - AMD Opteron 6300 149 ISCP_ProcessorFamilyAmdOpteron3300 = 0x4E, ///< Processor Family - AMD Opteron 3300 150 ISCP_ProcessorFamilyAmdFireProSeries = 0x4F, ///< Processor Family - AMD Fire Pro Series 151 ISCP_ProcessorFamilySparc = 0x50, ///< Processor Family - Sparc 152 ISCP_ProcessorFamilySuperSparc = 0x51, ///< Processor Family - Super Sparc 153 ISCP_ProcessorFamilymicroSparcII = 0x52, ///< Processor Family - Sparc II 154 ISCP_ProcessorFamilymicroSparcIIep = 0x53, ///< Processor Family - Sparc IIep 155 ISCP_ProcessorFamilyUltraSparc = 0x54, ///< Processor Family - Ultra Sparc 156 ISCP_ProcessorFamilyUltraSparcII = 0x55, ///< Processor Family - Ultra Sparc II 157 ISCP_ProcessorFamilyUltraSparcIii = 0x56, ///< Processor Family - Ultra Sparc Iii 158 ISCP_ProcessorFamilyUltraSparcIII = 0x57, ///< Processor Family - Ultra Sparc III 159 ISCP_ProcessorFamilyUltraSparcIIIi = 0x58, ///< Processor Family - Ultra Sparc IIIi 160 ISCP_ProcessorFamily68040 = 0x60, ///< Processor Family - 68040 161 ISCP_ProcessorFamily68xxx = 0x61, ///< Processor Family - 68xxx 162 ISCP_ProcessorFamily68000 = 0x62, ///< Processor Family - 68000 163 ISCP_ProcessorFamily68010 = 0x63, ///< Processor Family - 68010 164 ISCP_ProcessorFamily68020 = 0x64, ///< Processor Family - 68020 165 ISCP_ProcessorFamily68030 = 0x65, ///< Processor Family - 68030 166 ISCP_ProcessorFamilyAmdOpteronASeries = 0x69, ///< Processor Family - AMD Opteron A Series 167 ISCP_ProcessorFamilyHobbit = 0x70, ///< Processor Family - Hobbit 168 ISCP_ProcessorFamilyCrusoeTM5000 = 0x78, ///< Processor Family - Crusoe TM5000 169 ISCP_ProcessorFamilyCrusoeTM3000 = 0x79, ///< Processor Family - Crusoe TM3000 170 ISCP_ProcessorFamilyEfficeonTM8000 = 0x7A, ///< Processor Family - Efficeon TM8000 171 ISCP_ProcessorFamilyWeitek = 0x80, ///< Processor Family - Weitek 172 ISCP_ProcessorFamilyItanium = 0x82, ///< Processor Family - Itanium 173 ISCP_ProcessorFamilyAmdAthlon64 = 0x83, ///< Processor Family - AMD Athlon64 174 ISCP_ProcessorFamilyAmdOpteron = 0x84, ///< Processor Family - AMD Opeteron 175 ISCP_ProcessorFamilyAmdSempron = 0x85, ///< Processor Family - AMD Sempron 176 ISCP_ProcessorFamilyAmdTurion64Mobile = 0x86, ///< Processor Family - AMD Turion 64 Modbile 177 ISCP_ProcessorFamilyDualCoreAmdOpteron = 0x87, ///< Processor Family - AMD Dual Core Opteron 178 ISCP_ProcessorFamilyAmdAthlon64X2DualCore = 0x88, ///< Processor Family - AMD Athlon 64 X2 Dual Core 179 ISCP_ProcessorFamilyAmdTurion64X2Mobile = 0x89, ///< Processor Family - AMD Turion 64 X2 Mobile 180 ISCP_ProcessorFamilyQuadCoreAmdOpteron = 0x8A, ///< Processor Family - AMD Quad Core Opteron 181 ISCP_ProcessorFamilyThirdGenerationAmdOpteron = 0x8B, ///< Processor Family - AMD 3rd Generation Opteron 182 ISCP_ProcessorFamilyAmdPhenomFxQuadCore = 0x8C, ///< Processor Family - AMD Phenom FX Quad Core 183 ISCP_ProcessorFamilyAmdPhenomX4QuadCore = 0x8D, ///< Processor Family - AMD Phenom X4 Quad Core 184 ISCP_ProcessorFamilyAmdPhenomX2DualCore = 0x8E, ///< Processor Family - AMD Phenom X2 Quad Core 185 ISCP_ProcessorFamilyAmdAthlonX2DualCore = 0x8F, ///< Processor Family - AMD Athlon X2 Dual Core 186 ISCP_ProcessorFamilyPARISC = 0x90, ///< Processor Family - PARISC 187 ISCP_ProcessorFamilyPaRisc8500 = 0x91, ///< Processor Family - PARISC 8500 188 ISCP_ProcessorFamilyPaRisc8000 = 0x92, ///< Processor Family - PARISC 8000 189 ISCP_ProcessorFamilyPaRisc7300LC = 0x93, ///< Processor Family - PARISC 7300LC 190 ISCP_ProcessorFamilyPaRisc7200 = 0x94, ///< Processor Family - PARISC 7200 191 ISCP_ProcessorFamilyPaRisc7100LC = 0x95, ///< Processor Family - PARISC 7100LC 192 ISCP_ProcessorFamilyPaRisc7100 = 0x96, ///< Processor Family - PARISC 7100 193 ISCP_ProcessorFamilyV30 = 0xA0, ///< Processor Family - V30 194 ISCP_ProcessorFamilyQuadCoreIntelXeon3200Series = 0xA1, ///< Processor Family - Intel Quad Core Xeon 3200 Series 195 ISCP_ProcessorFamilyDualCoreIntelXeon3000Series = 0xA2, ///< Processor Family - Intel Dual Core Xeon 3000 Series 196 ISCP_ProcessorFamilyQuadCoreIntelXeon5300Series = 0xA3, ///< Processor Family - Intel Quad Core Xeon 5300 Series 197 ISCP_ProcessorFamilyDualCoreIntelXeon5100Series = 0xA4, ///< Processor Family - Intel Dual Core Xeon 5100 Series 198 ISCP_ProcessorFamilyDualCoreIntelXeon5000Series = 0xA5, ///< Processor Family - Intel Dual Core Xeon 5000 Series 199 ISCP_ProcessorFamilyDualCoreIntelXeonLV = 0xA6, ///< Processor Family - Intel Dual Core Xeon LV 200 ISCP_ProcessorFamilyDualCoreIntelXeonULV = 0xA7, ///< Processor Family - Intel Dual Core Xeon ULV 201 ISCP_ProcessorFamilyDualCoreIntelXeon7100Series = 0xA8, ///< Processor Family - Intel Quad Core Xeon 7100 Series 202 ISCP_ProcessorFamilyQuadCoreIntelXeon5400Series = 0xA9, ///< Processor Family - Intel Quad Core Xeon 5400 Series 203 ISCP_ProcessorFamilyQuadCoreIntelXeon = 0xAA, ///< Processor Family - Intel Quad Core Xeon 204 ISCP_ProcessorFamilyDualCoreIntelXeon5200Series = 0xAB, ///< Processor Family - Intel Dual Core Xeon 5200 Series 205 ISCP_ProcessorFamilyDualCoreIntelXeon7200Series = 0xAC, ///< Processor Family - Intel Dual Core Xeon 7200 Series 206 ISCP_ProcessorFamilyQuadCoreIntelXeon7300Series = 0xAD, ///< Processor Family - Intel Quad Core Xeon 7300 Series 207 ISCP_ProcessorFamilyQuadCoreIntelXeon7400Series = 0xAE, ///< Processor Family - Intel Quad Core Xeon 7400 Series 208 ISCP_ProcessorFamilyMultiCoreIntelXeon7400Series = 0xAF, ///< Processor Family - Intel Multi-Core Xeon 7400 Series 209 ISCP_ProcessorFamilyPentiumIIIXeon = 0xB0, ///< Processor Family - Intel Pentium III Xeon 210 ISCP_ProcessorFamilyPentiumIIISpeedStep = 0xB1, ///< Processor Family - Intel Pentium III Speed Step 211 ISCP_ProcessorFamilyPentium4 = 0xB2, ///< Processor Family - Pentium 4 212 ISCP_ProcessorFamilyIntelXeon = 0xB3, ///< Processor Family - Intel Xeon 213 ISCP_ProcessorFamilyAS400 = 0xB4, ///< Processor Family - AS400 214 ISCP_ProcessorFamilyIntelXeonMP = 0xB5, ///< Processor Family - Intel Xeon MP 215 ISCP_ProcessorFamilyAMDAthlonXP = 0xB6, ///< Processor Family - AMD Athlon XP 216 ISCP_ProcessorFamilyAMDAthlonMP = 0xB7, ///< Processor Family - AMD Athlon MP 217 ISCP_ProcessorFamilyIntelItanium2 = 0xB8, ///< Processor Family - Intel Itanum2 218 ISCP_ProcessorFamilyIntelPentiumM = 0xB9, ///< Processor Family - Intel Pentium M 219 ISCP_ProcessorFamilyIntelCeleronD = 0xBA, ///< Processor Family - Intel Celeron D 220 ISCP_ProcessorFamilyIntelPentiumD = 0xBB, ///< Processor Family - Intel Pentium D 221 ISCP_ProcessorFamilyIntelPentiumEx = 0xBC, ///< Processor Family - Intel pentium Ex 222 ISCP_ProcessorFamilyIntelCoreSolo = 0xBD, ///< Processor Family - Intel Core Solo 223 ISCP_ProcessorFamilyReserved = 0xBE, ///< Processor Family - Reserved 224 ISCP_ProcessorFamilyIntelCore2 = 0xBF, ///< Processor Family - Intel Core 2 225 ISCP_ProcessorFamilyIntelCore2Solo = 0xC0, ///< Processor Family - Intel Core 2 Solo 226 ISCP_ProcessorFamilyIntelCore2Extreme = 0xC1, ///< Processor Family - Intel Core 2 Extreme 227 ISCP_ProcessorFamilyIntelCore2Quad = 0xC2, ///< Processor Family - Intel Core 2 Quad 228 ISCP_ProcessorFamilyIntelCore2ExtremeMobile = 0xC3, ///< Processor Family - Intel Core 2 Extremem Mobile 229 ISCP_ProcessorFamilyIntelCore2DuoMobile = 0xC4, ///< Processor Family - Intel core 2 Duo Mobile 230 ISCP_ProcessorFamilyIntelCore2SoloMobile = 0xC5, ///< Processor Family - Intel Core 2 Solo Mobile 231 ISCP_ProcessorFamilyIntelCoreI7 = 0xC6, ///< Processor Family - Intel Core I7 232 ISCP_ProcessorFamilyDualCoreIntelCeleron = 0xC7, ///< Processor Family - Intel Dual Core Celeron 233 ISCP_ProcessorFamilyIBM390 = 0xC8, ///< Processor Family - IBM 390 234 ISCP_ProcessorFamilyG4 = 0xC9, ///< Processor Family - G4 235 ISCP_ProcessorFamilyG5 = 0xCA, ///< Processor Family - G5 236 ISCP_ProcessorFamilyG6 = 0xCB, ///< Processor Family - G6 237 ISCP_ProcessorFamilyzArchitecture = 0xCC, ///< Processor Family - zArchitecture 238 ISCP_ProcessorFamilyIntelCoreI5 = 0xCD, ///< Processor Family - Intel Core I5 239 ISCP_ProcessorFamilyIntelCoreI3 = 0xCE, ///< Processor Family - Intel Core I3 240 ISCP_ProcessorFamilyViaC7M = 0xD2, ///< Processor Family - Via C7M 241 ISCP_ProcessorFamilyViaC7D = 0xD3, ///< Processor Family - Via C7D 242 ISCP_ProcessorFamilyViaC7 = 0xD4, ///< Processor Family - Via C7 243 ISCP_ProcessorFamilyViaEden = 0xD5, ///< Processor Family - Via Eden 244 ISCP_ProcessorFamilyMultiCoreIntelXeon = 0xD6, ///< Processor Family - Intel Multi-core Xeon 245 ISCP_ProcessorFamilyDualCoreIntelXeon3Series = 0xD7, ///< Processor Family - Intel Dual-core Xeon 3-Series 246 ISCP_ProcessorFamilyQuadCoreIntelXeon3Series = 0xD8, ///< Processor Family - Intel Quad-core Xeon 3-Series 247 ISCP_ProcessorFamilyViaNano = 0xD9, ///< Processor Family - Via Nano 248 ISCP_ProcessorFamilyDualCoreIntelXeon5Series = 0xDA, ///< Processor Family - Intel Dual-core Xeon 5-Series 249 ISCP_ProcessorFamilyQuadCoreIntelXeon5Series = 0xDB, ///< Processor Family - Intel Quad-core Xeon 5-Series 250 ISCP_ProcessorFamilyDualCoreIntelXeon7Series = 0xDD, ///< Processor Family - Intel Dual-core Xeon 7-Series 251 ISCP_ProcessorFamilyQuadCoreIntelXeon7Series = 0xDE, ///< Processor Family - Intel Quad-core Xeon 7-Series 252 ISCP_ProcessorFamilyMultiCoreIntelXeon7Series = 0xDF, ///< Processor Family - Intel Multi-core Xeon 7-Series 253 ISCP_ProcessorFamilyMultiCoreIntelXeon3400Series = 0xE0, ///< Processor Family - Intel Multi-core Xeon 3400-Series 254 ISCP_ProcessorFamilyAmdOpteron3000Series = 0xE4, ///< Processor Family - AMD Opteron 3000 Series 255 ISCP_ProcessorFamilyAmdSempronII = 0xE5, ///< Processor Family - AMD Sempron II 256 ISCP_ProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6, ///< Processor Family - AMD Embedded Opteron Quad Core 257 ISCP_ProcessorFamilyAmdPhenomTripleCore = 0xE7, ///< Processor Family - AMD Phonon Triple Core 258 ISCP_ProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8, ///< Processor Family - AMD Turion Ultra Dual Core Mobile 259 ISCP_ProcessorFamilyAmdTurionDualCoreMobile = 0xE9, ///< Processor Family - AMD Turion Dual Core Mobile 260 ISCP_ProcessorFamilyAmdAthlonDualCore = 0xEA, ///< Processor Family - AMD Turion Dual Core Mobile 261 ISCP_ProcessorFamilyAmdSempronSI = 0xEB, ///< Processor Family - AMD Sempron SI 262 ISCP_ProcessorFamilyAmdPhenomII = 0xEC, ///< Processor Family - AMD Phenon II 263 ISCP_ProcessorFamilyAmdAthlonII = 0xED, ///< Processor Family - AMD Athlon II 264 ISCP_ProcessorFamilySixCoreAmdOpteron = 0xEE, ///< Processor Family - AMD 6-Core Opteron 265 ISCP_ProcessorFamilyAmdSempronM = 0xEF, ///< Processor Family - AMD Sempon M 266 ISCP_ProcessorFamilyi860 = 0xFA, ///< Processor Family - i860 267 ISCP_ProcessorFamilyi960 = 0xFB, ///< Processor Family - i960 268 ISCP_ProcessorFamilyIndicatorFamily2 = 0xFE, ///< Processor Family - Indicator Family 2 269 ISCP_ProcessorFamilyReserved1 = 0xFF ///< Processor Family - Reserved 270 } ISCP_PROCESSOR_FAMILY_DATA; 271 272 /// Processor Information2 - Processor Family2. 273 typedef enum { 274 ISCP_ProcessorFamilySH3 = 0x0104, ///< ProcessorFamily - SH3 275 ISCP_ProcessorFamilySH4 = 0x0105, ///< ProcessorFamily - SH4 276 ISCP_ProcessorFamilyARM = 0x0118, ///< ProcessorFamily - ARM 277 ISCP_ProcessorFamilyStrongARM = 0x0119, ///< ProcessorFamily - Strong ARM 278 ISCP_ProcessorFamily6x86 = 0x012C, ///< ProcessorFamily - x86 279 ISCP_ProcessorFamilyMediaGX = 0x012D, ///< ProcessorFamily - Media GX 280 ISCP_ProcessorFamilyMII = 0x012E, ///< ProcessorFamily - MII 281 ISCP_ProcessorFamilyWinChip = 0x0140, ///< ProcessorFamily - WinChip 282 ISCP_ProcessorFamilyDSP = 0x015E, ///< ProcessorFamily - DSP 283 ISCP_ProcessorFamilyVideoProcessor = 0x01F4 ///< ProcessorFamily - Video Processor 284 } ISCP_PROCESSOR_FAMILY2_DATA; 285 286 /// Processor Information - Processor Upgrade. 287 typedef enum { 288 ISCP_ProcessorUpgradeOther = 0x01, ///< Processor Upgrade - Other 289 ISCP_ProcessorUpgradeUnknown = 0x02, ///< Processor Upgrade - Unknown 290 ISCP_ProcessorUpgradeDaughterBoard = 0x03, ///< Processor Upgrade - Daughter Board 291 ISCP_ProcessorUpgradeZIFSocket = 0x04, ///< Processor Upgrade - ZIF Socket 292 ISCP_ProcessorUpgradePiggyBack = 0x05, ///< Processor Upgrade - Piggyback 293 ISCP_ProcessorUpgradeNone = 0x06, ///< Processor Upgrade - None 294 ISCP_ProcessorUpgradeLIFSocket = 0x07, ///< Processor Upgrade - LIF Socket 295 ISCP_ProcessorUpgradeSlot1 = 0x08, ///< Processor Upgrade - Slot 1 296 ISCP_ProcessorUpgradeSlot2 = 0x09, ///< Processor Upgrade - Slot 2 297 ISCP_ProcessorUpgrade370PinSocket = 0x0A, ///< Processor Upgrade - 370 Pin Socket 298 ISCP_ProcessorUpgradeSlotA = 0x0B, ///< Processor Upgrade - Slot A 299 ISCP_ProcessorUpgradeSlotM = 0x0C, ///< Processor Upgrade - Slot M 300 ISCP_ProcessorUpgradeSocket423 = 0x0D, ///< Processor Upgrade - Socket 423 301 ISCP_ProcessorUpgradeSocketA = 0x0E, ///< Processor Upgrade - Socket A 302 ISCP_ProcessorUpgradeSocket478 = 0x0F, ///< Processor Upgrade - Socket 478 303 ISCP_ProcessorUpgradeSocket754 = 0x10, ///< Processor Upgrade - Socket 754 304 ISCP_ProcessorUpgradeSocket940 = 0x11, ///< Processor Upgrade - Socket 940 305 ISCP_ProcessorUpgradeSocket939 = 0x12, ///< Processor Upgrade - Socket 939 306 ISCP_ProcessorUpgradeSocketmPGA604 = 0x13, ///< Processor Upgrade - PGA 604 307 ISCP_ProcessorUpgradeSocketLGA771 = 0x14, ///< Processor Upgrade - LGA 771 308 ISCP_ProcessorUpgradeSocketLGA775 = 0x15, ///< Processor Upgrade - LGA 775 309 ISCP_ProcessorUpgradeSocketS1 = 0x16, ///< Processor Upgrade - S1 310 ISCP_ProcessorUpgradeAM2 = 0x17, ///< Processor Upgrade - AM2 311 ISCP_ProcessorUpgradeF1207 = 0x18, ///< Processor Upgrade - F1207 312 ISCP_ProcessorSocketLGA1366 = 0x19, ///< Processor Upgrade - LGA 1366 313 ISCP_ProcessorUpgradeSocketG34 = 0x1A, ///< Processor Upgrade - G34 314 ISCP_ProcessorUpgradeSocketAM3 = 0x1B, ///< Processor Upgrade - AM3 315 ISCP_ProcessorUpgradeSocketC32 = 0x1C, ///< Processor Upgrade - C32 316 ISCP_ProcessorUpgradeSocketLGA1156 = 0x1D, ///< Processor Upgrade - LGA 1156 317 ISCP_ProcessorUpgradeSocketLGA1567 = 0x1E, ///< Processor Upgrade - LGA 1567 318 ISCP_ProcessorUpgradeSocketPGA988A = 0x1F, ///< Processor Upgrade - PGA 988A 319 ISCP_ProcessorUpgradeSocketBGA1288 = 0x20, ///< Processor Upgrade - PGA 1288 320 ISCP_ProcessorUpgradeSocketrPGA988B = 0x21, ///< Processor Upgrade - PGA 988B 321 ISCP_ProcessorUpgradeSocketBGA1023 = 0x22, ///< Processor Upgrade - BGA 1023 322 ISCP_ProcessorUpgradeSocketBGA1224 = 0x23, ///< Processor Upgrade - BGA 1224 323 ISCP_ProcessorUpgradeSocketLGA1155 = 0x24, ///< Processor Upgrade - LGA 1155 324 ISCP_ProcessorUpgradeSocketLGA1356 = 0x25, ///< Processor Upgrade - LGA 1356 325 ISCP_ProcessorUpgradeSocketLGA2011 = 0x26, ///< Processor Upgrade - LGA 2011 326 ISCP_ProcessorUpgradeSocketFS1 = 0x27, ///< Processor Upgrade - FS1 327 ISCP_ProcessorUpgradeSocketFS2 = 0x28, ///< Processor Upgrade - FS2 328 ISCP_ProcessorUpgradeSocketFM1 = 0x29, ///< Processor Upgrade - FM1 329 ISCP_ProcessorUpgradeSocketFM2 = 0x2A, ///< Processor Upgrade - FM2 330 ISCP_ProcessorUpgradeSocketLGA2011_3 = 0x2B, ///< Processor Upgrade - LGA 2011-3 331 ISCP_ProcessorUpgradeSocketLGA1356_3 = 0x2C ///< Processor Upgrade - LGA 1356-3 332 } ISCP_PROCESSOR_UPGRADE; 333 334 /// CPU Information - Characteristics. 335 typedef struct { 336 UINT16 Reserved0 :1; ///< CPU Information - Reserved 337 UINT16 Unknown :1; ///< CPU Information - Unknown 338 UINT16 Capable64Bit :1; ///< CPU Information - Capable 64-Bit 339 UINT16 MultiCore :1; ///< CPU Information - Multi-core 340 UINT16 HardwareThread :1; ///< CPU Information - Hardware Thread 341 UINT16 ExecuteProtection :1; ///< CPU Information - Execute Protection 342 UINT16 EnhancedVirtualization :1; ///< CPU Information - Enhanced Virtualization 343 UINT16 PowerPerformanceControl :1; ///< CPU Information - Power Performance Control 344 UINT16 Reserved8_15 :8; ///< CPU Information - Reserved 345 } ISCP_PROCESSOR_CHARACTERISTICS; 346 347 /// CPU Information - CPU Status. 348 typedef enum { 349 ISCP_CPU_STATUS_UNKNOWN = 0, ///< CPU Status - Unknown 350 ISCP_CPU_STATUS_ENABLED, ///< CPU Status - Enabled 351 ISCP_CPU_STATUS_DISABLED_BY_USER, ///< CPU Status - Disabled by user 352 ISCP_CPU_STATUS_DISABLED_BY_BIOS, ///< CPU Status - Disabled by BIOS 353 ISCP_CPU_STATUS_IDLE, ///< CPU Status - Idle 354 ISCP_CPU_STATUS_RESERVED_5, ///< CPU Status - Reserved 355 ISCP_CPU_STATUS_RESERVED_6, ///< CPU Status - Reserved 356 ISCP_CPU_STATUS_OTHER ///< CPU Status - Other 357 } ISCP_CPU_STATUS; 358 359 360 /// CPU Information - Status. 361 typedef struct { 362 UINT16 CpuStatus :3; ///< CPU Status 363 UINT16 Reserved3_5 :3; ///< Reserved Bits[5:3] 364 UINT16 CpuSocketPopulated :1; ///< CPU Socket Populated 365 UINT16 Reserved7_15 :9; ///< Reserved Bits[15:9] 366 } PROCESSOR_STATUS; 367 368 /// Cache Information - Operation Mode. 369 typedef enum { 370 ISCP_CACHE_OPERATION_MODE_WRITE_THROUGH = 0, ///< Cache Operation Mode Write Through 371 ISCP_CACHE_OPERATION_MODE_WRITE_BACK, ///< Cache Operation Mode Write Back 372 ISCP_CACHE_OPERATION_MODE_VARIES_WITH_MEMORY_ADDRESS, ///< Cache Operation Mode Varies with Memory Address 373 ISCP_CACHE_OPERATION_MODE_UNKNOWN, ///< Cache Operation Mode Unknown 374 } ISCP_CACHE_OPERATION_MODE; 375 376 /// Cache Information - Location. 377 typedef enum { 378 ISCP_CACHE_LOCATION_INTERNAL = 0, ///< Cache Location Internal 379 ISCP_CACHE_LOCATION_EXTERNAL, ///< Cache Location External 380 ISCP_CACHE_LOCATION_RESERVED, ///< Cache Location Reserved 381 ISCP_CACHE_LOCATION_UNKNOWN, ///< Cache Location Unknown 382 } ISCP_CACHE_LOCATION; 383 384 /// Cache Information - Level. 385 typedef enum { 386 ISCP_CACHE_LEVEL_1 = 0, ///< Cache Level 1 387 ISCP_CACHE_LEVEL_2, ///< Cache Level 2 388 ISCP_CACHE_LEVEL_3, ///< Cache Level 3 389 ISCP_CACHE_LEVEL_4, ///< Cache Level 4 390 } ISCP_CACHE_LEVEL; 391 392 /// Cache Information - Configuration. 393 typedef struct { 394 UINT16 CacheLevel :3; ///< Cache Level 395 UINT16 CacheSocketd :1; ///< Cache Socket ID 396 UINT16 Reserved_4 :1; ///< Cache Reserved 397 UINT16 Location :2; ///< Cache Location 398 UINT16 EnabledDisabled :1; ///< Cache Enabled / Disabled 399 UINT16 OperationMode :2; ///< Operation Mode 400 UINT16 Reserved10_15 :6; ///< Cache Reserved 401 } ISCP_CACHE_CONFIGURATION; 402 403 /// Cache Information - SRAM Type. 404 typedef struct { 405 UINT16 Other :1; ///< SRAM Type - Other 406 UINT16 Unknown :1; ///< SRAM Type - Unknown 407 UINT16 NonBurst :1; ///< SRAM Type - NonBurst 408 UINT16 Burst :1; ///< SRAM Type - Burst 409 UINT16 PipelineBurst :1; ///< SRAM Type - Pipeline Burst 410 UINT16 Synchronous :1; ///< SRAM Type - Synchronous 411 UINT16 Asynchronous :1; ///< SRAM Type - Asynchronous 412 UINT16 Reserved7_15 :9; ///< SRAM Type - Reserved 413 } ISCP_CACHE_SRAM_TYPE; 414 415 /// Cache Information - Error Correction Type. 416 typedef enum { 417 ISCP_ECC_TYPE_OTHER = 1, ///< ECC Type - Other 418 ISCP_ECC_TYPE_UNKNOWN, ///< ECC Type - Unknown 419 ISCP_ECC_TYPE_NONE, ///< ECC Type - None 420 ISCP_ECC_TYPE_PARITY, ///< ECC Type - Parity 421 ISCP_ECC_TYPE_SINGLE_BIT, ///< ECC Type - Single-Bit 422 ISCP_ECC_TYPE_MULTI_BIT ///< ECC Type - Multi-Bit 423 } ISCP_CACHE_ECC_TYPE; 424 425 /// Cache Information - System Cache Type. 426 typedef enum { 427 ISCP_SYSTEM_CACHE_TYPE_OTHER = 1, ///< System Cache Type - Other 428 ISCP_SYSTEM_CACHE_TYPE_UNKNOWN, ///< System Cache Type - Unknown 429 ISCP_SYSTEM_CACHE_TYPE_INSTRUCTION, ///< System Cache Type - Instruction 430 ISCP_SYSTEM_CACHE_TYPE_DATA, ///< System Cache Type - Data 431 ISCP_SYSTEM_CACHE_TYPE_UNIFIED ///< System Cache Type - Unified 432 } ISCP_SYSTEM_CACHE_TYPE; 433 434 /// Cache Information - Associativity. 435 typedef enum { 436 ISCP_CACHE_ASSOCIATIVITY_OTHER = 1, ///< Cache Associativity - Other 437 ISCP_CACHE_ASSOCIATIVITY_UNKNOWN, ///< Cache Associativity - Unknown 438 ISCP_CACHE_ASSOCIATIVITY_DIRECT_MAPPED, ///< Cache Associativity - Direct Mapped 439 ISCP_CACHE_ASSOCIATIVITY_2_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 2-way Set Assciative 440 ISCP_CACHE_ASSOCIATIVITY_4_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 4-way Set Assciative 441 ISCP_CACHE_ASSOCIATIVITY_FULLY_ASSOCIATIVE, ///< Cache Associativity - Fully Assciative 442 ISCP_CACHE_ASSOCIATIVITY_8_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 8-way Set Assciative 443 ISCP_CACHE_ASSOCIATIVITY_16_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 16-way Set Assciative 444 ISCP_CACHE_ASSOCIATIVITY_12_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 12-way Set Assciative 445 ISCP_CACHE_ASSOCIATIVITY_24_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 24-way Set Assciative 446 ISCP_CACHE_ASSOCIATIVITY_32_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 32-way Set Assciative 447 ISCP_CACHE_ASSOCIATIVITY_48_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 48-way Set Assciative 448 ISCP_CACHE_ASSOCIATIVITY_64_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 64-way Set Assciative 449 ISCP_CACHE_ASSOCIATIVITY_20_WAY_SET_ASSOCIATIVE ///< Cache Associativity - 20-way Set Assciative 450 } ISCP_CACHE_ASSOCIATIVITY; 451 452 /// DMI TYPE 4 - CPU Information 453 typedef struct { 454 UINT16 T4ProcType; ///< Processor Type 455 UINT16 T4ProcFamily; ///< Processor Family 456 ISCP_PROC_ID T4ProcId; ///< Processor Id 457 UINT16 T4Voltage; ///< Processor Voltage 458 UINT16 T4ExternalClock; ///< Processor External Clock 459 UINT16 T4MaxSpeed; ///< Processor Maximum Speed 460 UINT16 T4CurrentSpeed; ///< Processor Current Speed 461 UINT16 T4Status; ///< Processor Status 462 UINT16 T4ProcUpgrade; ///< Processor Upgrade 463 UINT16 T4CoreCount; ///< Processor Core Count 464 UINT16 T4CoreEnabled; ///< Processor Core Enabled 465 UINT16 T4ThreadCount; ///< Processor Thread Count 466 UINT16 T4ProcCharacteristics; ///< Processor Characteristics 467 UINT16 T4ProcFamily2; ///< Processor Family 2 468 UINT16 T4CoreCount2; ///< Processor Core Count 2 469 UINT16 T4CoreEnabled2; ///< Processor Core Enabled 2 470 UINT16 T4ThreadCount2; ///< Processor Thread Count 2 471 UINT8 T4SerialNumber[8]; ///< Processor Serial Number 472 } ISCP_TYPE4_SMBIOS_INFO; 473 474 /// DMI Type 7 - Cache Information 475 typedef struct { 476 UINT16 T7CacheCfg; ///< Cache Configuration 477 UINT16 T7MaxCacheSize; ///< Maximum Cache Size 478 UINT16 T7InstallSize; ///< Cache Install Size 479 UINT16 T7SupportedSramType; ///< Supported SRAM Type 480 UINT16 T7CurrentSramType; ///< Current SRAM Type 481 UINT16 T7CacheSpeed; ///< Cache Speed in nanoseconds 482 UINT16 T7ErrorCorrectionType; ///< Cache Error Correction Type 483 UINT16 T7SystemCacheType; ///< System Cache Type 484 UINT16 T7Associativity; ///< Cache Associativity 485 } ISCP_TYPE7_SMBIOS_INFO; 486 487 #ifdef __cplusplus 488 } 489 #endif 490 491 492 #endif /* CPUISCP_H_ */ 493