summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Foundation/Framework
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-11-26 01:54:49 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-11-26 01:54:49 +0000
commit3e99020dbf0a159e34b84e7ae9125f2e368d5390 (patch)
tree0eb6339318f7bf7da1b679b8009cf267b2234566 /EdkCompatibilityPkg/Foundation/Framework
parent68bb5ce77e51cf35791e46f2202e36da97e5e6be (diff)
downloadedk2-platforms-3e99020dbf0a159e34b84e7ae9125f2e368d5390.tar.xz
Sync all bug fixes between EDK1.04 and EDK1.06 into EdkCompatibilityPkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11094 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkCompatibilityPkg/Foundation/Framework')
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMemory.h28
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h90
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h55
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Include/EfiCapsule.h8
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Include/EfiPciCfg.h11
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Include/PeiApi.h10
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h25
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf7
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h4
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.c30
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.h56
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.c30
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.h66
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.c4
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.h4
-rw-r--r--EdkCompatibilityPkg/Foundation/Framework/Protocol/IdeControllerInit/IdeControllerInit.h13
16 files changed, 377 insertions, 64 deletions
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMemory.h b/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMemory.h
index a4b83c33d9..482e69e114 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMemory.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMemory.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -140,7 +140,9 @@ typedef enum _EFI_MEMORY_ARRAY_TYPE {
EfiMemoryTypeRdram = 0x11,
EfiMemoryTypeDdr = 0x12,
EfiMemoryTypeDdr2 = 0x13,
- EfiMemoryTypeDdr2FbDimm = 0x14
+ EfiMemoryTypeDdr2FbDimm = 0x14,
+ EfiMemoryTypeDdr3 = 0x18,
+ EfiMemoryTypeFbd2 = 0x19
} EFI_MEMORY_ARRAY_TYPE;
typedef struct {
@@ -189,6 +191,8 @@ typedef struct {
UINT16 MemorySpeed;
EFI_MEMORY_STATE MemoryState;
UINT8 MemoryAttributes;
+ UINT8 MemoryBankConnections;
+ UINT8 MemoryErrorStatus;
} EFI_MEMORY_ARRAY_LINK;
@@ -304,11 +308,15 @@ typedef struct {
typedef struct {
UINT8 Five :1;
- UINT8 There :1;
+ UINT8 Three :1;
UINT8 Two :1;
UINT8 Reserved :5;
} EFI_MEMORY_MODULE_VOLTAGE_TYPE;
+//
+// EFI_MEMORY_CONTROLLER_INFORMATION is obsolete
+// Use EFI_MEMORY_CONTROLLER_INFORMATION_DATA instead
+//
typedef struct {
EFI_MEMORY_ERROR_DETECT_METHOD_TYPE ErrorDetectingMethod;
EFI_MEMORY_ERROR_CORRECT_CAPABILITY ErrorCorrectingCapability;
@@ -323,6 +331,20 @@ typedef struct {
UINT16 *MemoryModuleConfigHandles;
} EFI_MEMORY_CONTROLLER_INFORMATION;
+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;
+ EFI_INTER_LINK_DATA MemoryModuleConfig[1];
+} EFI_MEMORY_CONTROLLER_INFORMATION_DATA;
+
//
// Memory. Error Information - SMBIOS Type 18
//
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h b/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h
index 56124059a6..d7545afc8b 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassMisc.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -261,6 +261,7 @@ typedef enum {
typedef struct {
UINT32 RecordType :1;
+ UINT32 Type :7;
UINT32 Reserved :24;
} EFI_MISC_ELEMENT_TYPE;
@@ -417,7 +418,7 @@ typedef enum {
EfiSlotTypeApg2X = 0x10,
EfiSlotTypeAgp4X = 0x11,
EfiSlotTypePciX = 0x12,
- EfiSlotTypeAgp4x = 0x13,
+ EfiSlotTypeAgp8X = 0x13,
EfiSlotTypePC98C20 = 0xA0,
EfiSlotTypePC98C24 = 0xA1,
EfiSlotTypePC98E = 0xA2,
@@ -428,7 +429,13 @@ typedef enum {
EfiSlotTypePciExpressX2 = 0xA7,
EfiSlotTypePciExpressX4 = 0xA8,
EfiSlotTypePciExpressX8 = 0xA9,
- EfiSlotTypePciExpressX16 = 0xAA
+ EfiSlotTypePciExpressX16 = 0xAA,
+ EfiSlotTypePciExpressGen2 = 0xAB,
+ EfiSlotTypePciExpressGen2X1 = 0xAC,
+ EfiSlotTypePciExpressGen2X2 = 0xAD,
+ EfiSlotTypePciExpressGen2X4 = 0xAE,
+ EfiSlotTypePciExpressGen2X8 = 0xAF,
+ EfiSlotTypePciExpressGen2X16 = 0xB0
} EFI_MISC_SLOT_TYPE;
typedef enum {
@@ -595,6 +602,7 @@ typedef struct {
EFI_INTER_LINK_DATA GroupLink;
UINT16 GroupId;
UINT16 GroupElementId;
+ UINT8 ItemType;
} EFI_MISC_GROUP_ITEM_SET_DATA;
//
@@ -711,7 +719,12 @@ typedef struct {
//
// Misc. Hardware Security - SMBIOS Type 24
//
-#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012
+#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012
+
+//
+// Backward Compatibility
+//
+#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER
typedef enum {
EfiHardwareSecurityStatusDisabled = 0,
@@ -966,6 +979,7 @@ typedef struct {
EFI_INTER_LINK_DATA ManagementDeviceLink;
EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
+ UINT8 ComponentType;
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;
//
@@ -1013,7 +1027,7 @@ typedef struct {
} POWER_SUPPLY_CHARACTERISTICS;
typedef struct {
- UINT8 PowerUnitGroup;
+ UINT16 PowerUnitGroup;
STRING_REF PowerSupplyLocation;
STRING_REF PowerSupplyDeviceName;
STRING_REF PowerSupplyManufacturer;
@@ -1098,18 +1112,62 @@ typedef struct {
// Misc. System Event Log - SMBIOS Type 15
//
#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020
+
+typedef enum {
+ EfiEventLogTypeReserved1 = 0,
+ EfiEventLogTypeSingleBitEccMemoryError = 1,
+ EfiEventLogTypeMultiBitEccMemoryError = 2,
+ EfiEventLogTypeParityMemoryError = 3,
+ EfiEventLogTypeBusTimeOut = 4,
+ EfiEventLogTypeIoChannelCheck = 5,
+ EfiEventLogTypeSoftwareNmi = 6,
+ EfiEventLogTypePostMemoryResize = 7,
+ EfiEventLogTypePostError = 8,
+ EfiEventLogTypePciParityError = 9,
+ EfiEventLogTypePciSystemError = 0xA,
+ EfiEventLogTypeCpuFailure = 0xB,
+ EfiEventLogTypeEisaFailSafeTimerTimeOut = 0xC,
+ EfiEventLogTypeCorrectableMemoryLogDisabled = 0xD,
+ EfiEventLogTypeLoggingDisabled = 0xE,
+ EfiEventLogTypeReserved2 = 0xF,
+ EfiEventLogTypeSystemLimitExceeded = 0x10,
+ EfiEventLogTypeAsynchronousHardwareTimerExpired = 0x11,
+ EfiEventLogTypeSystemConfigurationInformation = 0x12,
+ EfiEventLogTypeHardDiskInformation = 0x13,
+ EfiEventLogTypeSystemReconfigured = 0x14,
+ EfiEventLogTypeUncorrectableCpuComplexError = 0x15,
+ EfiEventLogTypeLogAreaResetCleared = 0x16,
+ EfiEventLogTypeSystemBoot = 0x17,
+ EfiEventLogTypeEndOfLog = 0xFF
+} EFI_MISC_LOG_TYPE;
+
+typedef enum {
+ EfiEventLogDataFormatTypeNone = 0,
+ EfiEventLogDataFormatTypeHandle = 1,
+ EfiEventLogDataFormatTypeMultipleEvent = 2,
+ EfiEventLogDataFormatTypeMultipleEventHandle = 3,
+ EfiEventLogDataFormatTypePostResultsBitmap = 4,
+ EfiEventLogDataFormatTypeSystemManagement = 5,
+ EfiEventLogDataFormatTypeMultipleEventSystemManagement = 6
+} EFI_MISC_VARIABLE_DATA_FORMAT_TYPE;
+
+typedef struct {
+ UINT8 LogType;
+ UINT8 DataFormatType;
+} EFI_MISC_EVENT_LOG_TYPE;
+
typedef struct {
- //SMBIOS_STRUCTURE_HDR Header;
- UINT16 LogAreaLength;
- UINT16 LogHeaderStartOffset;
- UINT16 LogDataStartOffset;
- UINT8 AccessMethod;
- UINT8 LogStatus;
- UINT32 LogChangeToken;
- UINT32 AccessMethodAddress;
- UINT8 LogHeaderFormat;
- UINT8 NumberOfSupportedLogType;
- UINT8 LengthOfLogDescriptor;
+ UINT16 LogAreaLength;
+ UINT16 LogHeaderStartOffset;
+ UINT16 LogDataStartOffset;
+ UINT8 AccessMethod;
+ UINT8 LogStatus;
+ UINT32 LogChangeToken;
+ UINT32 AccessMethodAddress;
+ UINT8 LogHeaderFormat;
+ UINT8 NumberOfSupportedLogType;
+ UINT8 LengthOfLogDescriptor;
+ EFI_PHYSICAL_ADDRESS EventLogTypeDescriptors; // Pointer to EFI_MISC_EVENT_LOG_TYPE
} EFI_MISC_SYSTEM_EVENT_LOG;
//
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h b/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h
index fc094b7b9c..f55bd30830 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassProcessor.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -49,6 +49,7 @@ typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;
typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;
+
typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA;
typedef struct {
@@ -159,6 +160,10 @@ typedef enum {
EfiProcessorFamilyPowerPC620 = 0x25,
EfiProcessorFamilyPowerPC704 = 0x26,
EfiProcessorFamilyPowerPC750 = 0x27,
+ EfiProcessorFamilyIntelCoreDuo = 0x28,
+ EfiProcessorFamilyIntelCoreDuoMobile = 0x29,
+ EfiProcessorFamilyIntelCoreSoloMobile = 0x2A,
+ EfiProcessorFamilyIntelAtom = 0x2B,
EfiProcessorFamilyAlpha2 = 0x30,
EfiProcessorFamilyAlpha21064 = 0x31,
EfiProcessorFamilyAlpha21066 = 0x32,
@@ -201,6 +206,12 @@ typedef enum {
EfiProcessorFamilyDualCoreAmdOpteron = 0x87,
EfiProcessorFamilyAmdAthlon64X2DualCore = 0x88,
EfiProcessorFamilyAmdTurion64X2Mobile = 0x89,
+ EfiProcessorFamilyQuadCoreAmdOpteron = 0x8A,
+ EfiProcessorFamilyThirdGenerationAmdOpteron = 0x8B,
+ EfiProcessorFamilyAmdPhenomFxQuadCore = 0x8C,
+ EfiProcessorFamilyAmdPhenomX4QuadCore = 0x8D,
+ EfiProcessorFamilyAmdPhenomX2DualCore = 0x8E,
+ EfiProcessorFamilyAmdAthlonX2DualCore = 0x8F,
EfiProcessorFamilyPARISC = 0x90,
EfiProcessorFamilyPaRisc8500 = 0x91,
EfiProcessorFamilyPaRisc8000 = 0x92,
@@ -209,6 +220,21 @@ typedef enum {
EfiProcessorFamilyPaRisc7100LC = 0x95,
EfiProcessorFamilyPaRisc7100 = 0x96,
EfiProcessorFamilyV30 = 0xA0,
+ EfiProcessorFamilyQuadCoreIntelXeon3200Series = 0xA1,
+ EfiProcessorFamilyDualCoreIntelXeon3000Series = 0xA2,
+ EfiProcessorFamilyQuadCoreIntelXeon5300Series = 0xA3,
+ EfiProcessorFamilyDualCoreIntelXeon5100Series = 0xA4,
+ EfiProcessorFamilyDualCoreIntelXeon5000Series = 0xA5,
+ EfiProcessorFamilyDualCoreIntelXeonLV = 0xA6,
+ EfiProcessorFamilyDualCoreIntelXeonULV = 0xA7,
+ EfiProcessorFamilyDualCoreIntelXeon7100Series = 0xA8,
+ EfiProcessorFamilyQuadCoreIntelXeon5400Series = 0xA9,
+ EfiProcessorFamilyQuadCoreIntelXeon = 0xAA,
+ EfiProcessorFamilyDualCoreIntelXeon5200Series = 0xAB,
+ EfiProcessorFamilyDualCoreIntelXeon7200Series = 0xAC,
+ EfiProcessorFamilyQuadCoreIntelXeon7300Series = 0xAD,
+ EfiProcessorFamilyQuadCoreIntelXeon7400Series = 0xAE,
+ EfiProcessorFamilyMultiCoreIntelXeon7400Series = 0xAF,
EfiProcessorFamilyPentiumIIIXeon = 0xB0,
EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,
EfiProcessorFamilyPentium4 = 0xB2,
@@ -222,9 +248,17 @@ typedef enum {
EfiProcessorFamilyIntelCeleronD = 0xBA,
EfiProcessorFamilyIntelPentiumD = 0xBB,
EfiProcessorFamilyIntelPentiumEx = 0xBC,
- EfiProcessorFamilyIntelCoreBrand = 0xBD,
+ EfiProcessorFamilyIntelCoreSolo = 0xBD, // SMBIOS spec 2.6 correct this value
EfiProcessorFamilyReserved = 0xBE,
EfiProcessorFamilyIntelCore2 = 0xBF,
+ EfiProcessorFamilyIntelCore2Solo = 0xC0,
+ EfiProcessorFamilyIntelCore2Extreme = 0xC1,
+ EfiProcessorFamilyIntelCore2Quad = 0xC2,
+ EfiProcessorFamilyIntelCore2ExtremeMobile = 0xC3,
+ EfiProcessorFamilyIntelCore2DuoMobile = 0xC4,
+ EfiProcessorFamilyIntelCore2SoloMobile = 0xC5,
+ EfiProcessorFamilyIntelCoreI7 = 0xC6,
+ EfiProcessorFamilyDualCoreIntelCeleron = 0xC7,
EfiProcessorFamilyIBM390 = 0xC8,
EfiProcessorFamilyG4 = 0xC9,
EfiProcessorFamilyG5 = 0xCA,
@@ -234,6 +268,20 @@ typedef enum {
EfiProcessorFamilyViaC7D = 0xD3,
EfiProcessorFamilyViaC7 = 0xD4,
EfiProcessorFamilyViaEden = 0xD5,
+ EfiProcessorFamilyMultiCoreIntelXeon = 0xD6,
+ EfiProcessorFamilyDualCoreIntelXeon3Series = 0xD7,
+ EfiProcessorFamilyQuadCoreIntelXeon3Series = 0xD8,
+ EfiProcessorFamilyDualCoreIntelXeon5Series = 0xDA,
+ EfiProcessorFamilyQuadCoreIntelXeon5Series = 0xDB,
+ EfiProcessorFamilyDualCoreIntelXeon7Series = 0xDD,
+ EfiProcessorFamilyQuadCoreIntelXeon7Series = 0xDE,
+ EfiProcessorFamilyMultiCoreIntelXeon7Series = 0xDF,
+ EfiProcessorFamilyEmbeddedAmdOpteronQuadCore = 0xE6,
+ EfiProcessorFamilyAmdPhenomTripleCore = 0xE7,
+ EfiProcessorFamilyAmdTurionUltraDualCoreMobile = 0xE8,
+ EfiProcessorFamilyAmdTurionDualCoreMobile = 0xE9,
+ EfiProcessorFamilyAmdAthlonDualCore = 0xEA,
+ EfiProcessorFamilyAmdSempronSI = 0xEB,
EfiProcessorFamilyi860 = 0xFA,
EfiProcessorFamilyi960 = 0xFB,
EfiProcessorFamilyIndicatorFamily2 = 0xFE
@@ -314,7 +362,8 @@ typedef enum {
EfiProcessorSocketLGA775 = 0x15,
EfiProcessorSocketS1 = 0x16,
EfiProcessorSocketAm2 = 0x17,
- EfiProcessorSocketF = 0x18
+ EfiProcessorSocketF = 0x18,
+ EfiProcessorSocketLGA1366 = 0x19
} EFI_PROCESSOR_SOCKET_TYPE_DATA;
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Include/EfiCapsule.h b/EdkCompatibilityPkg/Foundation/Framework/Include/EfiCapsule.h
index f2e996a794..cae8aec161 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Include/EfiCapsule.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Include/EfiCapsule.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -59,6 +59,11 @@ typedef struct {
VOID* CapsulePtr[1];
} EFI_CAPSULE_TABLE;
+//
+// This struct is deprecated because VendorTable entries physical address will not be fixed up when
+// transitioning from preboot to runtime phase. So we don't need CapsuleInfoTable to record capsule
+// GUIDs any more for runtime convert.
+//
typedef struct {
UINT32 CapsuleGuidNumber;
EFI_GUID CapsuleGuidPtr[1];
@@ -66,6 +71,7 @@ typedef struct {
//
// This GUID is used for collecting all capsules' Guids who install in ConfigTable.
+// This GUID is deprecated as well.
//
#define EFI_CAPSULE_INFO_GUID \
{ \
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Include/EfiPciCfg.h b/EdkCompatibilityPkg/Foundation/Framework/Include/EfiPciCfg.h
index c5c180d337..1db788670f 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Include/EfiPciCfg.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Include/EfiPciCfg.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -50,11 +50,10 @@ typedef enum {
} EFI_PEI_PCI_CFG_PPI_WIDTH;
#define EFI_PEI_PCI_CFG_ADDRESS(bus, dev, func, reg) \
- ( ((bus) << 24) | \
- ((dev) << 16) | \
- ((func) << 8) | \
- ((reg) < 256 ? (reg): ((UINT64)(reg) << 32)))
-
+ (UINT64) ((((UINTN) (bus)) << 24) | \
+ (((UINTN) (dev)) << 16) | \
+ (((UINTN) (func)) << 8) | \
+ ((reg) < 256 ? ((UINTN) (reg)): ((UINT64) (reg) << 32)))
#if (PI_SPECIFICATION_VERSION < 0x00010000)
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Include/PeiApi.h b/EdkCompatibilityPkg/Foundation/Framework/Include/PeiApi.h
index 5d1ce1f63f..e37baeb10c 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Include/PeiApi.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Include/PeiApi.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -361,8 +361,8 @@ EFI_STATUS
(EFIAPI *EFI_PEI_FFS_FIND_NEXT_FILE2) (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN EFI_FV_FILETYPE SearchType,
- IN CONST EFI_PEI_FV_HANDLE *FwVolHeader,
- IN OUT EFI_PEI_FILE_HANDLE **FileHandle
+ IN CONST EFI_PEI_FV_HANDLE FvHandle,
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle
);
typedef
@@ -370,7 +370,7 @@ EFI_STATUS
(EFIAPI *EFI_PEI_FFS_FIND_SECTION_DATA2) (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN EFI_SECTION_TYPE SectionType,
- IN EFI_PEI_FILE_HANDLE *FileHandle,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
OUT VOID **SectionData
);
@@ -443,7 +443,7 @@ EFI_STATUS
typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FFS_GET_VOLUME_INFO) (
- IN EFI_PEI_FV_HANDLE *VolumeHandle,
+ IN EFI_PEI_FV_HANDLE VolumeHandle,
OUT EFI_FV_INFO *VolumeInfo
);
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h b/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h
index c8eec3d946..4f6cb395d6 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Include/TianoSpecDevicePath.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -22,28 +22,11 @@ Abstract:
#ifndef _TIANO_SPEC_DEVICE_PATH_H
#define _TIANO_SPEC_DEVICE_PATH_H
-#pragma pack(1)
+#include "EfiDevicePath.h"
-#if (EFI_SPECIFICATION_VERSION <= 0x00020000)
//
-// EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10.
-// In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with
-// EFI 1.10 and UEFI 2.10.
+// MEDIA_FW_VOL_FILEPATH_DEVICE_PATH and MEDIA_FW_VOL_DEVICE_PATH are defined in
+// EfiDevicePath.h
//
-#define MEDIA_FV_FILEPATH_DP 0x06
-typedef struct {
- EFI_DEVICE_PATH_PROTOCOL Header;
- EFI_GUID NameGuid;
-} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;
-#endif
-
-
-#if (EFI_SPECIFICATION_VERSION > 0x00020000)
-//
-// EFI Specification extension on Media Device Path was added to UEFI 2.1 specification,
-// so the definition is moved to EfiDevicePath.h
-//
-#endif
-#pragma pack()
#endif
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf b/EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
index b391215839..cba842faa1 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
+++ b/EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
@@ -1,6 +1,6 @@
#/*++
#
-# Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
# 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
@@ -102,4 +102,7 @@ COMPONENT_TYPE= LIBRARY
GuidedSectionExtraction/GuidedSectionExtraction.c
EcpPciCfg/EcpPciCfg.h
EcpPciCfg/EcpPciCfg.c
-
+ TemporaryRamSupport/TemporaryRamSupport.h
+ TemporaryRamSupport/TemporaryRamSupport.c
+ LoadedImage/LoadedImage.h
+ LoadedImage/LoadedImage.c
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h b/EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h
index 006a4fb23a..e3740169ae 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -77,7 +77,7 @@ EFI_STATUS
(EFIAPI *EFI_PEI_FV_FIND_FILE_NAME) (
IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
IN CONST EFI_GUID *FileName,
- IN EFI_PEI_FV_HANDLE FvHandle,
+ IN OUT EFI_PEI_FV_HANDLE *FvHandle,
OUT EFI_PEI_FILE_HANDLE *FileHandle
);
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.c b/EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.c
new file mode 100644
index 0000000000..09d4a8ba0f
--- /dev/null
+++ b/EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.c
@@ -0,0 +1,30 @@
+/*++
+
+Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+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:
+
+ LoadedImage.c
+
+Abstract:
+
+ The file describes the PPI which notifies other drivers
+ of the PEIM being initialized by the PEI Dispatcher.
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (LoadedImage)
+
+EFI_GUID gEfiPeiLoadedImagePpiGuid = EFI_PEI_LOADED_IMAGE_PPI_GUID;
+
+EFI_GUID_STRING(&gEfiPeiLoadedImagePpiGuid, "LoadedImagePpi", "LoadedImage PPI");
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.h b/EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.h
new file mode 100644
index 0000000000..909b1091d4
--- /dev/null
+++ b/EdkCompatibilityPkg/Foundation/Framework/Ppi/LoadedImage/LoadedImage.h
@@ -0,0 +1,56 @@
+/*++
+
+Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+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:
+
+ LoadedImage.h
+
+Abstract:
+
+ The file describes the PPI which notifies other drivers
+ of the PEIM being initialized by the PEI Dispatcher.
+
+--*/
+
+#ifndef __LOADED_IMAGE_PPI_H__
+#define __LOADED_IMAGE_PPI_H__
+
+#include "Tiano.h"
+
+#define EFI_PEI_LOADED_IMAGE_PPI_GUID \
+ { 0xc1fcd448, 0x6300, 0x4458, {0xb8, 0x64, 0x28, 0xdf, 0x01, 0x53, 0x64, 0xbc} }
+
+typedef struct _EFI_PEI_LOADED_IMAGE_PPI EFI_PEI_LOADED_IMAGE_PPI;
+
+///
+/// This interface is installed by the PEI Dispatcher after the image has been
+/// loaded and after all security checks have been performed,
+/// to notify other PEIMs of the files which are being loaded.
+///
+struct _EFI_PEI_LOADED_IMAGE_PPI {
+ ///
+ /// Address of the image at the address where it will be executed.
+ ///
+ EFI_PHYSICAL_ADDRESS ImageAddress;
+ ///
+ /// Size of the image as it will be executed.
+ ///
+ UINT64 ImageSize;
+ ///
+ /// File handle from which the image was loaded.
+ /// Can be NULL, indicating the image was not loaded from a handle.
+ ///
+ EFI_PEI_FILE_HANDLE FileHandle;
+};
+
+extern EFI_GUID gEfiPeiLoadedImagePpiGuid;
+
+#endif
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.c b/EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.c
new file mode 100644
index 0000000000..b4a2b86645
--- /dev/null
+++ b/EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.c
@@ -0,0 +1,30 @@
+/*++
+
+Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+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:
+
+ TemporaryRamSupport.c
+
+Abstract:
+
+ This file declares Temporary RAM Support PPI.
+ This Ppi provides the service that migrates temporary RAM into permanent memory.
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (TemporaryRamSupport)
+
+EFI_GUID gEfiTemporaryRamSupportPpiGuid = TEMPORARY_RAM_SUPPORT_PPI_GUID;
+
+EFI_GUID_STRING(&gEfiTemporaryRamSupportPpiGuid, "TemporaryRamSupportPpi", "TemporaryRamSupport PPI");
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.h b/EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.h
new file mode 100644
index 0000000000..635c3f8f25
--- /dev/null
+++ b/EdkCompatibilityPkg/Foundation/Framework/Ppi/TemporaryRamSupport/TemporaryRamSupport.h
@@ -0,0 +1,66 @@
+/*++
+
+Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+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:
+
+ TemporaryRamSupport.h
+
+Abstract:
+
+ This file declares Temporary RAM Support PPI.
+ This Ppi provides the service that migrates temporary RAM into permanent memory.
+
+--*/
+
+#ifndef __TEMPORARY_RAM_SUPPORT_H__
+#define __TEMPORARY_RAM_SUPPORT_H__
+
+#include "Tiano.h"
+
+#define TEMPORARY_RAM_SUPPORT_PPI_GUID \
+ { \
+ 0xdbe23aa9, 0xa345, 0x4b97, {0x85, 0xb6, 0xb2, 0x26, 0xf1, 0x61, 0x73, 0x89} \
+ }
+
+/**
+ This service of the TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into
+ permanent memory.
+
+ @param PeiServices Pointer to the PEI Services Table.
+ @param TemporaryMemoryBase Source Address in temporary memory from which the SEC or PEIM will copy the
+ Temporary RAM contents.
+ @param PermanentMemoryBase Destination Address in permanent memory into which the SEC or PEIM will copy the
+ Temporary RAM contents.
+ @param CopySize Amount of memory to migrate from temporary to permanent memory.
+
+ @retval EFI_SUCCESS The data was successfully returned.
+ @retval EFI_INVALID_PARAMETER PermanentMemoryBase + CopySize > TemporaryMemoryBase when TemporaryMemoryBase > PermanentMemoryBase.
+
+ **/
+typedef
+EFI_STATUS
+(EFIAPI * TEMPORARY_RAM_MIGRATION)(
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
+ IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
+ IN UINTN CopySize
+);
+
+///
+/// This service abstracts the ability to migrate contents of the platform early memory store.
+///
+typedef struct {
+ TEMPORARY_RAM_MIGRATION TemporaryRamMigration;
+} TEMPORARY_RAM_SUPPORT_PPI;
+
+extern EFI_GUID gEfiTemporaryRamSupportPpiGuid;
+
+#endif
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.c b/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.c
index ffa2f5b362..30cff849db 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.c
+++ b/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.c
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -27,5 +27,7 @@ Abstract:
#include EFI_PROTOCOL_DEFINITION (FirmwareVolumeBlock)
EFI_GUID gEfiFirmwareVolumeBlockProtocolGuid = EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID;
+EFI_GUID gEfiFirmwareVolumeBlock2ProtocolGuid = EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID;
EFI_GUID_STRING(&gEfiFirmwareVolumeBlockProtocolGuid, "FirmwareVolumeBlock Protocol", "Firmware Volume Block protocol");
+EFI_GUID_STRING(&gEfiFirmwareVolumeBlock2ProtocolGuid, "FirmwareVolumeBlock2 Protocol", "Firmware Volume Block2 protocol");
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.h b/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.h
index d431aedc5d..a2fd4e9d7a 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Protocol/FirmwareVolumeBlock/FirmwareVolumeBlock.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004 - 2009, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -40,6 +40,8 @@ Abstract:
EFI_FORWARD_DECLARATION (EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL);
+typedef EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL;
+
typedef
EFI_STATUS
(EFIAPI *EFI_FVB_GET_ATTRIBUTES) (
diff --git a/EdkCompatibilityPkg/Foundation/Framework/Protocol/IdeControllerInit/IdeControllerInit.h b/EdkCompatibilityPkg/Foundation/Framework/Protocol/IdeControllerInit/IdeControllerInit.h
index c28852c64b..6e3691cb3b 100644
--- a/EdkCompatibilityPkg/Foundation/Framework/Protocol/IdeControllerInit/IdeControllerInit.h
+++ b/EdkCompatibilityPkg/Foundation/Framework/Protocol/IdeControllerInit/IdeControllerInit.h
@@ -1,6 +1,6 @@
/*++
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
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
@@ -174,10 +174,17 @@ typedef struct {
UINT16 command_set_feature_enb_86; // word 86
UINT16 command_set_feature_default; // word 87
UINT16 ultra_dma_mode; // word 88
- UINT16 reserved_89_127[39];
+ UINT16 reserved_89_105[17];
+ UINT16 phy_logic_sector_support; // word 106
+ UINT16 reserved_107_116[10];
+ UINT16 logic_sector_size_lo; // word 117
+ UINT16 logic_sector_size_hi; // word 118
+ UINT16 reserved_119_127[9];
UINT16 security_status;
UINT16 vendor_data_129_159[31];
- UINT16 reserved_160_255[96];
+ UINT16 reserved_160_208[49];
+ UINT16 alignment_logic_in_phy_blocks; // word 209
+ UINT16 reserved_210_255[46];
} EFI_ATA_IDENTIFY_DATA;
#pragma pack()