From c7f33ca42470dc87bc41a8583f427883123d67a1 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Thu, 24 Jan 2008 07:10:05 +0000 Subject: 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 --- .../RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf | 1 + .../Library/RuntimeDxe/EfiRuntimeLib/Ipf/Fvb.c | 10 +++--- .../Library/RuntimeDxe/EfiRuntimeLib/ia32/Fvb.c | 8 ++--- .../RuntimeDxe/EfiRuntimeLib/ia32/RuntimeLib.c | 11 ++++++- .../Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c | 8 ++--- .../RuntimeDxe/EfiRuntimeLib/x64/RuntimeLib.c | 38 ++++------------------ .../RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.asm | 37 +++++++++++++++++++++ 7 files changed, 65 insertions(+), 48 deletions(-) create mode 100644 EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.asm (limited to 'EdkCompatibilityPkg/Foundation/Library/RuntimeDxe') diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf index aea21c42c7..9411f0009c 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf @@ -44,6 +44,7 @@ COMPONENT_TYPE = LIBRARY x64\Lock.c x64\PlatformIoLib.c x64\Fvb.c + x64\RuntimeLibAsm.asm [sources.ipf] Ipf\RuntimeLib.c diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/Ipf/Fvb.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/Ipf/Fvb.c index 266c6b1951..6af839a576 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/Ipf/Fvb.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/Ipf/Fvb.c @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2004, Intel Corporation +Copyright (c) 2004 - 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 @@ -182,15 +182,13 @@ EfiFvbSetVolumeAttributes ( Routine Description: Modifies the current settings of the firmware volume according to the - input parameter, and returns the new setting of the volume + input parameter. Arguments: Instance - The FV instance whose attributes is going to be modified - Attributes - On input, it is a pointer to EFI_FVB_ATTRIBUTES + Attributes - It is a pointer to EFI_FVB_ATTRIBUTES containing the desired firmware volume settings. - On successful return, it contains the new settings - of the firmware volume Returns: Status code @@ -199,7 +197,7 @@ Returns: { EFI_GUID Guid = EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID; - return EfiCallEsalService (&Guid, SetVolumeAttributes, Instance, (UINT64) Attributes, 0, 0, 0, 0, 0).Status; + return EfiCallEsalService (&Guid, SetVolumeAttributes, Instance, (UINT64) (&Attributes), 0, 0, 0, 0, 0).Status; } EFI_STATUS diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/Fvb.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/Fvb.c index 1cecb47852..b8e4c7d6f7 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/Fvb.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/Fvb.c @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2004 - 2006, Intel Corporation +Copyright (c) 2004 - 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 @@ -470,15 +470,13 @@ EfiFvbSetVolumeAttributes ( Routine Description: Modifies the current settings of the firmware volume according to the - input parameter, and returns the new setting of the volume + input parameter. Arguments: Instance - The FV instance whose attributes is going to be modified - Attributes - On input, it is a pointer to EFI_FVB_ATTRIBUTES + Attributes - It is a pointer to EFI_FVB_ATTRIBUTES containing the desired firmware volume settings. - On successful return, it contains the new settings - of the firmware volume Returns: Status code diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/RuntimeLib.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/RuntimeLib.c index d1a9080bf8..d146b375fe 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/RuntimeLib.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/RuntimeLib.c @@ -792,7 +792,13 @@ Returns: #if (EFI_SPECIFICATION_VERSION >= 0x00020000) if (gStatusCode == NULL) { - return EFI_UNSUPPORTED; + if (EfiAtRuntime ()) { + return EFI_UNSUPPORTED; + } + Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID **)&gStatusCode); + if (EFI_ERROR (Status) || gStatusCode == NULL) { + return EFI_UNSUPPORTED; + } } Status = gStatusCode->ReportStatusCode (CodeType, Value, Instance, CallerId, Data); #else @@ -838,5 +844,8 @@ Returns: --*/ { + __asm { + wbinvd + } return EFI_SUCCESS; } diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c index de151cdda0..d8cdbbab22 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2005 - 2006, Intel Corporation +Copyright (c) 2005 - 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 @@ -473,15 +473,13 @@ EfiFvbSetVolumeAttributes ( Routine Description: Modifies the current settings of the firmware volume according to the - input parameter, and returns the new setting of the volume + input parameter. Arguments: Instance - The FV instance whose attributes is going to be modified - Attributes - On input, it is a pointer to EFI_FVB_ATTRIBUTES + Attributes - It is a pointer to EFI_FVB_ATTRIBUTES containing the desired firmware volume settings. - On successful return, it contains the new settings - of the firmware volume Returns: Status code diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLib.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLib.c index d9d5f70f46..93cef53e0f 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLib.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLib.c @@ -792,7 +792,13 @@ Returns: #if (EFI_SPECIFICATION_VERSION >= 0x00020000) if (gStatusCode == NULL) { - return EFI_UNSUPPORTED; + if (EfiAtRuntime ()) { + return EFI_UNSUPPORTED; + } + Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID **)&gStatusCode); + if (EFI_ERROR (Status) || gStatusCode == NULL) { + return EFI_UNSUPPORTED; + } } Status = gStatusCode->ReportStatusCode (CodeType, Value, Instance, CallerId, Data); #else @@ -811,33 +817,3 @@ Returns: #endif return Status; } - -// -// Cache Flush Routine. -// -EFI_STATUS -EfiCpuFlushCache ( - IN EFI_PHYSICAL_ADDRESS Start, - IN UINT64 Length - ) -/*++ - -Routine Description: - - Flush cache with specified range. - -Arguments: - - Start - Start address - Length - Length in bytes - -Returns: - - Status code - - EFI_SUCCESS - success - ---*/ -{ - return EFI_SUCCESS; -} diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.asm b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.asm new file mode 100644 index 0000000000..c73e08d058 --- /dev/null +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.asm @@ -0,0 +1,37 @@ +;------------------------------------------------------------------------------ +; +; Copyright (c) 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 +; 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: +; +; RuntimeLibAsm.asm +; +; Abstract: +; +; +;------------------------------------------------------------------------------ + +.code + +;------------------------------------------------------------------------------ +;EFI_STATUS +;EfiCpuFlushCache ( +; IN EFI_PHYSICAL_ADDRESS Start, +; IN UINT64 Length +; ); +;------------------------------------------------------------------------------ + +EfiCpuFlushCache PROC PUBLIC + wbinvd + mov rax, 0 + ret +EfiCpuFlushCache ENDP + +END \ No newline at end of file -- cgit v1.2.3