From cdef34ec12f91023fa86bb49d1f33541d87eb132 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 30 Nov 2015 18:41:29 +0000 Subject: [PATCH] OvmfPkg: PlatformPei: allow caching in AddReservedMemoryBaseSizeHob() AddReservedMemoryBaseSizeHob() should be able to set the same resource attributes for reserved memory as AddMemoryBaseSizeHob() sets for system memory. Add a new parameter called "Cacheable" to AddReservedMemoryBaseSizeHob(), and set it to FALSE in the only caller we have at the moment. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Reviewed-by: Jordan Justen git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19038 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/PlatformPei/Platform.c | 9 ++++++++- OvmfPkg/PlatformPei/Platform.h | 3 ++- OvmfPkg/PlatformPei/Xen.c | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index a6d961673d..0b11275157 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -88,7 +88,8 @@ AddIoMemoryBaseSizeHob ( VOID AddReservedMemoryBaseSizeHob ( EFI_PHYSICAL_ADDRESS MemoryBase, - UINT64 MemorySize + UINT64 MemorySize, + BOOLEAN Cacheable ) { BuildResourceDescriptorHob ( @@ -96,6 +97,12 @@ AddReservedMemoryBaseSizeHob ( EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | + (Cacheable ? + EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE : + 0 + ) | EFI_RESOURCE_ATTRIBUTE_TESTED, MemoryBase, MemorySize diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h index 8b6a9760eb..dad3c61e26 100644 --- a/OvmfPkg/PlatformPei/Platform.h +++ b/OvmfPkg/PlatformPei/Platform.h @@ -50,7 +50,8 @@ AddUntestedMemoryBaseSizeHob ( VOID AddReservedMemoryBaseSizeHob ( EFI_PHYSICAL_ADDRESS MemoryBase, - UINT64 MemorySize + UINT64 MemorySize, + BOOLEAN Cacheable ); VOID diff --git a/OvmfPkg/PlatformPei/Xen.c b/OvmfPkg/PlatformPei/Xen.c index 1886326f20..7fa9019f1a 100644 --- a/OvmfPkg/PlatformPei/Xen.c +++ b/OvmfPkg/PlatformPei/Xen.c @@ -223,7 +223,7 @@ InitializeXen ( // Reserve away HVMLOADER reserved memory [0xFC000000,0xFD000000). // This needs to match HVMLOADER RESERVED_MEMBASE/RESERVED_MEMSIZE. // - AddReservedMemoryBaseSizeHob (0xFC000000, 0x1000000); + AddReservedMemoryBaseSizeHob (0xFC000000, 0x1000000, FALSE); PcdSetBool (PcdPciDisableBusEnumeration, TRUE);