Add in the 1st version of ECP.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2007-06-28 07:00:39 +00:00
parent 30d4a0c7ec
commit 3eb9473ea9
1433 changed files with 266617 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
AcpiTableStorage.c
Abstract:
The filename of the Acpi table storage file.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (AcpiTableStorage)
EFI_GUID gEfiAcpiTableStorageGuid = EFI_ACPI_TABLE_STORAGE_GUID;
EFI_GUID_STRING (&gEfiAcpiTableStorageGuid, "ACPI Table Storage File Name",
"Tiano ACPI 2.0 Table Storage file name GUID");

View File

@@ -0,0 +1,32 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
AcpiTableStorage.h
Abstract:
GUID for the ACPI Table Storage filename.
This GUID is defined in the Tiano ACPI Table Storage EPS.
--*/
#ifndef _ACPI_TABLE_STORAGE_H_
#define _ACPI_TABLE_STORAGE_H_
#define EFI_ACPI_TABLE_STORAGE_GUID \
{ 0x7e374e25, 0x8e01, 0x4fee, 0x87, 0xf2, 0x39, 0xc, 0x23, 0xc6, 0x6, 0xcd }
extern EFI_GUID gEfiAcpiTableStorageGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
Apriori.c
Abstract:
GUID used as an FV filename for A Priori file. The A Priori file contains a
list of FV filenames that the DXE dispatcher will schedule reguardless of
the dependency grammer.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (Apriori)
EFI_GUID gAprioriGuid = EFI_APRIORI_GUID;
EFI_GUID_STRING(&gAprioriGuid, "Apriori File Name", "Apriori File containing FV GUIDs");

View File

@@ -0,0 +1,34 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
Apriori.h
Abstract:
GUID used as an FV filename for A Priori file. The A Priori file contains a
list of FV filenames that the DXE dispatcher will schedule reguardless of
the dependency grammer.
--*/
#ifndef _APRIORI_GUID_H_
#define _APRIORI_GUID_H_
#define EFI_APRIORI_GUID \
{ \
0xfc510ee7, 0xffdc, 0x11d4, 0xbd, 0x41, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 \
}
extern EFI_GUID gAprioriGuid;
#endif

View File

@@ -0,0 +1,51 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
DataHubRecords.c
Abstract:
This file defines GUIDs and associated data structures for records
posted to the Data Hub.
The producers of these records use these definitions to construct
records.
The consumers of these records use these definitions to retrieve,
filter and parse records.
For more information please look at DataHub.doc
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (DataHubRecords)
EFI_GUID gProcessorProducerGuid = EFI_PROCESSOR_PRODUCER_GUID;
EFI_GUID gProcessorSubClassName = EFI_PROCESSOR_SUBCLASS_GUID;
EFI_GUID gCacheSubClassName = EFI_CACHE_SUBCLASS_GUID;
EFI_GUID gMiscProducerGuid = EFI_MISC_PRODUCER_GUID;
EFI_GUID gMiscSubClassName = EFI_MISC_SUBCLASS_GUID;
EFI_GUID gEfiMiscSubClassGuid = EFI_MISC_SUBCLASS_GUID;
EFI_GUID gMemoryProducerGuid = EFI_MEMORY_PRODUCER_GUID;
EFI_GUID gEfiMemorySubClassGuid = EFI_MEMORY_SUBCLASS_GUID;
/* eof - DataHubRecords.c */

View File

@@ -0,0 +1,109 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
DataHubRecords.h
Abstract:
This file defines GUIDs and associated data structures for records
posted to the Data Hub.
The producers of these records use these definitions to construct
records.
The consumers of these records use these definitions to retrieve,
filter and parse records.
For more information please look at DataHub.doc
--*/
#ifndef _DATAHUB_RECORDS_H_
#define _DATAHUB_RECORDS_H_
#include "EfiInternalFormRepresentation.h"
#include "DataHubSubClass.h"
#include "DataHubSubClassProcessor.h"
#include "DataHubSubClassCache.h"
#include "DataHubSubClassMemory.h"
#include "DataHubSubClassMisc.h"
/*++
BEGIN: Processor records definitions
--*/
extern EFI_GUID gProcessorProducerGuid;
#define EFI_PROCESSOR_PRODUCER_GUID \
{ 0x1bf06aea, 0x5bec, 0x4a8d, 0x95, 0x76, 0x74, 0x9b, 0x09, 0x56, 0x2d, 0x30 }
extern EFI_GUID gProcessorSubClassName;
extern EFI_GUID gCacheSubClassName;
extern EFI_GUID gMiscSubClassName;
/*++
END: Processor records definitions
--*/
/*++
BEGIN: Memory records definitions
--*/
extern EFI_GUID gMemoryProducerGuid;
#define EFI_MEMORY_PRODUCER_GUID \
{ 0x1d7add6e, 0xb2da, 0x4b0b, 0xb2, 0x9f, 0x49, 0xcb, 0x42, 0xf4, 0x63, 0x56 }
//
// ... need memory sub classes here...
//
extern EFI_GUID gEfiMemorySubClassGuid;
/*++
END: Memory records definitions
--*/
/*++
BEGIN: Misc records definitions
--*/
extern EFI_GUID gMiscProducerGuid;
#define EFI_MISC_PRODUCER_GUID \
{ 0x62512c92, 0x63c4, 0x4d80, 0x82, 0xb1, 0xc1, 0xa4, 0xdc, 0x44, 0x80, 0xe5 }
//
// ... need misc sub classes here...
//
extern EFI_GUID gEfiMiscSubClassGuid;
/*++
END: Misc records definitions
--*/
#endif

View File

@@ -0,0 +1,73 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
DataHubSubClass.h
Abstract:
Definitions for data hub data records that contains a sub class header
Revision History
--*/
#ifndef _DATA_HUB_SUBCLASS_H_
#define _DATA_HUB_SUBCLASS_H_
//
// Sub Class Header type1
//
#define EFI_SUBCLASS_INSTANCE_RESERVED 0
#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit
typedef struct {
UINT32 Version;
UINT32 HeaderSize;
UINT16 Instance;
UINT16 SubInstance;
UINT32 RecordType;
} EFI_SUBCLASS_TYPE1_HEADER;
//
// EXP data
//
typedef struct {
INT16 Value;
INT16 Exponent;
} EFI_EXP_BASE10_DATA;
typedef struct {
UINT16 Value;
UINT16 Exponent;
} EFI_EXP_BASE2_DATA;
//
// Inter link data that references another data record
//
typedef struct {
EFI_GUID ProducerName;
UINT16 Instance;
UINT16 SubInstance;
} EFI_INTER_LINK_DATA;
//
// String Token Definition
//
#define EFI_STRING_TOKEN UINT16
#endif

View File

