Updated the Runtime Driver to use the MDE libs for cache flush and removed local copy of Cache flush code. Updated FPD files that include Runtime driver as a new lib was added to Runtime Driver for the cache flush. Removed Cache Flush routine from EDK DXE SAL Lib.

Cleaned up BaseLib IPF cache routines to only Flush ranges when needed and not to flush the entire cache. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1811 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ajfish
2006-10-22 07:32:16 +00:00
parent b077fb7492
commit 92ea7f231b
10 changed files with 35 additions and 63 deletions

View File

@@ -468,7 +468,7 @@ RuntimeDriverSetVirtualAddressMap (
RuntimeImage->RelocationData
);
FlushCpuCache (RuntimeImage->ImageBase, (UINT64)RuntimeImage->ImageSize);
InvalidateInstructionCacheRange ((VOID *)(UINTN)RuntimeImage->ImageBase, (UINTN)RuntimeImage->ImageSize);
}
}
//

View File

@@ -50,8 +50,7 @@ typedef struct {
VOID
RelocatePeImageForRuntime (
RUNTIME_IMAGE_RELOCATION_DATA *Image
)
;
);
EFI_STATUS
EFIAPI
@@ -59,8 +58,7 @@ RuntimeDriverCalculateCrc32 (
IN VOID *Data,
IN UINTN DataSize,
OUT UINT32 *CrcOut
)
;
);
EFI_STATUS
EFIAPI
@@ -69,8 +67,7 @@ RuntimeDriverRegisterImage (
IN EFI_PHYSICAL_ADDRESS ImageBase,
IN UINTN ImageSize,
IN VOID *RelocationData
)
;
);
EFI_STATUS
EFIAPI
@@ -81,40 +78,27 @@ RuntimeDriverRegisterEvent (
IN EFI_EVENT_NOTIFY NotifyFunction,
IN VOID *NotifyContext,
IN EFI_EVENT *Event
)
;
);
EFI_STATUS
EFIAPI
RuntimeDriverConvertPointer (
IN UINTN DebugDisposition,
IN OUT VOID **ConvertAddress
)
;
);
VOID
RuntimeDriverInitializeCrc32Table (
VOID
)
;
);
EFI_STATUS
EFIAPI
RuntimeDriverInitialize (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
;
);
//
// Cache Flush Routine.
//
EFI_STATUS
FlushCpuCache (
IN EFI_PHYSICAL_ADDRESS Start,
IN UINT64 Length
)
;
#endif

View File

@@ -49,17 +49,15 @@
<LibraryClass Usage="ALWAYS_CONSUMED">
<Keyword>UefiBootServicesTableLib</Keyword>
</LibraryClass>
<LibraryClass Usage="ALWAYS_CONSUMED">
<Keyword>CacheMaintenanceLib</Keyword>
</LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
<Filename>Runtime.dxs</Filename>
<Filename>Runtime.c</Filename>
<Filename>Runtime.h</Filename>
<Filename>Crc32.c</Filename>
<Filename SupArchList="IA32">Ia32/PeHotRelocateEx.c</Filename>
<Filename SupArchList="X64">x64/PeHotRelocateEx.c</Filename>
<Filename SupArchList="X64">x64/PeHotRelocateEx.h</Filename>
<Filename SupArchList="IPF">Ipf/PeHotRelocateEx.c</Filename>
<Filename SupArchList="IPF">Ipf/PeHotRelocateEx.h</Filename>
</SourceFiles>
<PackageDependencies>
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>