1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
1.1) Bug fixes. (For details, please check Documents & files: Snapshot/Release Notes at https://edk.tianocore.org/servlets/ProjectDocumentList?folderID=43&expandFolder=43&folderID=6) 1.2) Add new UEFI protocol definitions for AbsolutePointer, FormBrowser2, HiiConfigAccess, HiiConfigRouting, HiiDatabase, HiiFont, HiiImage, HiiString, SimpleTextInputEx, DPC protocol. 1.3) Add Smbios 2.5, 2.6 supports. Incompatible changes hilighted: 1) EFI_MANAGED_NETWORK_PROTOCOL_GUID changed. 2) EFI_IP4_IPCONFIG_DATA changed. 2) Add in EdkCompatibilityPkg/EdkCompatibilityPkg.dsc to build all libraries in this package. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4623 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -420,7 +420,7 @@ Returns:
|
||||
CopyMem(&(Hob.MemoryAllocationStack->AllocDescriptor.Name), &gEfiHobMemeryAllocStackGuid, sizeof(EFI_GUID));
|
||||
(Hob.MemoryAllocationStack->AllocDescriptor).MemoryBaseAddress = BaseAddress;
|
||||
(Hob.MemoryAllocationStack->AllocDescriptor).MemoryLength = Length;
|
||||
(Hob.MemoryAllocationStack->AllocDescriptor).MemoryType = EfiConventionalMemory;
|
||||
(Hob.MemoryAllocationStack->AllocDescriptor).MemoryType = EfiBootServicesData;
|
||||
|
||||
Hob.MemoryAllocationStack++;
|
||||
HandOffHob.HandoffInformationTable->EfiEndOfHobList = (EFI_PHYSICAL_ADDRESS) (UINTN) Hob.Raw;
|
||||
@@ -601,3 +601,121 @@ Returns:
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
VOID *
|
||||
GetHob (
|
||||
IN UINT16 Type,
|
||||
IN VOID *HobStart
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
This function returns the first instance of a HOB type in a HOB list.
|
||||
|
||||
Arguments:
|
||||
|
||||
Type The HOB type to return.
|
||||
HobStart The first HOB in the HOB list.
|
||||
|
||||
Returns:
|
||||
|
||||
HobStart There were no HOBs found with the requested type.
|
||||
else Returns the first HOB with the matching type.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_PEI_HOB_POINTERS Hob;
|
||||
|
||||
Hob.Raw = HobStart;
|
||||
//
|
||||
// Return input if not found
|
||||
//
|
||||
if (HobStart == NULL) {
|
||||
return HobStart;
|
||||
}
|
||||
|
||||
//
|
||||
// Parse the HOB list, stop if end of list or matching type found.
|
||||
//
|
||||
while (!END_OF_HOB_LIST (Hob)) {
|
||||
|
||||
if (Hob.Header->HobType == Type) {
|
||||
break;
|
||||
}
|
||||
|
||||
Hob.Raw = GET_NEXT_HOB (Hob);
|
||||
}
|
||||
|
||||
//
|
||||
// Return input if not found
|
||||
//
|
||||
if (END_OF_HOB_LIST (Hob)) {
|
||||
return HobStart;
|
||||
}
|
||||
|
||||
return (VOID *) (Hob.Raw);
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
GetNextGuidHob (
|
||||
IN OUT VOID **HobStart,
|
||||
IN EFI_GUID * Guid,
|
||||
OUT VOID **Buffer,
|
||||
OUT UINTN *BufferSize OPTIONAL
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Get the next guid hob.
|
||||
|
||||
Arguments:
|
||||
HobStart A pointer to the start hob.
|
||||
Guid A pointer to a guid.
|
||||
Buffer A pointer to the buffer.
|
||||
BufferSize Buffer size.
|
||||
|
||||
Returns:
|
||||
Status code.
|
||||
|
||||
EFI_NOT_FOUND - Next Guid hob not found
|
||||
|
||||
EFI_SUCCESS - Next Guid hob found and data for this Guid got
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_PEI_HOB_POINTERS GuidHob;
|
||||
|
||||
if (Buffer == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
for (Status = EFI_NOT_FOUND; EFI_ERROR (Status);) {
|
||||
|
||||
GuidHob.Raw = *HobStart;
|
||||
if (END_OF_HOB_LIST (GuidHob)) {
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
GuidHob.Raw = GetHob (EFI_HOB_TYPE_GUID_EXTENSION, *HobStart);
|
||||
if (GuidHob.Header->HobType == EFI_HOB_TYPE_GUID_EXTENSION) {
|
||||
if ( ((INT32 *)Guid)[0] == ((INT32 *)&GuidHob.Guid->Name)[0] &&
|
||||
((INT32 *)Guid)[1] == ((INT32 *)&GuidHob.Guid->Name)[1] &&
|
||||
((INT32 *)Guid)[2] == ((INT32 *)&GuidHob.Guid->Name)[2] &&
|
||||
((INT32 *)Guid)[3] == ((INT32 *)&GuidHob.Guid->Name)[3] ) {
|
||||
Status = EFI_SUCCESS;
|
||||
*Buffer = (VOID *) ((UINT8 *) (&GuidHob.Guid->Name) + sizeof (EFI_GUID));
|
||||
if (BufferSize != NULL) {
|
||||
*BufferSize = GuidHob.Header->HobLength - sizeof (EFI_HOB_GUID_TYPE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*HobStart = GET_NEXT_HOB (GuidHob);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
@@ -25,6 +25,7 @@ Abstract:
|
||||
#include "Tiano.h"
|
||||
#include "Pei.h"
|
||||
#include "peiHobLib.h"
|
||||
#include "PeiPerf.h"
|
||||
#include EFI_PROTOCOL_DEFINITION (Decompress)
|
||||
#include EFI_PROTOCOL_DEFINITION (TianoDecompress)
|
||||
#include EFI_GUID_DEFINITION (PeiPeCoffLoader)
|
||||
@@ -709,37 +710,6 @@ Returns:
|
||||
--*/
|
||||
;
|
||||
|
||||
VOID
|
||||
PeiPerfMeasure (
|
||||
EFI_PEI_SERVICES **PeiServices,
|
||||
IN UINT16 *Token,
|
||||
IN EFI_FFS_FILE_HEADER *FileHeader,
|
||||
IN BOOLEAN EntryExit,
|
||||
IN UINT64 Value
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Log a timestamp count.
|
||||
|
||||
Arguments:
|
||||
|
||||
PeiServices - Pointer to the PEI Core Services table
|
||||
|
||||
Token - Pointer to Token Name
|
||||
|
||||
FileHeader - Pointer to the file header
|
||||
|
||||
EntryExit - Indicates start or stop measurement
|
||||
|
||||
Value - The start time or the stop time
|
||||
|
||||
Returns:
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
GetTimerValue (
|
||||
OUT UINT64 *TimerValue
|
||||
@@ -761,14 +731,6 @@ Returns:
|
||||
--*/
|
||||
;
|
||||
|
||||
#ifdef EFI_PEI_PERFORMANCE
|
||||
#define PEI_PERF_START(Ps, Token, FileHeader, Value) PeiPerfMeasure (Ps, Token, FileHeader, FALSE, Value)
|
||||
#define PEI_PERF_END(Ps, Token, FileHeader, Value) PeiPerfMeasure (Ps, Token, FileHeader, TRUE, Value)
|
||||
#else
|
||||
#define PEI_PERF_START(Ps, Token, FileHeader, Value)
|
||||
#define PEI_PERF_END(Ps, Token, FileHeader, Value)
|
||||
#endif
|
||||
|
||||
#ifdef EFI_NT_EMULATOR
|
||||
EFI_STATUS
|
||||
PeCoffLoaderWinNtLoadAsDll (
|
||||
@@ -1306,6 +1268,7 @@ Returns:
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FindFv (
|
||||
IN EFI_FIND_FV_PPI *This,
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
|
@@ -313,6 +313,30 @@ Returns:
|
||||
--*/
|
||||
;
|
||||
|
||||
VOID *
|
||||
GetHob (
|
||||
IN UINT16 Type,
|
||||
IN VOID *HobStart
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
This function returns the first instance of a HOB type in a HOB list.
|
||||
|
||||
Arguments:
|
||||
|
||||
Type The HOB type to return.
|
||||
HobStart The first HOB in the HOB list.
|
||||
|
||||
Returns:
|
||||
|
||||
HobStart There were no HOBs found with the requested type.
|
||||
else Returns the first HOB with the matching type.
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
GetFirstGuidHob (
|
||||
IN VOID **HobStart,
|
||||
@@ -342,4 +366,35 @@ Returns:
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
GetNextGuidHob (
|
||||
IN OUT VOID **HobStart,
|
||||
IN EFI_GUID * Guid,
|
||||
OUT VOID **Buffer,
|
||||
OUT UINTN *BufferSize OPTIONAL
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Get the next guid hob.
|
||||
|
||||
Arguments:
|
||||
HobStart A pointer to the start hob.
|
||||
Guid A pointer to a guid.
|
||||
Buffer A pointer to the buffer.
|
||||
BufferSize Buffer size.
|
||||
|
||||
Returns:
|
||||
Status code.
|
||||
|
||||
EFI_NOT_FOUND - Next Guid hob not found
|
||||
|
||||
EFI_SUCCESS - Next Guid hob found and data for this Guid got
|
||||
|
||||
EFI_INVALID_PARAMETER - invalid parameter
|
||||
|
||||
--*/
|
||||
;
|
||||
|
||||
#endif
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
Copyright (c) 2006 - 2007, 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
|
||||
@@ -29,7 +29,7 @@ Abstract:
|
||||
|
||||
static
|
||||
VOID *
|
||||
GetHob (
|
||||
FindFvGetHob (
|
||||
IN UINT16 Type,
|
||||
IN VOID *HobStart
|
||||
)
|
||||
@@ -84,6 +84,7 @@ Returns:
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FindFv (
|
||||
IN EFI_FIND_FV_PPI *This,
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
@@ -146,7 +147,7 @@ Returns:
|
||||
//
|
||||
while (FvIndex <= *FvNumber) {
|
||||
|
||||
Hob.Raw = GetHob (EFI_HOB_TYPE_FV, HobStart.Raw);
|
||||
Hob.Raw = FindFvGetHob (EFI_HOB_TYPE_FV, HobStart.Raw);
|
||||
|
||||
//
|
||||
// If the Hob is not EFI_HOB_TYPE_FV, it indicates that
|
||||
|
@@ -387,7 +387,7 @@ Returns:
|
||||
Hob->AllocDescriptor.Name = gEfiHobMemeryAllocStackGuid;
|
||||
Hob->AllocDescriptor.MemoryBaseAddress = BaseAddress;
|
||||
Hob->AllocDescriptor.MemoryLength = Length;
|
||||
Hob->AllocDescriptor.MemoryType = EfiConventionalMemory;
|
||||
Hob->AllocDescriptor.MemoryType = EfiBootServicesData;
|
||||
(*PeiServices)->SetMem (
|
||||
Hob->AllocDescriptor.Reserved,
|
||||
sizeof (Hob->AllocDescriptor.Reserved),
|
||||
|
@@ -434,7 +434,7 @@ Returns:
|
||||
ImageContext->ImageAddress = Hdr.Pe32Plus->OptionalHeader.ImageBase;
|
||||
}
|
||||
} else {
|
||||
ImageContext->ImageAddress = (EFI_PHYSICAL_ADDRESS)(Hdr.Te->ImageBase);
|
||||
ImageContext->ImageAddress = (EFI_PHYSICAL_ADDRESS)(Hdr.Te->ImageBase + Hdr.Te->StrippedSize - sizeof (EFI_TE_IMAGE_HEADER));
|
||||
}
|
||||
|
||||
//
|
||||
@@ -799,8 +799,8 @@ Returns:
|
||||
}
|
||||
} else {
|
||||
Hdr.Te = (EFI_TE_IMAGE_HEADER *)(UINTN)(ImageContext->ImageAddress);
|
||||
Adjust = (UINT64) (BaseAddress - Hdr.Te->ImageBase);
|
||||
Hdr.Te->ImageBase = (UINT64) (BaseAddress);
|
||||
Adjust = (UINT64) (BaseAddress - Hdr.Te->StrippedSize + sizeof (EFI_TE_IMAGE_HEADER) - Hdr.Te->ImageBase);
|
||||
Hdr.Te->ImageBase = (UINT64) (BaseAddress - Hdr.Te->StrippedSize + sizeof (EFI_TE_IMAGE_HEADER));
|
||||
|
||||
//
|
||||
// Find the relocation block
|
||||
|
@@ -23,7 +23,7 @@ Abstract:
|
||||
#include "PeiHob.h"
|
||||
#include "Pei.h"
|
||||
#include "PeiLib.h"
|
||||
|
||||
#include "EfiCommonLib.h"
|
||||
|
||||
VOID
|
||||
PeiCopyMem (
|
||||
@@ -55,12 +55,7 @@ Returns:
|
||||
|
||||
--*/
|
||||
{
|
||||
INT8 *Ptr;
|
||||
|
||||
Ptr = Buffer;
|
||||
while (Size--) {
|
||||
*(Ptr++) = 0;
|
||||
}
|
||||
EfiCommonLibZeroMem (Buffer, Size);
|
||||
}
|
||||
|
||||
VOID
|
||||
@@ -89,20 +84,7 @@ Returns:
|
||||
|
||||
--*/
|
||||
{
|
||||
CHAR8 *Destination8;
|
||||
CHAR8 *Source8;
|
||||
|
||||
Destination8 = Destination;
|
||||
Source8 = Source;
|
||||
if (((Source8 + Length) <= Destination8) || (Source8 >= Destination8)) {
|
||||
while (Length--) {
|
||||
*(Destination8++) = *(Source8++);
|
||||
}
|
||||
} else {
|
||||
while (Length--) {
|
||||
*(Destination8 + Length) = *(Source8 + Length);
|
||||
}
|
||||
}
|
||||
EfiCommonLibCopyMem (Destination, Source, Length);
|
||||
}
|
||||
|
||||
VOID
|
||||
@@ -131,20 +113,7 @@ Returns:
|
||||
|
||||
--*/
|
||||
{
|
||||
CHAR8 *Destination8;
|
||||
CHAR8 *Source8;
|
||||
|
||||
Destination8 = Destination;
|
||||
Source8 = Source;
|
||||
if (((Source8 + Length) <= Destination8) || (Source8 >= Destination8)) {
|
||||
while (Length--) {
|
||||
*(Destination8++) = *(Source8++);
|
||||
}
|
||||
} else {
|
||||
while (Length--) {
|
||||
*(Destination8 + Length) = *(Source8 + Length);
|
||||
}
|
||||
}
|
||||
EfiCommonLibCopyMem (Destination, Source, Length);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -42,6 +42,7 @@ GetTimerValue (
|
||||
|
||||
|
||||
VOID
|
||||
EFIAPI
|
||||
PeiPerfMeasure (
|
||||
EFI_PEI_SERVICES **PeiServices,
|
||||
IN UINT16 *Token,
|
||||
|
Reference in New Issue
Block a user