@@ -0,0 +1,151 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
DataHubSubClassCache.h
Abstract:
Definitions for Cache sub class data records
Revision History
--*/
#ifndef _DATAHUB_SUBCLASS_CACHE_H_
#define _DATAHUB_SUBCLASS_CACHE_H_
#define EFI_CACHE_SUBCLASS_VERSION 0x00010000
#define EFI_CACHE_SUBCLASS_GUID \
{ 0x7f0013a7, 0xdc79, 0x4b22, 0x80, 0x99, 0x11, 0xf7, 0x5f, 0xdc, 0x82, 0x9d }
typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;
typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;
typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;
typedef STRING_REF EFI_CACHE_SOCKET_DATA;
typedef struct {
UINT32 Other :1;
UINT32 Unknown :1;
UINT32 NonBurst :1;
UINT32 Burst :1;
UINT32 PipelineBurst :1;
UINT32 Asynchronous :1;
UINT32 Synchronous :1;
UINT32 Reserved :25;
} EFI_CACHE_SRAM_TYPE_DATA;
typedef enum {
EfiCacheErrorOther = 1,
EfiCacheErrorUnknown = 2,
EfiCacheErrorNone = 3,
EfiCacheErrorParity = 4,
EfiCacheErrorSingleBit = 5,
EfiCacheErrorMultiBit = 6
} EFI_CACHE_ERROR_TYPE_DATA;
typedef enum {
EfiCacheTypeOther = 1,
EfiCacheTypeUnknown = 2,
EfiCacheTypeInstruction = 3,
EfiCacheTypeData = 4,
EfiCacheTypeUnified = 5
} EFI_CACHE_TYPE_DATA;
typedef enum {
EfiCacheAssociativityOther = 1,
EfiCacheAssociativityUnknown = 2,
EfiCacheAssociativityDirectMapped = 3,
EfiCacheAssociativity2Way = 4,
EfiCacheAssociativity4Way = 5,
EfiCacheAssociativityFully = 6,
EfiCacheAssociativity8Way = 7,
EfiCacheAssociativity16Way = 8
} EFI_CACHE_ASSOCIATIVITY_DATA;
typedef struct {
UINT32 Level :3;
UINT32 Socketed :1;
UINT32 Reserved2 :1;
UINT32 Location :2;
UINT32 Enable :1;
UINT32 OperationalMode :2;
UINT32 Reserved1 :22;
} EFI_CACHE_CONFIGURATION_DATA;
#define EFI_CACHE_L1 1
#define EFI_CACHE_L2 2
#define EFI_CACHE_L3 3
#define EFI_CACHE_L4 4
#define EFI_CACHE_LMAX EFI_CACHE_L4
#define EFI_CACHE_SOCKETED 1
#define EFI_CACHE_NOT_SOCKETED 0
typedef enum {
EfiCacheInternal = 0,
EfiCacheExternal = 1,
EfiCacheReserved = 2,
EfiCacheUnknown = 3
} EFI_CACHE_LOCATION;
#define EFI_CACHE_ENABLED 1
#define EFI_CACHE_DISABLED 0
typedef enum {
EfiCacheWriteThrough = 0,
EfiCacheWriteBack = 1,
EfiCacheDynamicMode = 2,
EfiCacheUnknownMode = 3
} EFI_CACHE_OPERATIONAL_MODE;
typedef enum {
CacheSizeRecordType = 1,
MaximumSizeCacheRecordType = 2,
CacheSpeedRecordType = 3,
CacheSocketRecordType = 4,
CacheSramTypeRecordType = 5,
CacheInstalledSramTypeRecordType = 6,
CacheErrorTypeRecordType = 7,
CacheTypeRecordType = 8,
CacheAssociativityRecordType = 9,
CacheConfigRecordType = 10
} EFI_CACHE_VARIABLE_RECORD_TYPE;
typedef union {
EFI_CACHE_SIZE_DATA CacheSize;
EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;
EFI_CACHE_SPEED_DATA CacheSpeed;
EFI_CACHE_SOCKET_DATA CacheSocket;
EFI_CACHE_SRAM_TYPE_DATA CacheSramType;
EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;
EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;
EFI_CACHE_TYPE_DATA CacheType;
EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;
EFI_CACHE_CONFIGURATION_DATA CacheConfig;
EFI_CACHE_ASSOCIATION_DATA CacheAssociation;
} EFI_CACHE_VARIABLE_RECORD;
typedef struct {
EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
EFI_CACHE_VARIABLE_RECORD VariableRecord;
} EFI_CACHE_DATA_RECORD;
#endif

View File

