diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib_Edk2.inf b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib_Edk2.inf index 6b9a526ab9..3e730a80fc 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib_Edk2.inf +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib_Edk2.inf @@ -38,7 +38,8 @@ COMPONENT_TYPE = LIBRARY ia32/PlatformIoLib.c ia32/Fvb.c ia32/CpuFlushCache.c | MSFT - ia32/CpuFlushCache.asm | INTEL + ia32/CpuFlushCache.asm | INTEL + ia32/CpuFlushCache.S | GCC [sources.x64] x64/RuntimeLib.c @@ -48,6 +49,7 @@ COMPONENT_TYPE = LIBRARY x64/Fvb.c x64/RuntimeLibAsm.asm | MSFT x64/RuntimeLibAsm.asm | INTEL + x64/RuntimeLibAsm.S | GCC [sources.ipf] Ipf/RuntimeLib.c diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/CpuFlushCache.S b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/CpuFlushCache.S index 4527047617..bbdfedcca3 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/CpuFlushCache.S +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/ia32/CpuFlushCache.S @@ -19,12 +19,14 @@ # #--*/ #--------------------------------------------------------------------------- +#include + .586p: #.MODEL flat,C .code: #--------------------------------------------------------------------------- -.globl ASM_PFX(EfiCpuFlushCache) +.global ASM_PFX(EfiCpuFlushCache) # #// @@ -57,6 +59,3 @@ ASM_PFX(EfiCpuFlushCache): wbinvd xorl %eax, %eax ret - - - diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c index 15073dc419..6b06a20093 100644 --- a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/Fvb.c @@ -40,7 +40,7 @@ Key: UINTN mFvbCount; VOID *mFvbRegistration; VOID *mFvbExtRegistration; -static EFI_EVENT mEfiFvbVirtualNotifyEvent; +//static EFI_EVENT mEfiFvbVirtualNotifyEvent; BOOLEAN gEfiFvbInitialized = FALSE; EFI_EVENT mFvbEvent; diff --git a/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.S b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.S new file mode 100644 index 0000000000..60d0973007 --- /dev/null +++ b/EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/x64/RuntimeLibAsm.S @@ -0,0 +1,37 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2008, 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.S +# +# Abstract: +# +# +#------------------------------------------------------------------------------ +#include + +.text + +.global ASM_PFX(EfiCpuFlushCache) +#------------------------------------------------------------------------------ +#EFI_STATUS +#EfiCpuFlushCache ( +# IN EFI_PHYSICAL_ADDRESS Start, +# IN UINT64 Length +# ); +#------------------------------------------------------------------------------ + +ASM_PFX(EfiCpuFlushCache): + wbinvd + mov $0, %rax + ret +