/* $NoKeywords */
|
/**
|
* @file
|
*
|
* MemIscp.h
|
*
|
* Contains common Memory Training ISCP-related structures and defines.
|
*
|
* @xrefitem bom "File Content Label" "Release Content"
|
* @e project: FDK
|
* @e sub-project: UEFI
|
* @e version: $Revision: 317558 $ @e date: $Date: 2015-04-24 17:20:55 -0700 (Fri, 24 Apr 2015) $
|
*
|
*/
|
/*****************************************************************************
|
*
|
* Copyright 2013 - 2016 ADVANCED MICRO DEVICES, INC. All Rights Reserved.
|
*
|
* This program and the accompanying materials are licensed and made available
|
* under the terms and conditions of the BSD License which accompanies this
|
* distribution. The full text of the license may be found at
|
* http://opensource.org/licenses/bsd-license.php
|
*
|
* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
|
* IMPLIED.
|
*
|
***************************************************************************/
|
|
//#########################################################################
|
//#########################################################################
|
//#########################################################################
|
// NOTE: This file shared between SCP and UEFI, make sure all //
|
// changes are reflected in both copies. //
|
//#########################################################################
|
//#########################################################################
|
//#########################################################################
|
|
#ifndef CPUISCP_H_
|
#define CPUISCP_H_
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/*----------------------------------------------------------------------------------------
|
* M O D U L E S U S E D
|
*----------------------------------------------------------------------------------------
|
*/
|
#include <ProcessorBind.h> // Included just so this file can be built into both the RTOS
|
// and UEFI without needing separate copies for both build
|
// environments.
|
|
|
/*----------------------------------------------------------------------------------------
|
* T Y P E D E F S A N D S T R U C T U R E S
|
*----------------------------------------------------------------------------------------
|
*/
|
|
/// Processor ID
|
typedef struct {
|
UINT32 ProcIDMsd; ///< Processor ID Msd
|
UINT32 ProcIDLsd; ///< Processor ID Lsd
|
} ISCP_PROC_ID;
|
|
/// Processor Type
|
typedef enum {
|
ISCP_CPU_TYPE_OTHER = 1, ///< Other
|
ISCP_CPU_TYPE_UNKNOWN, ///< Unknown
|
ISCP_CPU_TYPE_CENTRAL_PROCESSOR, ///< Central Processor
|
ISCP_CPU_TYPE_MATH_COPROCESSOR, ///< Math Coprocessor
|
ISCP_CPU_TYPE_DSP_PROCESSOR, ///< DSP Processor
|
ISCP_CPU_TYPE_VIDEO_PROCESSOR ///< Video Processor
|
} ISCP_PROCESSOR_TYPE;
|
|
/// Processor Information - Processor Family.
|
typedef enum {
|
ISCP_ProcessorFamilyOther = 0x01, ///< Processor Family - Other
|
ISCP_ProcessorFamilyUnknown = 0x02, ///< Processor Family - Unknown
|
ISCP_ProcessorFamily8086 = 0x03, ///< Processor Family - 8086
|
ISCP_ProcessorFamily80286 = 0x04, ///< Processor Family - 80286
|
ISCP_ProcessorFamilyIntel386 = 0x05, ///< Processor Family - Intel 386
|
ISCP_ProcessorFamilyIntel486 = 0x06, ///< Processor Family - Intel 486
|
ISCP_ProcessorFamily8087 = 0x07, ///< Processor Family - 8087
|
ISCP_ProcessorFamily80287 = 0x08, ///< Processor Family - 80287
|
ISCP_ProcessorFamily80387 = 0x09, ///< Processor Family - 80387
|
ISCP_ProcessorFamily80487 = 0x0A, ///< Processor Family - 80487
|
ISCP_ProcessorFamilyPentium = 0x0B, ///< Processor Family - Pentium
|
ISCP_ProcessorFamilyPentiumPro = 0x0C, ///< Processor Family - Pentium Pro
|
ISCP_ProcessorFamilyPentiumII = 0x0D, ///< Processor Family - Pentium II
|
ISCP_ProcessorFamilyPentiumMMX = 0x0E, ///< Processor Family - Pentium MMX
|
ISCP_ProcessorFamilyCeleron = 0x0F, ///< Processor Family - Celeron
|
ISCP_ProcessorFamilyPentiumIIXeon = 0x10, ///< Processor Family - Pentium II Xeon
|
ISCP_ProcessorFamilyPentiumIII = 0x11, ///< Processor Family - Pentium III
|
ISCP_ProcessorFamilyM1 = 0x12, ///< Processor Family - M1
|
ISCP_ProcessorFamilyM2 = 0x13, ///< Processor Family - M2
|
ISCP_ProcessorFamilyIntelCeleronM = 0x14, ///< Processor Family - Intel Celeron
|
ISCP_ProcessorFamilyIntelPentium4Ht = 0x15, ///< Processor Family - Intel Pentium 4Ht
|
ISCP_ProcessorFamilyAmdDuron = 0x18, ///< Processor Family - AMD Duron
|
ISCP_ProcessorFamilyK5 = 0x19, ///< Processor Family - K5
|
ISCP_ProcessorFamilyK6 = 0x1A, ///< Processor Family - K6
|
ISCP_ProcessorFamilyK6_2 = 0x1B, ///< Processor Family - K6-2
|
ISCP_ProcessorFamilyK6_3 = 0x1C, ///< Processor Family - K6-3
|
ISCP_ProcessorFamilyAmdAthlon = 0x1D, ///< Processor Family - AMD Athlon
|
ISCP_ProcessorFamilyAmd29000 = 0x1E, ///< Processor Family - AMD 29000
|
ISCP_ProcessorFamilyK6_2Plus = 0x1F, ///< Processor Family - K6-2 Plus
|
ISCP_ProcessorFamilyPowerPC = 0x20, ///< Processor Family - Power PC
|
ISCP_ProcessorFamilyPowerPC601 = 0x21, ///< Processor Family - Power PC 601
|
ISCP_ProcessorFamilyPowerPC603 = 0x22, ///< Processor Family - Power PC 603
|
ISCP_ProcessorFamilyPowerPC603Plus = 0x23, ///< Processor Family - Power PC 603 Plus
|
ISCP_ProcessorFamilyPowerPC604 = 0x24, ///< Processor Family - Power PC 604
|
ISCP_ProcessorFamilyPowerPC620 = 0x25, ///< Processor Family - Power PC 620
|
ISCP_ProcessorFamilyPowerPCx704 = 0x26, ///< Processor Family - Power PC x704
|
ISCP_ProcessorFamilyPowerPC750 = 0x27, ///< Processor Family - Power PC 750
|
ISCP_ProcessorFamilyIntelCoreDuo = 0x28, ///< Processor Family - Intel Core Duo
|
ISCP_ProcessorFamilyIntelCoreDuoMobile = 0x29, ///< Processor Family - Intel core Duo Mobile
|
ISCP_ProcessorFamilyIntelCoreSoloMobile = 0x2A, ///< Processor Family - Intel Core Solo Mobile
|
ISCP_ProcessorFamilyIntelAtom = 0x2B, ///< Processor Family - Intel Atom
|
ISCP_ProcessorFamilyAlpha = 0x30, ///< Processor Family - Alpha
|
ISCP_ProcessorFamilyAlpha21064 = 0x31, ///< Processor Family - Alpha 21064
|
ISCP_ProcessorFamilyAlpha21066 = 0x32, ///< Processor Family - Alpha 21166
|
ISCP_ProcessorFamilyAlpha21164 = 0x33, ///< Processor Family - Alpha 21164
|
ISCP_ProcessorFamilyAlpha21164PC = 0x34, ///< Processor Family - Alpha 21164PC
|
ISCP_ProcessorFamilyAlpha21164a = 0x35, ///< Processor Family - Alpha 21164a
|
ISCP_ProcessorFamilyAlpha21264 = 0x36, ///< Processor Family - Alpha 21264
|
ISCP_ProcessorFamilyAlpha21364 = 0x37, ///< Processor Family - Alpha 21364
|
ISCP_ProcessorFamilyAmdTurionIIUltraDualCoreMobileM = 0x38, ///< Processor Family - AMD Turion II Ultra Dual Core Mobile M
|
ISCP_ProcessorFamilyAmdTurionIIDualCoreMobileM = 0x39, ///< Processor Family - AMD Turion II Dual Core Mobile M
|
ISCP_ProcessorFamilyAmdAthlonIIDualCoreM = 0x3A, ///< Processor Family - AMD Athlon II Dual Core M
|
ISCP_ProcessorFamilyAmdOpteron6100Series = 0x3B, ///< Processor Family - AMD Opteron 6100 Series
|
ISCP_ProcessorFamilyAmdOpteron4100Series = 0x3C, ///< Processor Family - AMD Opteron 4100 Series
|
ISCP_ProcessorFamilyAmdOpteron6200Series = 0x3D, ///< Processor Family - AMD Opteron 6200 Series
|
ISCP_ProcessorFamilyAmdOpteron4200Series = 0x3E, ///< Processor Family - AMD Opteron 4200 Series
|
ISCP_ProcessorFamilyAmdFxSeries = 0x3F, ///< Processor Family - AMD FX Series
|
ISCP_ProcessorFamilyMips = 0x40, ///< Processor Family - MIPs
|
ISCP_ProcessorFamilyMIPSR4000 = 0x41, ///< Processor Family - MIPs R4000
|
ISCP_ProcessorFamilyMIPSR4200 = 0x42, ///< Processor Family - MIPs R4200
|
ISCP_ProcessorFamilyMIPSR4400 = 0x43, ///< Processor Family - MIPs R4400
|
ISCP_ProcessorFamilyMIPSR4600 = 0x44, ///< Processor Family - MIPs R4600
|
ISCP_ProcessorFamilyMIPSR10000 = 0x45, ///< Processor Family - MIPs R10000
|
ISCP_ProcessorFamilyAmdCSeries = 0x46, ///< Processor Family - AMD C Series
|
ISCP_ProcessorFamilyAmdESeries = 0x47, ///< Processor Family - AMD E Series
|
ISCP_ProcessorFamilyAmdASeries = 0x48, ///< Processor Family - AMD A Series
|
ISCP_ProcessorFamilyAmdGSeries = 0x49, ///< Processor Family - AMD G Series
|
ISCP_ProcessorFamilyAmdZSeries = 0x4A, ///< Processor Family - AMD Z Series
|
ISCP_ProcessorFamilyAmdRSeries = 0x4B, ///< Processor Family - AMD R Series
|
ISCP_ProcessorFamilyAmdOpteron4300 = 0x4C, ///< Processor Family - AMD Opteron 4300
|
ISCP_ProcessorFamilyAmdOpteron6300 = 0x4D, ///< Processor Family - AMD Opteron 6300
|
ISCP_ProcessorFamilyAmdOpteron3300 = 0x4E, ///< Processor Family - AMD Opteron 3300
|
ISCP_ProcessorFamilyAmdFireProSeries = 0x4F, ///< Processor Family - AMD Fire Pro Series
|
ISCP_ProcessorFamilySparc = 0x50, ///< Processor Family - Sparc
|
ISCP_ProcessorFamilySuperSparc = 0x51, ///< Processor Family - Super Sparc
|
ISCP_ProcessorFamilymicroSparcII = 0x52, ///< Processor Family - Sparc II
|
ISCP_ProcessorFamilymicroSparcIIep = 0x53, ///< Processor Family - Sparc IIep
|
ISCP_ProcessorFamilyUltraSparc = 0x54, ///< Processor Family - Ultra Sparc
|
ISCP_ProcessorFamilyUltraSparcII = 0x55, ///< Processor Family - Ultra Sparc II
|
ISCP_ProcessorFamilyUltraSparcIii = 0x56, ///< Processor Family - Ultra Sparc Iii
|
ISCP_ProcessorFamilyUltraSparcIII = 0x57, ///< Processor Family - Ultra Sparc III
|
ISCP_ProcessorFamilyUltraSparcIIIi = 0x58, ///< Processor Family - Ultra Sparc IIIi
|
ISCP_ProcessorFamily68040 = 0x60, ///< Processor Family - 68040
|
ISCP_ProcessorFamily68xxx = 0x61, ///< Processor Family - 68xxx
|
ISCP_ProcessorFamily68000 = 0x62, ///< Processor Family - 68000
|
ISCP_ProcessorFamily68010 = 0x63, ///< Processor Family - 68010
|
ISCP_ProcessorFamily68020 = 0x64, ///< Processor Family - 68020
|
ISCP_ProcessorFamily68030 = 0x65, ///< Processor Family - 68030
|
ISCP_ProcessorFamilyAmdOpteronASeries = 0x69, ///< Processor Family - AMD Opteron A Series
|
ISCP_ProcessorFamilyHobbit = 0x70, ///< Processor Family - Hobbit
|
ISCP_ProcessorFamilyCrusoeTM5000 = 0x78, ///< Processor Family - Crusoe TM5000
|
ISCP_ProcessorFamilyCrusoeTM3000 = 0x79, ///< Processor Family - Crusoe TM3000
|
ISCP_ProcessorFamilyEfficeonTM8000 = 0x7A, ///< Processor Family - Efficeon TM8000
|
ISCP_ProcessorFamilyWeitek = 0x80, ///< Processor Family - Weitek
|
ISCP_ProcessorFamilyItanium = 0x82, ///< Processor Family - Itanium
|
ISCP_ProcessorFamilyAmdAthlon64 = 0x83, ///< Processor Family - AMD Athlon64
|
ISCP_ProcessorFamilyAmdOpteron = 0x84, ///< Processor Family - AMD Opeteron
|
ISCP_ProcessorFamilyAmdSempron = 0x85, ///< Processor Family - AMD Sempron
|
ISCP_ProcessorFamilyAmdTurion64Mobile = 0x86, ///< Processor Family - AMD Turion 64 Modbile
|
ISCP_ProcessorFamilyDualCoreAmdOpteron = 0x87, ///< Processor Family - AMD Dual Core Opteron
|
ISCP_ProcessorFamilyAmdAthlon64X2DualCore = 0x88, ///< Processor Family - AMD Athlon 64 X2 Dual Core
|
ISCP_ProcessorFamilyAmdTurion64X2Mobile = 0x89, ///< Processor Family - AMD Turion 64 X2 Mobile
|
ISCP_ProcessorFamilyQuadCoreAmdOpteron = 0x8A, ///< Processor Family - AMD Quad Core Opteron
|
ISCP_ProcessorFamilyThirdGenerationAmdOpteron = 0x8B, ///< Processor Family - AMD 3rd Generation Opteron
|
ISCP_ProcessorFamilyAmdPhenomFxQuadCore = 0x8C, ///< Processor Family - AMD Phenom FX Quad Core
|
ISCP_ProcessorFamilyAmdPhenomX4QuadCore = 0x8D, ///< Processor Family - AMD Phenom X4 Quad Core
|
ISCP_ProcessorFamilyAmdPhenomX2DualCore = 0x8E, ///< Processor Family - AMD Phenom X2 Quad Core
|
ISCP_ProcessorFamilyAmdAthlonX2DualCore = 0x8F, ///< Processor Family - AMD Athlon X2 Dual Core
|
ISCP_ProcessorFamilyPARISC = 0x90, ///< Processor Family - PARISC
|
ISCP_ProcessorFamilyPaRisc8500 = 0x91, ///< Processor Family - PARISC 8500
|
ISCP_ProcessorFamilyPaRisc8000 = 0x92, ///< Processor Family - PARISC 8000
|
ISCP_ProcessorFamilyPaRisc7300LC = 0x93, ///< Processor Family - PARISC 7300LC
|
ISCP_ProcessorFamilyPaRisc7200 = 0x94, ///< Processor Family - PARISC 7200
|
ISCP_ProcessorFamilyPaRisc7100LC = 0x95, ///< Processor Family - PARISC 7100LC
|
ISCP_ProcessorFamilyPaRisc7100 = 0x96, ///< Processor Family - PARISC 7100
|
ISCP_ProcessorFamilyV30 = 0xA0, ///< Processor Family - V30
|
ISCP_ProcessorFamilyQuadCoreIntelXeon3200Series = 0xA1, ///< Processor Family - Intel Quad Core Xeon 3200 Series
|
ISCP_ProcessorFamilyDualCoreIntelXeon3000Series = 0xA2, ///< Processor Family - Intel Dual Core Xeon 3000 Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon5300Series = 0xA3, ///< Processor Family - Intel Quad Core Xeon 5300 Series
|
ISCP_ProcessorFamilyDualCoreIntelXeon5100Series = 0xA4, ///< Processor Family - Intel Dual Core Xeon 5100 Series
|
ISCP_ProcessorFamilyDualCoreIntelXeon5000Series = 0xA5, ///< Processor Family - Intel Dual Core Xeon 5000 Series
|
ISCP_ProcessorFamilyDualCoreIntelXeonLV = 0xA6, ///< Processor Family - Intel Dual Core Xeon LV
|
ISCP_ProcessorFamilyDualCoreIntelXeonULV = 0xA7, ///< Processor Family - Intel Dual Core Xeon ULV
|
ISCP_ProcessorFamilyDualCoreIntelXeon7100Series = 0xA8, ///< Processor Family - Intel Quad Core Xeon 7100 Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon5400Series = 0xA9, ///< Processor Family - Intel Quad Core Xeon 5400 Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon = 0xAA, ///< Processor Family - Intel Quad Core Xeon
|
ISCP_ProcessorFamilyDualCoreIntelXeon5200Series = 0xAB, ///< Processor Family - Intel Dual Core Xeon 5200 Series
|
ISCP_ProcessorFamilyDualCoreIntelXeon7200Series = 0xAC, ///< Processor Family - Intel Dual Core Xeon 7200 Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon7300Series = 0xAD, ///< Processor Family - Intel Quad Core Xeon 7300 Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon7400Series = 0xAE, ///< Processor Family - Intel Quad Core Xeon 7400 Series
|
ISCP_ProcessorFamilyMultiCoreIntelXeon7400Series = 0xAF, ///< Processor Family - Intel Multi-Core Xeon 7400 Series
|
ISCP_ProcessorFamilyPentiumIIIXeon = 0xB0, ///< Processor Family - Intel Pentium III Xeon
|
ISCP_ProcessorFamilyPentiumIIISpeedStep = 0xB1, ///< Processor Family - Intel Pentium III Speed Step
|
ISCP_ProcessorFamilyPentium4 = 0xB2, ///< Processor Family - Pentium 4
|
ISCP_ProcessorFamilyIntelXeon = 0xB3, ///< Processor Family - Intel Xeon
|
ISCP_ProcessorFamilyAS400 = 0xB4, ///< Processor Family - AS400
|
ISCP_ProcessorFamilyIntelXeonMP = 0xB5, ///< Processor Family - Intel Xeon MP
|
ISCP_ProcessorFamilyAMDAthlonXP = 0xB6, ///< Processor Family - AMD Athlon XP
|
ISCP_ProcessorFamilyAMDAthlonMP = 0xB7, ///< Processor Family - AMD Athlon MP
|
ISCP_ProcessorFamilyIntelItanium2 = 0xB8, ///< Processor Family - Intel Itanum2
|
ISCP_ProcessorFamilyIntelPentiumM = 0xB9, ///< Processor Family - Intel Pentium M
|
ISCP_ProcessorFamilyIntelCeleronD = 0xBA, ///< Processor Family - Intel Celeron D
|
ISCP_ProcessorFamilyIntelPentiumD = 0xBB, ///< Processor Family - Intel Pentium D
|
ISCP_ProcessorFamilyIntelPentiumEx = 0xBC, ///< Processor Family - Intel pentium Ex
|
ISCP_ProcessorFamilyIntelCoreSolo = 0xBD, ///< Processor Family - Intel Core Solo
|
ISCP_ProcessorFamilyReserved = 0xBE, ///< Processor Family - Reserved
|
ISCP_ProcessorFamilyIntelCore2 = 0xBF, ///< Processor Family - Intel Core 2
|
ISCP_ProcessorFamilyIntelCore2Solo = 0xC0, ///< Processor Family - Intel Core 2 Solo
|
ISCP_ProcessorFamilyIntelCore2Extreme = 0xC1, ///< Processor Family - Intel Core 2 Extreme
|
ISCP_ProcessorFamilyIntelCore2Quad = 0xC2, ///< Processor Family - Intel Core 2 Quad
|
ISCP_ProcessorFamilyIntelCore2ExtremeMobile = 0xC3, ///< Processor Family - Intel Core 2 Extremem Mobile
|
ISCP_ProcessorFamilyIntelCore2DuoMobile = 0xC4, ///< Processor Family - Intel core 2 Duo Mobile
|
ISCP_ProcessorFamilyIntelCore2SoloMobile = 0xC5, ///< Processor Family - Intel Core 2 Solo Mobile
|
ISCP_ProcessorFamilyIntelCoreI7 = 0xC6, ///< Processor Family - Intel Core I7
|
ISCP_ProcessorFamilyDualCoreIntelCeleron = 0xC7, ///< Processor Family - Intel Dual Core Celeron
|
ISCP_ProcessorFamilyIBM390 = 0xC8, ///< Processor Family - IBM 390
|
ISCP_ProcessorFamilyG4 = 0xC9, ///< Processor Family - G4
|
ISCP_ProcessorFamilyG5 = 0xCA, ///< Processor Family - G5
|
ISCP_ProcessorFamilyG6 = 0xCB, ///< Processor Family - G6
|
ISCP_ProcessorFamilyzArchitecture = 0xCC, ///< Processor Family - zArchitecture
|
ISCP_ProcessorFamilyIntelCoreI5 = 0xCD, ///< Processor Family - Intel Core I5
|
ISCP_ProcessorFamilyIntelCoreI3 = 0xCE, ///< Processor Family - Intel Core I3
|
ISCP_ProcessorFamilyViaC7M = 0xD2, ///< Processor Family - Via C7M
|
ISCP_ProcessorFamilyViaC7D = 0xD3, ///< Processor Family - Via C7D
|
ISCP_ProcessorFamilyViaC7 = 0xD4, ///< Processor Family - Via C7
|
ISCP_ProcessorFamilyViaEden = 0xD5, ///< Processor Family - Via Eden
|
ISCP_ProcessorFamilyMultiCoreIntelXeon = 0xD6, ///< Processor Family - Intel Multi-core Xeon
|
ISCP_ProcessorFamilyDualCoreIntelXeon3Series = 0xD7, ///< Processor Family - Intel Dual-core Xeon 3-Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon3Series = 0xD8, ///< Processor Family - Intel Quad-core Xeon 3-Series
|
ISCP_ProcessorFamilyViaNano = 0xD9, ///< Processor Family - Via Nano
|
ISCP_ProcessorFamilyDualCoreIntelXeon5Series = 0xDA, ///< Processor Family - Intel Dual-core Xeon 5-Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon5Series = 0xDB, ///< Processor Family - Intel Quad-core Xeon 5-Series
|
ISCP_ProcessorFamilyDualCoreIntelXeon7Series = 0xDD, ///< Processor Family - Intel Dual-core Xeon 7-Series
|
ISCP_ProcessorFamilyQuadCoreIntelXeon7Series = 0xDE, ///< Processor Family - Intel Quad-core Xeon 7-Series
|
ISCP_ProcessorFamilyMultiCoreIntelXeon7Series = 0xDF, ///< Processor Family - Intel Multi-core Xeon 7-Series
|
ISCP_ProcessorFamilyMultiCoreIntelXeon3400Series = 0xE0, ///< Processor Family - Intel Multi-core Xeon 3400-Series
|
ISCP_ProcessorFamilyAmdOpteron3000Series = 0xE4, ///< Processor Family - AMD Opteron 3000 Series
|
ISCP_ProcessorFamilyAmdSempronII = 0xE5, ///< Processor Family - AMD Sempron II
|
ISCP_ProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6, ///< Processor Family - AMD Embedded Opteron Quad Core
|
ISCP_ProcessorFamilyAmdPhenomTripleCore = 0xE7, ///< Processor Family - AMD Phonon Triple Core
|
ISCP_ProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8, ///< Processor Family - AMD Turion Ultra Dual Core Mobile
|
ISCP_ProcessorFamilyAmdTurionDualCoreMobile = 0xE9, ///< Processor Family - AMD Turion Dual Core Mobile
|
ISCP_ProcessorFamilyAmdAthlonDualCore = 0xEA, ///< Processor Family - AMD Turion Dual Core Mobile
|
ISCP_ProcessorFamilyAmdSempronSI = 0xEB, ///< Processor Family - AMD Sempron SI
|
ISCP_ProcessorFamilyAmdPhenomII = 0xEC, ///< Processor Family - AMD Phenon II
|
ISCP_ProcessorFamilyAmdAthlonII = 0xED, ///< Processor Family - AMD Athlon II
|
ISCP_ProcessorFamilySixCoreAmdOpteron = 0xEE, ///< Processor Family - AMD 6-Core Opteron
|
ISCP_ProcessorFamilyAmdSempronM = 0xEF, ///< Processor Family - AMD Sempon M
|
ISCP_ProcessorFamilyi860 = 0xFA, ///< Processor Family - i860
|
ISCP_ProcessorFamilyi960 = 0xFB, ///< Processor Family - i960
|
ISCP_ProcessorFamilyIndicatorFamily2 = 0xFE, ///< Processor Family - Indicator Family 2
|
ISCP_ProcessorFamilyReserved1 = 0xFF ///< Processor Family - Reserved
|
} ISCP_PROCESSOR_FAMILY_DATA;
|
|
/// Processor Information2 - Processor Family2.
|
typedef enum {
|
ISCP_ProcessorFamilySH3 = 0x0104, ///< ProcessorFamily - SH3
|
ISCP_ProcessorFamilySH4 = 0x0105, ///< ProcessorFamily - SH4
|
ISCP_ProcessorFamilyARM = 0x0118, ///< ProcessorFamily - ARM
|
ISCP_ProcessorFamilyStrongARM = 0x0119, ///< ProcessorFamily - Strong ARM
|
ISCP_ProcessorFamily6x86 = 0x012C, ///< ProcessorFamily - x86
|
ISCP_ProcessorFamilyMediaGX = 0x012D, ///< ProcessorFamily - Media GX
|
ISCP_ProcessorFamilyMII = 0x012E, ///< ProcessorFamily - MII
|
ISCP_ProcessorFamilyWinChip = 0x0140, ///< ProcessorFamily - WinChip
|
ISCP_ProcessorFamilyDSP = 0x015E, ///< ProcessorFamily - DSP
|
ISCP_ProcessorFamilyVideoProcessor = 0x01F4 ///< ProcessorFamily - Video Processor
|
} ISCP_PROCESSOR_FAMILY2_DATA;
|
|
/// Processor Information - Processor Upgrade.
|
typedef enum {
|
ISCP_ProcessorUpgradeOther = 0x01, ///< Processor Upgrade - Other
|
ISCP_ProcessorUpgradeUnknown = 0x02, ///< Processor Upgrade - Unknown
|
ISCP_ProcessorUpgradeDaughterBoard = 0x03, ///< Processor Upgrade - Daughter Board
|
ISCP_ProcessorUpgradeZIFSocket = 0x04, ///< Processor Upgrade - ZIF Socket
|
ISCP_ProcessorUpgradePiggyBack = 0x05, ///< Processor Upgrade - Piggyback
|
ISCP_ProcessorUpgradeNone = 0x06, ///< Processor Upgrade - None
|
ISCP_ProcessorUpgradeLIFSocket = 0x07, ///< Processor Upgrade - LIF Socket
|
ISCP_ProcessorUpgradeSlot1 = 0x08, ///< Processor Upgrade - Slot 1
|
ISCP_ProcessorUpgradeSlot2 = 0x09, ///< Processor Upgrade - Slot 2
|
ISCP_ProcessorUpgrade370PinSocket = 0x0A, ///< Processor Upgrade - 370 Pin Socket
|
ISCP_ProcessorUpgradeSlotA = 0x0B, ///< Processor Upgrade - Slot A
|
ISCP_ProcessorUpgradeSlotM = 0x0C, ///< Processor Upgrade - Slot M
|
ISCP_ProcessorUpgradeSocket423 = 0x0D, ///< Processor Upgrade - Socket 423
|
ISCP_ProcessorUpgradeSocketA = 0x0E, ///< Processor Upgrade - Socket A
|
ISCP_ProcessorUpgradeSocket478 = 0x0F, ///< Processor Upgrade - Socket 478
|
ISCP_ProcessorUpgradeSocket754 = 0x10, ///< Processor Upgrade - Socket 754
|
ISCP_ProcessorUpgradeSocket940 = 0x11, ///< Processor Upgrade - Socket 940
|
ISCP_ProcessorUpgradeSocket939 = 0x12, ///< Processor Upgrade - Socket 939
|
ISCP_ProcessorUpgradeSocketmPGA604 = 0x13, ///< Processor Upgrade - PGA 604
|
ISCP_ProcessorUpgradeSocketLGA771 = 0x14, ///< Processor Upgrade - LGA 771
|
ISCP_ProcessorUpgradeSocketLGA775 = 0x15, ///< Processor Upgrade - LGA 775
|
ISCP_ProcessorUpgradeSocketS1 = 0x16, ///< Processor Upgrade - S1
|
ISCP_ProcessorUpgradeAM2 = 0x17, ///< Processor Upgrade - AM2
|
ISCP_ProcessorUpgradeF1207 = 0x18, ///< Processor Upgrade - F1207
|
ISCP_ProcessorSocketLGA1366 = 0x19, ///< Processor Upgrade - LGA 1366
|
ISCP_ProcessorUpgradeSocketG34 = 0x1A, ///< Processor Upgrade - G34
|
ISCP_ProcessorUpgradeSocketAM3 = 0x1B, ///< Processor Upgrade - AM3
|
ISCP_ProcessorUpgradeSocketC32 = 0x1C, ///< Processor Upgrade - C32
|
ISCP_ProcessorUpgradeSocketLGA1156 = 0x1D, ///< Processor Upgrade - LGA 1156
|
ISCP_ProcessorUpgradeSocketLGA1567 = 0x1E, ///< Processor Upgrade - LGA 1567
|
ISCP_ProcessorUpgradeSocketPGA988A = 0x1F, ///< Processor Upgrade - PGA 988A
|
ISCP_ProcessorUpgradeSocketBGA1288 = 0x20, ///< Processor Upgrade - PGA 1288
|
ISCP_ProcessorUpgradeSocketrPGA988B = 0x21, ///< Processor Upgrade - PGA 988B
|
ISCP_ProcessorUpgradeSocketBGA1023 = 0x22, ///< Processor Upgrade - BGA 1023
|
ISCP_ProcessorUpgradeSocketBGA1224 = 0x23, ///< Processor Upgrade - BGA 1224
|
ISCP_ProcessorUpgradeSocketLGA1155 = 0x24, ///< Processor Upgrade - LGA 1155
|
ISCP_ProcessorUpgradeSocketLGA1356 = 0x25, ///< Processor Upgrade - LGA 1356
|
ISCP_ProcessorUpgradeSocketLGA2011 = 0x26, ///< Processor Upgrade - LGA 2011
|
ISCP_ProcessorUpgradeSocketFS1 = 0x27, ///< Processor Upgrade - FS1
|
ISCP_ProcessorUpgradeSocketFS2 = 0x28, ///< Processor Upgrade - FS2
|
ISCP_ProcessorUpgradeSocketFM1 = 0x29, ///< Processor Upgrade - FM1
|
ISCP_ProcessorUpgradeSocketFM2 = 0x2A, ///< Processor Upgrade - FM2
|
ISCP_ProcessorUpgradeSocketLGA2011_3 = 0x2B, ///< Processor Upgrade - LGA 2011-3
|
ISCP_ProcessorUpgradeSocketLGA1356_3 = 0x2C ///< Processor Upgrade - LGA 1356-3
|
} ISCP_PROCESSOR_UPGRADE;
|
|
/// CPU Information - Characteristics.
|
typedef struct {
|
UINT16 Reserved0 :1; ///< CPU Information - Reserved
|
UINT16 Unknown :1; ///< CPU Information - Unknown
|
UINT16 Capable64Bit :1; ///< CPU Information - Capable 64-Bit
|
UINT16 MultiCore :1; ///< CPU Information - Multi-core
|
UINT16 HardwareThread :1; ///< CPU Information - Hardware Thread
|
UINT16 ExecuteProtection :1; ///< CPU Information - Execute Protection
|
UINT16 EnhancedVirtualization :1; ///< CPU Information - Enhanced Virtualization
|
UINT16 PowerPerformanceControl :1; ///< CPU Information - Power Performance Control
|
UINT16 Reserved8_15 :8; ///< CPU Information - Reserved
|
} ISCP_PROCESSOR_CHARACTERISTICS;
|
|
/// CPU Information - CPU Status.
|
typedef enum {
|
ISCP_CPU_STATUS_UNKNOWN = 0, ///< CPU Status - Unknown
|
ISCP_CPU_STATUS_ENABLED, ///< CPU Status - Enabled
|
ISCP_CPU_STATUS_DISABLED_BY_USER, ///< CPU Status - Disabled by user
|
ISCP_CPU_STATUS_DISABLED_BY_BIOS, ///< CPU Status - Disabled by BIOS
|
ISCP_CPU_STATUS_IDLE, ///< CPU Status - Idle
|
ISCP_CPU_STATUS_RESERVED_5, ///< CPU Status - Reserved
|
ISCP_CPU_STATUS_RESERVED_6, ///< CPU Status - Reserved
|
ISCP_CPU_STATUS_OTHER ///< CPU Status - Other
|
} ISCP_CPU_STATUS;
|
|
|
/// CPU Information - Status.
|
typedef struct {
|
UINT16 CpuStatus :3; ///< CPU Status
|
UINT16 Reserved3_5 :3; ///< Reserved Bits[5:3]
|
UINT16 CpuSocketPopulated :1; ///< CPU Socket Populated
|
UINT16 Reserved7_15 :9; ///< Reserved Bits[15:9]
|
} PROCESSOR_STATUS;
|
|
/// Cache Information - Operation Mode.
|
typedef enum {
|
ISCP_CACHE_OPERATION_MODE_WRITE_THROUGH = 0, ///< Cache Operation Mode Write Through
|
ISCP_CACHE_OPERATION_MODE_WRITE_BACK, ///< Cache Operation Mode Write Back
|
ISCP_CACHE_OPERATION_MODE_VARIES_WITH_MEMORY_ADDRESS, ///< Cache Operation Mode Varies with Memory Address
|
ISCP_CACHE_OPERATION_MODE_UNKNOWN, ///< Cache Operation Mode Unknown
|
} ISCP_CACHE_OPERATION_MODE;
|
|
/// Cache Information - Location.
|
typedef enum {
|
ISCP_CACHE_LOCATION_INTERNAL = 0, ///< Cache Location Internal
|
ISCP_CACHE_LOCATION_EXTERNAL, ///< Cache Location External
|
ISCP_CACHE_LOCATION_RESERVED, ///< Cache Location Reserved
|
ISCP_CACHE_LOCATION_UNKNOWN, ///< Cache Location Unknown
|
} ISCP_CACHE_LOCATION;
|
|
/// Cache Information - Level.
|
typedef enum {
|
ISCP_CACHE_LEVEL_1 = 0, ///< Cache Level 1
|
ISCP_CACHE_LEVEL_2, ///< Cache Level 2
|
ISCP_CACHE_LEVEL_3, ///< Cache Level 3
|
ISCP_CACHE_LEVEL_4, ///< Cache Level 4
|
} ISCP_CACHE_LEVEL;
|
|
/// Cache Information - Configuration.
|
typedef struct {
|
UINT16 CacheLevel :3; ///< Cache Level
|
UINT16 CacheSocketd :1; ///< Cache Socket ID
|
UINT16 Reserved_4 :1; ///< Cache Reserved
|
UINT16 Location :2; ///< Cache Location
|
UINT16 EnabledDisabled :1; ///< Cache Enabled / Disabled
|
UINT16 OperationMode :2; ///< Operation Mode
|
UINT16 Reserved10_15 :6; ///< Cache Reserved
|
} ISCP_CACHE_CONFIGURATION;
|
|
/// Cache Information - SRAM Type.
|
typedef struct {
|
UINT16 Other :1; ///< SRAM Type - Other
|
UINT16 Unknown :1; ///< SRAM Type - Unknown
|
UINT16 NonBurst :1; ///< SRAM Type - NonBurst
|
UINT16 Burst :1; ///< SRAM Type - Burst
|
UINT16 PipelineBurst :1; ///< SRAM Type - Pipeline Burst
|
UINT16 Synchronous :1; ///< SRAM Type - Synchronous
|
UINT16 Asynchronous :1; ///< SRAM Type - Asynchronous
|
UINT16 Reserved7_15 :9; ///< SRAM Type - Reserved
|
} ISCP_CACHE_SRAM_TYPE;
|
|
/// Cache Information - Error Correction Type.
|
typedef enum {
|
ISCP_ECC_TYPE_OTHER = 1, ///< ECC Type - Other
|
ISCP_ECC_TYPE_UNKNOWN, ///< ECC Type - Unknown
|
ISCP_ECC_TYPE_NONE, ///< ECC Type - None
|
ISCP_ECC_TYPE_PARITY, ///< ECC Type - Parity
|
ISCP_ECC_TYPE_SINGLE_BIT, ///< ECC Type - Single-Bit
|
ISCP_ECC_TYPE_MULTI_BIT ///< ECC Type - Multi-Bit
|
} ISCP_CACHE_ECC_TYPE;
|
|
/// Cache Information - System Cache Type.
|
typedef enum {
|
ISCP_SYSTEM_CACHE_TYPE_OTHER = 1, ///< System Cache Type - Other
|
ISCP_SYSTEM_CACHE_TYPE_UNKNOWN, ///< System Cache Type - Unknown
|
ISCP_SYSTEM_CACHE_TYPE_INSTRUCTION, ///< System Cache Type - Instruction
|
ISCP_SYSTEM_CACHE_TYPE_DATA, ///< System Cache Type - Data
|
ISCP_SYSTEM_CACHE_TYPE_UNIFIED ///< System Cache Type - Unified
|
} ISCP_SYSTEM_CACHE_TYPE;
|
|
/// Cache Information - Associativity.
|
typedef enum {
|
ISCP_CACHE_ASSOCIATIVITY_OTHER = 1, ///< Cache Associativity - Other
|
ISCP_CACHE_ASSOCIATIVITY_UNKNOWN, ///< Cache Associativity - Unknown
|
ISCP_CACHE_ASSOCIATIVITY_DIRECT_MAPPED, ///< Cache Associativity - Direct Mapped
|
ISCP_CACHE_ASSOCIATIVITY_2_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 2-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_4_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 4-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_FULLY_ASSOCIATIVE, ///< Cache Associativity - Fully Assciative
|
ISCP_CACHE_ASSOCIATIVITY_8_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 8-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_16_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 16-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_12_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 12-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_24_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 24-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_32_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 32-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_48_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 48-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_64_WAY_SET_ASSOCIATIVE, ///< Cache Associativity - 64-way Set Assciative
|
ISCP_CACHE_ASSOCIATIVITY_20_WAY_SET_ASSOCIATIVE ///< Cache Associativity - 20-way Set Assciative
|
} ISCP_CACHE_ASSOCIATIVITY;
|
|
/// DMI TYPE 4 - CPU Information
|
typedef struct {
|
UINT16 T4ProcType; ///< Processor Type
|
UINT16 T4ProcFamily; ///< Processor Family
|
ISCP_PROC_ID T4ProcId; ///< Processor Id
|
UINT16 T4Voltage; ///< Processor Voltage
|
UINT16 T4ExternalClock; ///< Processor External Clock
|
UINT16 T4MaxSpeed; ///< Processor Maximum Speed
|
UINT16 T4CurrentSpeed; ///< Processor Current Speed
|
UINT16 T4Status; ///< Processor Status
|
UINT16 T4ProcUpgrade; ///< Processor Upgrade
|
UINT16 T4CoreCount; ///< Processor Core Count
|
UINT16 T4CoreEnabled; ///< Processor Core Enabled
|
UINT16 T4ThreadCount; ///< Processor Thread Count
|
UINT16 T4ProcCharacteristics; ///< Processor Characteristics
|
UINT16 T4ProcFamily2; ///< Processor Family 2
|
UINT16 T4CoreCount2; ///< Processor Core Count 2
|
UINT16 T4CoreEnabled2; ///< Processor Core Enabled 2
|
UINT16 T4ThreadCount2; ///< Processor Thread Count 2
|
UINT8 T4SerialNumber[8]; ///< Processor Serial Number
|
} ISCP_TYPE4_SMBIOS_INFO;
|
|
/// DMI Type 7 - Cache Information
|
typedef struct {
|
UINT16 T7CacheCfg; ///< Cache Configuration
|
UINT16 T7MaxCacheSize; ///< Maximum Cache Size
|
UINT16 T7InstallSize; ///< Cache Install Size
|
UINT16 T7SupportedSramType; ///< Supported SRAM Type
|
UINT16 T7CurrentSramType; ///< Current SRAM Type
|
UINT16 T7CacheSpeed; ///< Cache Speed in nanoseconds
|
UINT16 T7ErrorCorrectionType; ///< Cache Error Correction Type
|
UINT16 T7SystemCacheType; ///< System Cache Type
|
UINT16 T7Associativity; ///< Cache Associativity
|
} ISCP_TYPE7_SMBIOS_INFO;
|
|
#ifdef __cplusplus
|
}
|
#endif
|
|
|
#endif /* CPUISCP_H_ */
|