@@ -0,0 +1,408 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
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.
Module Name:
DataHubSubClassMemory.h
Abstract:
Definitions for memory sub class data records
Revision History
--*/
#ifndef _DATAHUB_SUBCLASS_MEMORY_H_
#define _DATAHUB_SUBCLASS_MEMORY_H_
#include EFI_GUID_DEFINITION (DataHubRecords)
#define EFI_MEMORY_SUBCLASS_GUID \
{0x4E8F4EBB, 0x64B9, 0x4e05, 0x9B, 0x18, 0x4C, 0xFE, 0x49, 0x23, 0x50, 0x97}
#define EFI_MEMORY_SUBCLASS_VERSION 0x0100
#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001
typedef enum _EFI_MEMORY_REGION_TYPE {
EfiMemoryRegionMemory = 0x01,
EfiMemoryRegionReserved = 0x02,
EfiMemoryRegionAcpi = 0x03,
EfiMemoryRegionNvs = 0x04
} EFI_MEMORY_REGION_TYPE;
typedef struct {
UINT32 ProcessorNumber;
UINT16 StartBusNumber;
UINT16 EndBusNumber;
EFI_MEMORY_REGION_TYPE MemoryRegionType;
EFI_EXP_BASE2_DATA MemorySize;
EFI_PHYSICAL_ADDRESS MemoryStartAddress;
} EFI_MEMORY_SIZE_DATA;
#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002
typedef enum _EFI_MEMORY_ARRAY_LOCATION {
EfiMemoryArrayLocationOther = 0x01,
EfiMemoryArrayLocationUnknown = 0x02,
EfiMemoryArrayLocationSystemBoard = 0x03,
EfiMemoryArrayLocationIsaAddonCard = 0x04,
EfiMemoryArrayLocationEisaAddonCard = 0x05,
EfiMemoryArrayLocationPciAddonCard = 0x06,
EfiMemoryArrayLocationMcaAddonCard = 0x07,
EfiMemoryArrayLocationPcmciaAddonCard = 0x08,
EfiMemoryArrayLocationProprietaryAddonCard = 0x09,
EfiMemoryArrayLocationNuBus = 0x0A,
EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,
EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,
EfiMemoryArrayLocationPc98EAddonCard = 0xA2,
EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3
} EFI_MEMORY_ARRAY_LOCATION;
typedef enum _EFI_MEMORY_ARRAY_USE {
EfiMemoryArrayUseOther = 0x01,
EfiMemoryArrayUseUnknown = 0x02,
EfiMemoryArrayUseSystemMemory = 0x03,
EfiMemoryArrayUseVideoMemory = 0x04,
EfiMemoryArrayUseFlashMemory = 0x05,
EfiMemoryArrayUseNonVolatileRam = 0x06,
EfiMemoryArrayUseCacheMemory = 0x07,
} EFI_MEMORY_ARRAY_USE;
typedef enum _EFI_MEMORY_ERROR_CORRECTION {
EfiMemoryErrorCorrectionOther = 0x01,
EfiMemoryErrorCorrectionUnknown = 0x02,
EfiMemoryErrorCorrectionNone = 0x03,
EfiMemoryErrorCorrectionParity = 0x04,
EfiMemoryErrorCorrectionSingleBitEcc = 0x05,
EfiMemoryErrorCorrectionMultiBitEcc = 0x06,
EfiMemoryErrorCorrectionCrc = 0x07,
} EFI_MEMORY_ERROR_CORRECTION;
typedef struct {
EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;
EFI_MEMORY_ARRAY_USE MemoryArrayUse;
EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;
UINT32 MaximumMemoryCapacity;
UINT16 NumberMemoryDevices;
} EFI_MEMORY_ARRAY_LOCATION_DATA;
#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003
typedef enum _EFI_MEMORY_FORM_FACTOR {
EfiMemoryFormFactorOther = 0x01,
EfiMemoryFormFactorUnknown = 0x02,
EfiMemoryFormFactorSimm = 0x03,
EfiMemoryFormFactorSip = 0x04,
EfiMemoryFormFactorChip = 0x05,
EfiMemoryFormFactorDip = 0x06,
EfiMemoryFormFactorZip = 0x07,
EfiMemoryFormFactorProprietaryCard = 0x08,
EfiMemoryFormFactorDimm = 0x09,
EfiMemoryFormFactorTsop = 0x0A,
EfiMemoryFormFactorRowOfChips = 0x0B,
EfiMemoryFormFactorRimm = 0x0C,
EfiMemoryFormFactorSodimm = 0x0D,
EfiMemoryFormFactorSrimm = 0x0E,
EfiMemoryFormFactorFbDimm = 0x0F
} EFI_MEMORY_FORM_FACTOR;
typedef enum _EFI_MEMORY_ARRAY_TYPE {
EfiMemoryTypeOther = 0x01,
EfiMemoryTypeUnknown = 0x02,
EfiMemoryTypeDram = 0x03,
EfiMemoryTypeEdram = 0x04,
EfiMemoryTypeVram = 0x05,
EfiMemoryTypeSram = 0x06,
EfiMemoryTypeRam = 0x07,
EfiMemoryTypeRom = 0x08,
EfiMemoryTypeFlash = 0x09,
EfiMemoryTypeEeprom = 0x0A,
EfiMemoryTypeFeprom = 0x0B,
EfiMemoryTypeEprom = 0x0C,
EfiMemoryTypeCdram = 0x0D,
EfiMemoryType3Dram = 0x0E,
EfiMemoryTypeSdram = 0x0F,
EfiMemoryTypeSgram = 0x10,
EfiMemoryTypeRdram = 0x11,
EfiMemoryTypeDdr = 0x12,
EfiMemoryTypeDdr2 = 0x13,
EfiMemoryTypeDdr2FbDimm = 0x14
} EFI_MEMORY_ARRAY_TYPE;
typedef struct {
UINT32 Reserved :1;
UINT32 Other :1;
UINT32 Unknown :1;
UINT32 FastPaged :1;
UINT32 StaticColumn :1;
UINT32 PseudoStatic :1;
UINT32 Rambus :1;
UINT32 Synchronous :1;
UINT32 Cmos :1;
UINT32 Edo :1;
UINT32 WindowDram :1;
UINT32 CacheDram :1;
UINT32 Nonvolatile :1;
UINT32 Reserved1 :19;
} EFI_MEMORY_TYPE_DETAIL;
typedef enum {
EfiMemoryStateEnabled =0,
EfiMemoryStateUnknown,
EfiMemoryStateUnsupported,
EfiMemoryStateError,
EfiMemoryStateAbsent,
EfiMemoryStateDisabled,
EfiMemoryStatePartial
} EFI_MEMORY_STATE;
typedef struct {
EFI_STRING_TOKEN MemoryDeviceLocator;
EFI_STRING_TOKEN MemoryBankLocator;
EFI_STRING_TOKEN MemoryManufacturer;
EFI_STRING_TOKEN MemorySerialNumber;
EFI_STRING_TOKEN MemoryAssetTag;
EFI_STRING_TOKEN MemoryPartNumber;
EFI_INTER_LINK_DATA MemoryArrayLink;
EFI_INTER_LINK_DATA MemorySubArrayLink;
UINT16 MemoryTotalWidth;
UINT16 MemoryDataWidth;
UINT64 MemoryDeviceSize;
EFI_MEMORY_FORM_FACTOR MemoryFormFactor;
UINT8 MemoryDeviceSet;
EFI_MEMORY_ARRAY_TYPE MemoryType;
EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;
UINT16 MemorySpeed;
EFI_MEMORY_STATE MemoryState;
} EFI_MEMORY_ARRAY_LINK;
#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004
typedef struct {
EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;
EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;
EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;
UINT16 MemoryArrayPartitionWidth;
} EFI_MEMORY_ARRAY_START_ADDRESS;
#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005
typedef struct {
EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;
EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;
EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;
EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;
UINT8 MemoryDevicePartitionRowPosition;
UINT8 MemoryDeviceInterleavePosition;
UINT8 MemoryDeviceInterleaveDataDepth;
} EFI_MEMORY_DEVICE_START_ADDRESS;
//
// Memory. Channel Device Type - SMBIOS Type 37
//
#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006
typedef enum _EFI_MEMORY_CHANNEL_TYPE {
EfiMemoryChannelTypeOther = 1,
EfiMemoryChannelTypeUnknown = 2,
EfiMemoryChannelTypeRambus = 3,
EfiMemoryChannelTypeSyncLink = 4
} EFI_MEMORY_CHANNEL_TYPE;
typedef struct {
EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;
UINT8 MemoryChannelMaximumLoad;
UINT8 MemoryChannelDeviceCount;
} EFI_MEMORY_CHANNEL_TYPE_DATA;
#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007
typedef struct {
UINT8 DeviceId;
EFI_INTER_LINK_DATA DeviceLink;
UINT8 MemoryChannelDeviceLoad;
} EFI_MEMORY_CHANNEL_DEVICE_DATA;
//
// Memory. Controller Information - SMBIOS Type 5
//
#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008
typedef enum {
EfiErrorDetectingMethodOther = 1,
EfiErrorDetectingMethodUnknown = 2,
EfiErrorDetectingMethodNone = 3,
EfiErrorDetectingMethodParity = 4,
EfiErrorDetectingMethod32Ecc = 5,
EfiErrorDetectingMethod64Ecc = 6,
EfiErrorDetectingMethod128Ecc = 7,
EfiErrorDetectingMethodCrc = 8
} EFI_MEMORY_ERROR_DETECT_METHOD_TYPE;
typedef struct {
UINT8 Other :1;
UINT8 Unknown :1;
UINT8 None :1;
UINT8 SingleBitErrorCorrect :1;
UINT8 DoubleBitErrorCorrect :1;
UINT8 ErrorScrubbing :1;
UINT8 Reserved :2;
} EFI_MEMORY_ERROR_CORRECT_CAPABILITY;
typedef enum {
EfiMemoryInterleaveOther = 1,
EfiMemoryInterleaveUnknown = 2,
EfiMemoryInterleaveOneWay = 3,
EfiMemoryInterleaveTwoWay = 4,
EfiMemoryInterleaveFourWay = 5,
EfiMemoryInterleaveEightWay = 6,
EfiMemoryInterleaveSixteenWay = 7
} EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE;
typedef struct {
UINT16 Other :1;
UINT16 Unknown :1;
UINT16 SeventyNs :1;
UINT16 SixtyNs :1;
UINT16 FiftyNs :1;
UINT16 Reserved :11;
} EFI_MEMORY_SPEED_TYPE;
typedef struct {
UINT16 Other :1;
UINT16 Unknown :1;
UINT16 Standard :1;
UINT16 FastPageMode :1;
UINT16 EDO :1;
UINT16 Parity :1;
UINT16 ECC :1;
UINT16 SIMM :1;
UINT16 DIMM :1;
UINT16 BurstEdo :1;
UINT16 SDRAM :1;
UINT16 Reserved :5;
} EFI_MEMORY_SUPPORTED_TYPE;
typedef struct {
UINT8 Five :1;
UINT8 There :1;
UINT8 Two :1;
UINT8 Reserved :5;
} EFI_MEMORY_MODULE_VOLTAGE_TYPE;
typedef struct {
EFI_MEMORY_ERROR_DETECT_METHOD_TYPE ErrorDetectingMethod;
EFI_MEMORY_ERROR_CORRECT_CAPABILITY ErrorCorrectingCapability;
EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE MemorySupportedInterleave;
EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE MemoryCurrentInterleave;
UINT8 MaxMemoryModuleSize;
EFI_MEMORY_SPEED_TYPE MemorySpeedType;
EFI_MEMORY_SUPPORTED_TYPE MemorySupportedType;
EFI_MEMORY_MODULE_VOLTAGE_TYPE MemoryModuleVoltage;
UINT8 NumberofMemorySlot;
EFI_MEMORY_ERROR_CORRECT_CAPABILITY EnabledCorrectingCapability;
UINT16 *MemoryModuleConfigHandles;
} EFI_MEMORY_CONTROLLER_INFORMATION;
//
// Memory. Error Information - SMBIOS Type 18
//
#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009
typedef enum {
EfiMemoryErrorOther = 1,
EfiMemoryErrorUnknown = 2,
EfiMemoryErrorOk = 3,
EfiMemoryErrorBadRead = 4,
EfiMemoryErrorParity = 5,
EfiMemoryErrorSigleBit = 6,
EfiMemoryErrorDoubleBit = 7,
EfiMemoryErrorMultiBit = 8,
EfiMemoryErrorNibble = 9,
EfiMemoryErrorChecksum = 10,
EfiMemoryErrorCrc = 11,
EfiMemoryErrorCorrectSingleBit = 12,
EfiMemoryErrorCorrected = 13,
EfiMemoryErrorUnCorrectable = 14
} EFI_MEMORY_ERROR_TYPE;
typedef enum {
EfiMemoryGranularityOther = 1,
EfiMemoryGranularityOtherUnknown = 2,
EfiMemoryGranularityDeviceLevel = 3,
EfiMemoryGranularityMemPartitionLevel = 4
} EFI_MEMORY_ERROR_GRANULARITY_TYPE;
typedef enum {
EfiMemoryErrorOperationOther = 1,
EfiMemoryErrorOperationUnknown = 2,
EfiMemoryErrorOperationRead = 3,
EfiMemoryErrorOperationWrite = 4,
EfiMemoryErrorOperationPartialWrite = 5
} EFI_MEMORY_ERROR_OPERATION_TYPE;
typedef struct {
EFI_MEMORY_ERROR_TYPE MemoryErrorType;
EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;
EFI_MEMORY_ERROR_OPERATION_TYPE MemoryErrorOperation;
UINT32 VendorSyndrome;
UINT32 MemoryArrayErrorAddress;
UINT32 DeviceErrorAddress;
UINT32 DeviceErrorResolution;
} EFI_MEMORY_32BIT_ERROR_INFORMATION;
//
// Memory. Error Information - SMBIOS Type 33
//
#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A
typedef struct {
EFI_MEMORY_ERROR_TYPE MemoryErrorType;
EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;
EFI_MEMORY_ERROR_OPERATION_TYPE MemoryErrorOperation;
UINT32 VendorSyndrome;
UINT64 MemoryArrayErrorAddress;
UINT64 DeviceErrorAddress;
UINT32 DeviceErrorResolution;
} EFI_MEMORY_64BIT_ERROR_INFORMATION;
typedef union _EFI_MEMORY_SUBCLASS_RECORDS {
EFI_MEMORY_SIZE_DATA SizeData;
EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;
EFI_MEMORY_ARRAY_LINK ArrayLink;
EFI_MEMORY_ARRAY_START_ADDRESS ArrayStartAddress;
EFI_MEMORY_DEVICE_START_ADDRESS DeviceStartAddress;
EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;
EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;
EFI_MEMORY_CONTROLLER_INFORMATION MemoryControllerInfo;
EFI_MEMORY_32BIT_ERROR_INFORMATION Memory32bitErrorInfo;
EFI_MEMORY_64BIT_ERROR_INFORMATION Memory64bitErrorInfo;
} EFI_MEMORY_SUBCLASS_RECORDS;
typedef struct {
EFI_SUBCLASS_TYPE1_HEADER Header;
EFI_MEMORY_SUBCLASS_RECORDS Record;
} EFI_MEMORY_SUBCLASS_DRIVER_DATA;
#endif

View File

@@ -0,0 +1,360 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
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.
Module Name:
DataHubSubClassProcessor.h
Abstract:
Definitions for processor sub class data records
Revision History
--*/
#ifndef _DATAHUB_SUBCLASS_PROCESSOR_H_
#define _DATAHUB_SUBCLASS_PROCESSOR_H_
#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000
#define EFI_PROCESSOR_SUBCLASS_GUID \
{ 0x26fdeb7e, 0xb8af, 0x4ccf, 0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 }
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;
typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;
typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;
typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;
typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;
typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;
typedef struct {
UINT32 ProcessorSteppingId:4;
UINT32 ProcessorModel: 4;
UINT32 ProcessorFamily: 4;
UINT32 ProcessorType: 2;
UINT32 ProcessorReserved1: 2;
UINT32 ProcessorXModel: 4;
UINT32 ProcessorXFamily: 8;
UINT32 ProcessorReserved2: 4;
} EFI_PROCESSOR_SIGNATURE;
typedef struct {
UINT32 ProcessorBrandIndex :8;
UINT32 ProcessorClflush :8;
UINT32 ProcessorReserved :8;
UINT32 ProcessorDfltApicId :8;
} EFI_PROCESSOR_MISC_INFO;
typedef struct {
UINT32 ProcessorFpu: 1;
UINT32 ProcessorVme: 1;
UINT32 ProcessorDe: 1;
UINT32 ProcessorPse: 1;
UINT32 ProcessorTsc: 1;
UINT32 ProcessorMsr: 1;
UINT32 ProcessorPae: 1;
UINT32 ProcessorMce: 1;
UINT32 ProcessorCx8: 1;
UINT32 ProcessorApic: 1;
UINT32 ProcessorReserved1: 1;
UINT32 ProcessorSep: 1;
UINT32 ProcessorMtrr: 1;
UINT32 ProcessorPge: 1;
UINT32 ProcessorMca: 1;
UINT32 ProcessorCmov: 1;
UINT32 ProcessorPat: 1;
UINT32 ProcessorPse36: 1;
UINT32 ProcessorPsn: 1;
UINT32 ProcessorClfsh: 1;
UINT32 ProcessorReserved2: 1;
UINT32 ProcessorDs: 1;
UINT32 ProcessorAcpi: 1;
UINT32 ProcessorMmx: 1;
UINT32 ProcessorFxsr: 1;
UINT32 ProcessorSse: 1;
UINT32 ProcessorSse2: 1;
UINT32 ProcessorSs: 1;
UINT32 ProcessorReserved3: 1;
UINT32 ProcessorTm: 1;
UINT32 ProcessorReserved4: 2;
} EFI_PROCESSOR_FEATURE_FLAGS;
typedef struct {
EFI_PROCESSOR_SIGNATURE Signature;
EFI_PROCESSOR_MISC_INFO MiscInfo;
UINT32 Reserved;
EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;
} EFI_PROCESSOR_ID_DATA;
typedef enum {
EfiProcessorOther = 1,
EfiProcessorUnknown = 2,
EfiCentralProcessor = 3,
EfiMathProcessor = 4,
EfiDspProcessor = 5,
EfiVideoProcessor = 6
} EFI_PROCESSOR_TYPE_DATA;
typedef enum {
EfiProcessorFamilyOther = 1,
EfiProcessorFamilyUnknown = 2,
EfiProcessorFamily8086 = 3,
EfiProcessorFamily80286 = 4,
EfiProcessorFamilyIntel386 = 5,
EfiProcessorFamilyIntel486 = 6,
EfiProcessorFamily8087 = 7,
EfiProcessorFamily80287 = 8,
EfiProcessorFamily80387 = 9,
EfiProcessorFamily80487 = 0x0A,
EfiProcessorFamilyPentium = 0x0B,
EfiProcessorFamilyPentiumPro = 0x0C,
EfiProcessorFamilyPentiumII = 0x0D,
EfiProcessorFamilyPentiumMMX = 0x0E,
EfiProcessorFamilyCeleron = 0x0F,
EfiProcessorFamilyPentiumIIXeon = 0x10,
EfiProcessorFamilyPentiumIII = 0x11,
EfiProcessorFamilyM1 = 0x12,
EfiProcessorFamilyM2 = 0x13,
EfiProcessorFamilyM1Reserved2 = 0x14,
EfiProcessorFamilyM1Reserved3 = 0x15,
EfiProcessorFamilyM1Reserved4 = 0x16,
EfiProcessorFamilyM1Reserved5 = 0x17,
EfiProcessorFamilyAmdDuron = 0x18,
EfiProcessorFamilyK5 = 0x19,
EfiProcessorFamilyK6 = 0x1A,
EfiProcessorFamilyK6_2 = 0x1B,
EfiProcessorFamilyK6_3 = 0x1C,
EfiProcessorFamilyAmdAthlon = 0x1D,
EfiProcessorFamilyK6_2Plus = 0x1E,
EfiProcessorFamilyK5Reserved6 = 0x1F,
EfiProcessorFamilyPowerPC = 0x20,
EfiProcessorFamilyPowerPC601 = 0x21,
EfiProcessorFamilyPowerPC603 = 0x22,
EfiProcessorFamilyPowerPC603Plus = 0x23,
EfiProcessorFamilyPowerPC604 = 0x24,
EfiProcessorFamilyPowerPC620 = 0x25,
EfiProcessorFamilyPowerPC704 = 0x26,
EfiProcessorFamilyPowerPC750 = 0x27,
EfiProcessorFamilyAlpha2 = 0x30,
EfiProcessorFamilyAlpha21064 = 0x31,
EfiProcessorFamilyAlpha21066 = 0x32,
EfiProcessorFamilyAlpha21164 = 0x33,
EfiProcessorFamilyAlpha21164PC = 0x34,
EfiProcessorFamilyAlpha21164a = 0x35,
EfiProcessorFamilyAlpha21264 = 0x36,
EfiProcessorFamilyAlpha21364 = 0x37,
EfiProcessorFamilyMips = 0x40,
EfiProcessorFamilyMIPSR4000 = 0x41,
EfiProcessorFamilyMIPSR4200 = 0x42,
EfiProcessorFamilyMIPSR4400 = 0x43,
EfiProcessorFamilyMIPSR4600 = 0x44,
EfiProcessorFamilyMIPSR10000 = 0x45,
EfiProcessorFamilySparc = 0x50,
EfiProcessorFamilySuperSparc = 0x51,
EfiProcessorFamilymicroSparcII = 0x52,
EfiProcessorFamilymicroSparcIIep = 0x53,
EfiProcessorFamilyUltraSparc = 0x54,
EfiProcessorFamilyUltraSparcII = 0x55,
EfiProcessorFamilyUltraSparcIIi = 0x56,
EfiProcessorFamilyUltraSparcIII = 0x57,
EfiProcessorFamilyUltraSparcIIIi = 0x58,
EfiProcessorFamily68040 = 0x60,
EfiProcessorFamily68xxx = 0x61,
EfiProcessorFamily68000 = 0x62,
EfiProcessorFamily68010 = 0x63,
EfiProcessorFamily68020 = 0x64,
EfiProcessorFamily68030 = 0x65,
EfiProcessorFamilyHobbit = 0x70,
EfiProcessorFamilyCrusoeTM5000 = 0x78,
EfiProcessorFamilyCrusoeTM3000 = 0x79,
EfiProcessorFamilyWeitek = 0x80,
EfiProcessorFamilyItanium = 0x82,
EfiProcessorFamilyAmdAthlon64 = 0x83,
EfiProcessorFamilyAmdOpteron = 0x84,
EfiProcessorFamilyPARISC = 0x90,
EfiProcessorFamilyPaRisc8500 = 0x91,
EfiProcessorFamilyPaRisc8000 = 0x92,
EfiProcessorFamilyPaRisc7300LC = 0x93,
EfiProcessorFamilyPaRisc7200 = 0x94,
EfiProcessorFamilyPaRisc7100LC = 0x95,
EfiProcessorFamilyPaRisc7100 = 0x96,
EfiProcessorFamilyV30 = 0xA0,
EfiProcessorFamilyPentiumIIIXeon = 0xB0,
EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,
EfiProcessorFamilyPentium4 = 0xB2,
EfiProcessorFamilyIntelXeon = 0xB3,
EfiProcessorFamilyAS400 = 0xB4,
EfiProcessorFamilyIntelXeonMP = 0xB5,
EfiProcessorFamilyAMDAthlonXP = 0xB6,
EfiProcessorFamilyAMDAthlonMP = 0xB7,
EfiProcessorFamilyIntelItanium2 = 0xB8,
EfiProcessorFamilyIntelPentiumM = 0xB9,
EfiProcessorFamilyIntelCeleronD = 0xBA,
EfiProcessorFamilyIntelPentiumD = 0xBB,
EfiProcessorFamilyIntelPentiumEx = 0xBC,
EfiProcessorFamilyIBM390 = 0xC8,
EfiProcessorFamilyG4 = 0xC9,
EfiProcessorFamilyG5 = 0xCA,
EfiProcessorFamilyi860 = 0xFA,
EfiProcessorFamilyi960 = 0xFB
} EFI_PROCESSOR_FAMILY_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;
typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;
typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;
typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;
typedef enum {
EfiProcessorIa32Microcode = 1,
EfiProcessorIpfPalAMicrocode = 2,
EfiProcessorIpfPalBMicrocode = 3
} EFI_PROCESSOR_MICROCODE_TYPE;
typedef struct {
EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;
UINT32 ProcessorMicrocodeRevisionNumber;
} EFI_PROCESSOR_MICROCODE_REVISION_DATA;
typedef struct {
UINT32 CpuStatus :3;
UINT32 Reserved1 :3;
UINT32 SocketPopulated :1;
UINT32 Reserved2 :1;
UINT32 ApicEnable :1;
UINT32 BootApplicationProcessor :1;
UINT32 Reserved3 :22;
} EFI_PROCESSOR_STATUS_DATA;
typedef enum {
EfiCpuStatusUnknown = 0,
EfiCpuStatusEnabled = 1,
EfiCpuStatusDisabledByUser = 2,
EfiCpuStatusDisabledbyBios = 3,
EfiCpuStatusIdle = 4,
EfiCpuStatusOther = 7
} EFI_CPU_STATUS;
typedef enum {
EfiProcessorSocketOther = 1,
EfiProcessorSocketUnknown = 2,
EfiProcessorSocketDaughterBoard = 3,
EfiProcessorSocketZIF = 4,
EfiProcessorSocketReplacePiggyBack = 5,
EfiProcessorSocketNone = 6,
EfiProcessorSocketLIF = 7,
EfiProcessorSocketSlot1 = 8,
EfiProcessorSocketSlot2 = 9,
EfiProcessorSocket370Pin = 0xA,
EfiProcessorSocketSlotA = 0xB,
EfiProcessorSocketSlotM = 0xC,
EfiProcessorSocket423 = 0xD,
EfiProcessorSocketA462 = 0xE,
EfiProcessorSocket478 = 0xF,
EfiProcessorSocket754 = 0x10,
EfiProcessorSocket940 = 0x11,
EfiProcessorSocket939 = 0x12,
EfiProcessorSocketmPGA604 = 0x13,
EfiProcessorSocketLGA771 = 0x14,
EfiProcessorSocketLGA775 = 0x15
} EFI_PROCESSOR_SOCKET_TYPE_DATA;
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;
typedef enum {
EfiProcessorHealthy = 1,
EfiProcessorPerfRestricted = 2,
EfiProcessorFuncRestricted = 3
} EFI_PROCESSOR_HEALTH_STATUS;
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
typedef enum {
ProcessorCoreFrequencyRecordType = 1,
ProcessorFsbFrequencyRecordType = 2,
ProcessorVersionRecordType = 3,
ProcessorManufacturerRecordType = 4,
ProcessorSerialNumberRecordType = 5,
ProcessorIdRecordType = 6,
ProcessorTypeRecordType = 7,
ProcessorFamilyRecordType = 8,
ProcessorVoltageRecordType = 9,
ProcessorApicBaseAddressRecordType = 10,
ProcessorApicIdRecordType = 11,
ProcessorApicVersionNumberRecordType = 12,
CpuUcodeRevisionDataRecordType = 13,
ProcessorStatusRecordType = 14,
ProcessorSocketTypeRecordType = 15,
ProcessorSocketNameRecordType = 16,
CacheAssociationRecordType = 17,
ProcessorMaxCoreFrequencyRecordType = 18,
ProcessorAssetTagRecordType = 19,
ProcessorMaxFsbFrequencyRecordType = 20,
ProcessorPackageNumberRecordType = 21,
ProcessorCoreFrequencyListRecordType = 22,
ProcessorFsbFrequencyListRecordType = 23,
ProcessorHealthStatusRecordType = 24
} EFI_CPU_VARIABLE_RECORD_TYPE;
typedef union {
EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;
EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;
EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;
EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;
EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;
EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;
EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;
EFI_PROCESSOR_VERSION_DATA ProcessorVersion;
EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;
EFI_PROCESSOR_ID_DATA ProcessorId;
EFI_PROCESSOR_TYPE_DATA ProcessorType;
EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;
EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;
EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;
EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;
EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;
EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;
EFI_PROCESSOR_STATUS_DATA ProcessorStatus;
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
} EFI_CPU_VARIABLE_RECORD;
typedef struct {
EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
EFI_CPU_VARIABLE_RECORD VariableRecord;
} EFI_CPU_DATA_RECORD;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
DxeServices.c
Abstract:
GUID used for the DXE Services Table
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (DxeServices)
EFI_GUID gEfiDxeServicesTableGuid = EFI_DXE_SERVICES_TABLE_GUID;
EFI_GUID_STRING(&gEfiDxeServicesTableGuid, "DXE Services Table", "DXE Services Table GUID in EFI System Table");

View File

@@ -0,0 +1,32 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
DxeServices.h
Abstract:
GUID used for the DXE Services Table
--*/
#ifndef _DXE_SERVICES_H_
#define _DXE_SERVICES_H_
#define EFI_DXE_SERVICES_TABLE_GUID \
{ \
0x5ad34ba, 0x6f02, 0x4214, 0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9 \
}
extern EFI_GUID gEfiDxeServicesTableGuid;
#endif

View File

@@ -0,0 +1,63 @@
#/*++
#
# Copyright (c) 2004 - 2006, Intel Corporation
# 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.
#
# Module Name:
#
# EdkFrameworkGuidLib.inf
#
# Abstract:
#
# Component description file.
#
#--*/
[defines]
BASE_NAME= EdkFrameworkGuidLib
COMPONENT_TYPE= LIBRARY
[includes.common]
$(EDK_SOURCE)\Foundation\Framework
$(EDK_SOURCE)\Foundation\Efi
$(EDK_SOURCE)\Foundation\Include
$(EDK_SOURCE)\Foundation\Efi\Include
$(EDK_SOURCE)\Foundation\Framework\Include
$(EDK_SOURCE)\Foundation\Include\IndustryStandard
$(EDK_SOURCE)\Foundation\Core\Dxe
$(EDK_SOURCE)\Foundation\Include\Pei
$(EDK_SOURCE)\Foundation\Library\Pei\Include
[nmake.common]
[sources.common]
AcpiTableStorage\AcpiTableStorage.h
AcpiTableStorage\AcpiTableStorage.c
Apriori\Apriori.h
Apriori\Apriori.c
DataHubRecords\DataHubRecords.h
DataHubRecords\DataHubRecords.c
DxeServices\DxeServices.h
DxeServices\DxeServices.c
FirmwareFileSystem\FirmwareFileSystem.h
FirmwareFileSystem\FirmwareFileSystem.c
Hob\Hob.h
Hob\Hob.c
MemoryAllocationHob\MemoryAllocationHob.c
MemoryAllocationHob\MemoryAllocationHob.h
SmramMemoryReserve\SmramMemoryReserve.h
SmramMemoryReserve\SmramMemoryReserve.c
StatusCodeDataTypeId\StatusCodeDataTypeId.h
StatusCodeDataTypeId\StatusCodeDataTypeId.c
FrameworkDevicePath\FrameworkDevicePath.h
FrameworkDevicePath\FrameworkDevicePath.c
FirmwareFileSystem2\FirmwareFileSystem2.h
FirmwareFileSystem2\FirmwareFileSystem2.c
PeiApriori\PeiApriori.h
PeiApriori\PeiApriori.c

View File

@@ -0,0 +1,30 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
FirmwareFileSystem.c
Abstract:
Tiano Guid used to define the Firmware File System. See the EFI Firmware
File System Specification for more details.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (FirmwareFileSystem)
EFI_GUID gEfiFirmwareFileSystemGuid = EFI_FIRMWARE_FILE_SYSTEM_GUID;
EFI_GUID gEfiFirmwareVolumeTopFileGuid = EFI_FFS_VOLUME_TOP_FILE_GUID;
EFI_GUID_STRING(&gEfiFirmwareFileSystemGuid, "Firmware File System GUID", "EFI Firmware File System GUID");
EFI_GUID_STRING(&gEfiFirmwareVolumeTopFileGuid, "Firmware Volume Top File GUID", "EFI FFS Volume Top File GUID");

View File

@@ -0,0 +1,34 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
FirmwareFileSystem.h
Abstract:
Tiano Guid used to define the Firmware File System. See the EFI Firmware
File System Specification for more details.
--*/
#ifndef _FIRMWARE_FILE_SYSTEM_GUID_H
#define _FIRMWARE_FILE_SYSTEM_GUID_H
//
// GUID definitions are in EfiFirmwareFileSystem.h
//
#include "EfiFirmwareFileSystem.h"
extern EFI_GUID gEfiFirmwareFileSystemGuid;
extern EFI_GUID gEfiFirmwareVolumeTopFileGuid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2006, Intel Corporation
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.
Module Name:
FirmwareFileSystem2.c
Abstract:
PI 1.0 spec definition.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION(FirmwareFileSystem2)
EFI_GUID gEfiFirmwareFileSystem2Guid = EFI_FIRMWARE_FILE_SYSTEM2_GUID;
EFI_GUID_STRING(&gEfiFirmwareFileSystem2Guid, "FirmwareFileSystem2", "Efi FirmwareFileSystem2")

View File

@@ -0,0 +1,33 @@
/*++
Copyright (c) 2006, Intel Corporation
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.
Module Name:
FirmwareFileSystem2.h
Abstract:
PI 1.0 spec definition.
--*/
#ifndef __FIRMWARE_FILE_SYSTEM2_GUID_H__
#define __FIRMWARE_FILE_SYSTEM2_GUID_H__
//
// GUIDs defined by the FFS specification.
//
#define EFI_FIRMWARE_FILE_SYSTEM2_GUID \
{ 0x8c8ce578, 0x8a3d, 0x4f1c, { 0x99, 0x35, 0x89, 0x61, 0x85, 0xc3, 0x2d, 0xd3 } }
extern EFI_GUID gEfiFirmwareFileSystem2Guid;
#endif

View File

@@ -0,0 +1,27 @@
/*++
Copyright (c) 2006, Intel Corporation
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.
Module Name:
FrameworkDevicePath.c
Abstract:
GUID used for
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (FrameworkDevicePath)
EFI_GUID gEfiFrameworkDevicePathGuid = EFI_FRAMEWORK_DEVICE_PATH_GUID;
EFI_GUID_STRING(&gEfiFrameworkDevicePathGuid, "Framework Devic Path", "Framework Device Path GUID");

View File

@@ -0,0 +1,29 @@
/*++
This GUID is used to define a vendor specific device path being owned by the
Framework specificaitons.
Copyright (c) 2006, Intel Corporation
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.
Module Name: FrameworkDevicePath.h
@par Revision Reference:
Spec Version 0.9
--*/
#ifndef __FRAMEWORK_DEVICE_PATH_GUID_H__
#define __FRAMEWORK_DEVICE_PATH_GUID_H__
#define EFI_FRAMEWORK_DEVICE_PATH_GUID \
{ 0xb7084e63, 0x46b7, 0x4d1a, { 0x86, 0x77, 0xe3, 0x0b, 0x53, 0xdb, 0xf0, 0x50 } }
extern EFI_GUID gEfiFrameworkDevicePathGuid;
#endif

View File

@@ -0,0 +1,29 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
Hob.c
Abstract:
GUIDs used for HOB List in the EFI 1.0 system table
These GUIDs point the HOB List passed in from PEI to DXE.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (Hob)
EFI_GUID gEfiHobListGuid = EFI_HOB_LIST_GUID;
EFI_GUID_STRING(&gEfiHobListGuid, "HOB List", "HOB List GUID in EFI System Table");

View File

@@ -0,0 +1,34 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
Hob.h
Abstract:
GUIDs used for HOB List entries in the in the EFI 1.0 system table
These GUIDs point the HOB List passed from PEI to DXE.
--*/
#ifndef _HOB_GUID_H_
#define _HOB_GUID_H_
#define EFI_HOB_LIST_GUID \
{ \
0x7739f24c, 0x93d7, 0x11d4, 0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d \
}
extern EFI_GUID gEfiHobListGuid;
#endif

View File

@@ -0,0 +1,31 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
MemoryAllocationHob.c
Abstract:
GUIDs for HOBs used in memory allcation
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION(MemoryAllocationHob)
EFI_GUID gEfiHobMemeryAllocBspStoreGuid = EFI_HOB_MEMORY_ALLOC_BSP_STORE_GUID;
EFI_GUID gEfiHobMemeryAllocStackGuid = EFI_HOB_MEMORY_ALLOC_STACK_GUID;
EFI_GUID gEfiHobMemeryAllocModuleGuid = EFI_HOB_MEMORY_ALLOC_MODULE_GUID;
EFI_GUID_STRING(&gEfiHobMemeryAllocBspStoreGuid, "BSP Store HOB", "HOB for BSP Store Memory Allocation");
EFI_GUID_STRING(&gEfiHobMemeryAllocStackGuid, "Stack HOB", "HOB for Stack Memory Allocation");
EFI_GUID_STRING(&gEfiHobMemeryAllocModuleGuid, "Memry Allocation Module HOB", "HOB for Memory Allocation Module");

View File

@@ -0,0 +1,38 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
MemoryAllocationHob.h
Abstract:
GUIDs for HOBs used in memory allcation
--*/
#ifndef _HOB__MEMORY_ALLOCATION_GUID_H_
#define _HOB__MEMORY_ALLOCATION_GUID_H_
#define EFI_HOB_MEMORY_ALLOC_BSP_STORE_GUID \
{0x564b33cd, 0xc92a, 0x4593, 0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22};
#define EFI_HOB_MEMORY_ALLOC_STACK_GUID \
{0x4ed4bf27, 0x4092, 0x42e9, 0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x0, 0xc9, 0xbd}
#define EFI_HOB_MEMORY_ALLOC_MODULE_GUID \
{0xf8e21975, 0x899, 0x4f58, 0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a}
extern EFI_GUID gEfiHobMemeryAllocBspStoreGuid;
extern EFI_GUID gEfiHobMemeryAllocStackGuid;
extern EFI_GUID gEfiHobMemeryAllocModuleGuid;
#endif

View File

@@ -0,0 +1,26 @@
/*++
Copyright (c) 2006, Intel Corporation
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.
Module Name:
PeiApriori.c
Abstract:
PI 1.0 spec definition.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION(PeiApriori)
EFI_GUID gEfiPeiAprioriGuid = EFI_PEI_APRIORI_FILE_NAME_GUID;
EFI_GUID_STRING(&gEfiPeiAprioriGuid, "PeiApriori", "Efi PeiApriori")

View File

@@ -0,0 +1,36 @@
/*++
Copyright (c) 2006, Intel Corporation
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.
Module Name:
PeiApriori.h
Abstract:
PI 1.0 spec definition.
--*/
#ifndef __PEI_APRIORI_GUID_H__
#define __PEI_APRIORI_GUID_H__
#include "Tiano.h"
//
// GUIDs defined by the FFS specification.
//
#define EFI_PEI_APRIORI_FILE_NAME_GUID \
{ 0x1b45cc0a, 0x156a, 0x428a, 0xaf, 0x62, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6}
extern EFI_GUID gEfiPeiAprioriGuid;
#endif

View File

@@ -0,0 +1,28 @@
/*++
Copyright (c) 1999 - 2002, Intel Corporation
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.
Module Name:
SmramMemoryReserve.c
Abstract:
GUID for use in reserving SMRAM regions.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION(SmramMemoryReserve)
EFI_GUID gEfiSmmPeiSmramMemoryReserve = EFI_SMM_PEI_SMRAM_MEMORY_RESERVE;
EFI_GUID_STRING(&gEfiSmmPeiSmramMemoryReserve, "SMRAM Memory Reserve", "SMRAM Memory Reserve");

View File

@@ -0,0 +1,70 @@
/*++
Copyright (c) 1999 - 2002, Intel Corporation
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.
Module Name:
SmramMemoryReserve.h
Abstract:
GUID for use in reserving SMRAM regions.
--*/
#ifndef _EFI_SMM_PEI_SMRAM_MEMORY_RESERVE_H_
#define _EFI_SMM_PEI_SMRAM_MEMORY_RESERVE_H_
#define EFI_SMM_PEI_SMRAM_MEMORY_RESERVE \
{ \
0x6dadf1d1, 0xd4cc, 0x4910, 0xbb, 0x6e, 0x82, 0xb1, 0xfd, 0x80, 0xff, 0x3d \
}
//
// *******************************************************
// EFI_SMRAM_DESCRIPTOR
// *******************************************************
//
typedef struct {
EFI_PHYSICAL_ADDRESS PhysicalStart; // Phsyical location in DRAM
EFI_PHYSICAL_ADDRESS CpuStart; // Address CPU uses to access the SMI handler
// May or may not match PhysicalStart
//
UINT64 PhysicalSize;
UINT64 RegionState;
} EFI_SMRAM_DESCRIPTOR;
//
// *******************************************************
// EFI_SMRAM_STATE
// *******************************************************
//
#define EFI_SMRAM_OPEN 0x00000001
#define EFI_SMRAM_CLOSED 0x00000002
#define EFI_SMRAM_LOCKED 0x00000004
#define EFI_CACHEABLE 0x00000008
#define EFI_ALLOCATED 0x00000010
#define EFI_NEEDS_TESTING 0x00000020
#define EFI_NEEDS_ECC_INITIALIZATION 0x00000040
//
// *******************************************************
// EFI_SMRAM_HOB_DESCRIPTOR_BLOCK
// *******************************************************
//
typedef struct {
UINT32 NumberOfSmmReservedRegions;
EFI_SMRAM_DESCRIPTOR Descriptor[1];
} EFI_SMRAM_HOB_DESCRIPTOR_BLOCK;
extern EFI_GUID gEfiSmmPeiSmramMemoryReserve;
#endif

View File

@@ -0,0 +1,47 @@
/*++
Copyright (c) 2004, Intel Corporation
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.
Module Name:
StatusCodeDataTypeId.c
Abstract:
GUID used to identify id for the caller who is initiating the Status Code.
--*/
#include "Tiano.h"
#include EFI_GUID_DEFINITION (StatusCodeDataTypeId)
//
// Taken out from StatusCode.C created by PRC
//
EFI_GUID gEfiStatusCodeDataTypeStringGuid = EFI_STATUS_CODE_DATA_TYPE_STRING_GUID;
EFI_GUID gEfiStatusCodeDataTypeDebugGuid = EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID;
EFI_GUID gEfiStatusCodeDataTypeAssertGuid = EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID;
EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid = EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID;
EFI_GUID gEfiStatusCodeDataTypeErrorGuid = EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID;
EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid = EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID;
EFI_GUID gEfiStatusCodeSpecificDataGuid = EFI_STATUS_CODE_SPECIFIC_DATA_GUID;
EFI_GUID_STRING(&gEfiStatusCodeDataTypeStringGuid, "Status Code", "Data Hub record Data type String");
EFI_GUID_STRING(&gEfiStatusCodeSpecificDataGuid, "Status Code", "Data Hub record Data type specific ");
EFI_GUID_STRING(&gEfiStatusCodeDataTypeDebugGuid, "Status Code", "Data Hub record data type Debug");
EFI_GUID_STRING(&gEfiStatusCodeDataTypeAssertGuid, "Status Code", "Data Hub record data type Assert");
EFI_GUID_STRING(&gEfiStatusCodeDataTypeErrorGuid, "Status Code", "Data Hub record data type Error");
EFI_GUID_STRING(&gEfiStatusCodeDataTypeProgressCodeGuid, "Status Code", "Data Hub record data type Progress Code");
EFI_GUID_STRING
(&gEfiStatusCodeDataTypeExceptionHandlerGuid, "Status Code", "Data Hub record Data type Exception handler");
EFI_GUID_STRING
(&gEfiStatusCodeSpecificDataGuid, "Status Code Specific Data", "Specific Data for Tiano ReportStatusCode API");

View File

@@ -0,0 +1,385 @@
/*++
Copyright (c) 2004 - 2006, Intel Corporation
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.
Module Name:
StatusCodeDataTypeId.h
Abstract:
GUID used to identify id for the caller who is initiating the Status Code.
--*/
#ifndef _STATUS_CODE_DATA_TYPE_ID_H__
#define _STATUS_CODE_DATA_TYPE_ID_H__
#include "EfiStatusCode.h"
#include EFI_PROTOCOL_DEFINITION (DebugSupport)
#include EFI_PROTOCOL_DEFINITION (Hii)
//
// The size of string
//
#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
//
// This is the max data size including all the headers which can be passed
// as Status Code data. This data should be multiple of 8 byte
// to avoid any kind of boundary issue. Also, sum of this data size (inclusive
// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
// data hub
//
#define EFI_STATUS_CODE_DATA_MAX_SIZE 200
//
// String Data Type defintion. This is part of Status Code Specification
//
#define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \
{ \
0x92D11080, 0x496F, 0x4D95, 0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A \
}
extern EFI_GUID gEfiStatusCodeDataTypeStringGuid;
//
// This GUID indicates that the format of the accompanying data depends
// upon the Status Code Value, but follows this Specification
//
#define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \
{ \
0x335984bd, 0xe805, 0x409a, 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 \
}
extern EFI_GUID gEfiStatusCodeSpecificDataGuid;
#pragma pack(1)
typedef enum {
EfiStringAscii,
EfiStringUnicode,
EfiStringToken
} EFI_STRING_TYPE;
//
// HII string token
//
typedef struct {
EFI_HII_HANDLE Handle;
STRING_REF Token;
} EFI_STATUS_CODE_STRING_TOKEN;
typedef union {
CHAR8 *Ascii;
CHAR16 *Unicode;
EFI_STATUS_CODE_STRING_TOKEN Hii;
} EFI_STATUS_CODE_STRING;
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_STRING_TYPE StringType;
EFI_STATUS_CODE_STRING String;
} EFI_STATUS_CODE_STRING_DATA;
#pragma pack()
//
// Debug Assert Data. This is part of Status Code Specification
//
#define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \
{ \
0xDA571595, 0x4D99, 0x487C, 0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07 \
}
extern EFI_GUID gEfiStatusCodeDataTypeAssertGuid;
//
// Exception Data type (CPU REGS)
//
#define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \
{ \
0x3BC2BD12, 0xAD2E, 0x11D5, 0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 \
}
extern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid;
//
// Debug DataType defintions. User Defined Data Types.
//
#define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \
{ \
0x9A4E9246, 0xD553, 0x11D5, 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9 \
}
#pragma pack(1)
typedef struct {
UINT32 ErrorLevel;
//
// 12 * sizeof (UINT64) Var Arg stack
//
// ascii DEBUG () Format string
//
} EFI_DEBUG_INFO;
#pragma pack()
extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid;
//
// Progress Code. User Defined Data Type Guid.
//
#define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \
{ \
0xAB359CE3, 0x99B3, 0xAE18, 0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B \
}
extern EFI_GUID gEfiStatusCodeDataTypeErrorGuid;
//
// declaration for EFI_EXP_DATA. This may change
//
typedef UINTN EFI_EXP_DATA;
//
// Voltage Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_EXP_DATA Voltage;
EFI_EXP_DATA Threshold;
} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
//
// Microcode Update Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
UINT32 Version;
} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
//
// Asynchronous Timer Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_EXP_DATA TimerLimit;
} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
//
// Host Processor Mismatch Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
UINT32 Instance;
UINT16 Attributes;
} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
//
// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
// All other attributes are reserved for future use and
// must be initialized to 0.
//
#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
//
// Thermal Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_EXP_DATA Temperature;
EFI_EXP_DATA Threshold;
} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;
//
// Processor Disabled Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
UINT32 Cause;
BOOLEAN SoftwareDisabled;
} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
typedef enum {
EfiInitCacheDataOnly,
EfiInitCacheInstrOnly,
EfiInitCacheBoth,
EfiInitCacheUnspecified
} EFI_INIT_CACHE_TYPE;
//
// Embedded cache init extended data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
UINT32 Level;
EFI_INIT_CACHE_TYPE Type;
} EFI_CACHE_INIT_DATA;
//
// Memory Extended Error Data
//
//
// Memory Error Granularity Definition
//
typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;
//
// Memory Error Operation Definition
//
typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_MEMORY_ERROR_GRANULARITY Granularity;
EFI_MEMORY_ERROR_OPERATION Operation;
UINTN Syndrome;
EFI_PHYSICAL_ADDRESS Address;
UINTN Resolution;
} EFI_MEMORY_EXTENDED_ERROR_DATA;
//
// Memory Error Granularities
//
#define EFI_MEMORY_ERROR_OTHER 0x01
#define EFI_MEMORY_ERROR_UNKNOWN 0x02
#define EFI_MEMORY_ERROR_DEVICE 0x03
#define EFI_MEMORY_ERROR_PARTITION 0x04
//
// Memory Error Operations
//
#define EFI_MEMORY_OPERATION_OTHER 0x01
#define EFI_MEMORY_OPERATION_UNKNOWN 0x02
#define EFI_MEMORY_OPERATION_READ 0x03
#define EFI_MEMORY_OPERATION_WRITE 0x04
#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
//
// Define shorthands to describe Group Operations
// Many memory init operations are essentially group
// operations.
// A shorthand to describe that the operation is performed
// on multiple devices within the array
//
#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
//
// A shorthand to describe that the operation is performed // on all devices within the array
//
#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
//
// A shorthand to describe that the operation is performed // on multiple arrays
//
#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
//
// A shorthand to describe that the operation is performed // on all the arrays
//
#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
//
// DIMM number
//
#pragma pack(1)
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
UINT16 Array;
UINT16 Device;
} EFI_STATUS_CODE_DIMM_NUMBER;
#pragma pack()
//
// Memory Module Mismatch Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_STATUS_CODE_DIMM_NUMBER Instance;
} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
//
// Memory Range Extended Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_PHYSICAL_ADDRESS Start;
EFI_PHYSICAL_ADDRESS Length;
} EFI_MEMORY_RANGE_EXTENDED_DATA;
//
// Device handle Extended Data. Used for many
// errors and progress codes to point to the device.
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_HANDLE Handle;
} EFI_DEVICE_HANDLE_EXTENDED_DATA;
//
// Resource Allocation Failure Extended Error Data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
UINT32 Bar;
VOID *ReqRes;
VOID *AllocRes;
} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
//
// Extended Error Data for Assert
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
UINT32 LineNumber;
UINT32 FileNameSize;
EFI_STATUS_CODE_STRING_DATA *FileName;
} EFI_DEBUG_ASSERT_DATA;
//
// System Context Data EBC/IA32/IPF
//
typedef union {
EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;
EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;
EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;
} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
//
// Legacy Oprom extended data
//
typedef struct {
EFI_STATUS_CODE_DATA DataHeader;
EFI_HANDLE DeviceHandle;
EFI_PHYSICAL_ADDRESS RomImageBase;
} EFI_LEGACY_OPROM_EXTENDED_DATA;
//
// Progress Code. User Defined Data Type Guid.
//
#define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \
{ \
0xA356AB39, 0x35C4, 0x35DA, 0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3 \
}
extern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid;
#endif