In current TDVF implementation all unaccepted memory passed in Hoblist
are tagged as EFI_RESOURCE_MEMORY_UNACCEPTED. They're all accepted before
they can be accessed. After accepting memory region, the Hob ResourceType
is unchanged (still be EFI_RESOURCE_MEMORY_UNACCEPTED).
TDVF Config-B skip PEI phase and it tries to find a memory region which
is the largest one below 4GB. Then this memory region will be used as the
firmware hoblist.
So we should walk thru the input hoblist and search for the memory region
with the type of EFI_RESOURCE_MEMORY_UNACCEPTED.
Because EFI_RESOURCE_MEMORY_UNACCEPTED has not been officially in PI spec.
So it cannot be defined in MdePkg/Include/Pi/PiHob.h. As a temporary
solution it is defined in Hob.c.
There is a patch-set for lazy-accept very soon. In that patch-set
EFI_RESOURCE_MEMORY_UNACCEPTED will be defined in MdeModulePkg.
Config-B: https://edk2.groups.io/g/devel/message/76367
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Ccigned-off-by: Min Xu <min.m.xu@intel.com>
---
OvmfPkg/Library/PeilessStartupLib/Hob.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/OvmfPkg/Library/PeilessStartupLib/Hob.c b/OvmfPkg/Library/PeilessStartupLib/Hob.c
index 3c544ca1f67d..5fc84a809025 100644
--- a/OvmfPkg/Library/PeilessStartupLib/Hob.c
+++ b/OvmfPkg/Library/PeilessStartupLib/Hob.c
@@ -22,6 +22,8 @@
#include <OvmfPlatforms.h>
#include "PeilessStartupInternal.h"
+#define EFI_RESOURCE_MEMORY_UNACCEPTED 7
+
/**
* Construct the HobList in SEC phase.
*
@@ -90,7 +92,7 @@ ConstructFwHobList (
//
while (!END_OF_HOB_LIST (Hob)) {
if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
- if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+ if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_UNACCEPTED) {
PhysicalEnd = Hob.ResourceDescriptor->PhysicalStart + Hob.ResourceDescriptor->ResourceLength;
ResourceLength = Hob.ResourceDescriptor->ResourceLength;
--
2.29.2.windows.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#90104): https://edk2.groups.io/g/devel/message/90104
Mute This Topic: https://groups.io/mt/91452351/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
On Tue, May 31, 2022 at 10:31:17PM +0800, Min Xu wrote: > In current TDVF implementation all unaccepted memory passed in Hoblist > are tagged as EFI_RESOURCE_MEMORY_UNACCEPTED. They're all accepted before > they can be accessed. After accepting memory region, the Hob ResourceType > is unchanged (still be EFI_RESOURCE_MEMORY_UNACCEPTED). > > TDVF Config-B skip PEI phase and it tries to find a memory region which > is the largest one below 4GB. Then this memory region will be used as the > firmware hoblist. > > So we should walk thru the input hoblist and search for the memory region > with the type of EFI_RESOURCE_MEMORY_UNACCEPTED. > > Because EFI_RESOURCE_MEMORY_UNACCEPTED has not been officially in PI spec. > So it cannot be defined in MdePkg/Include/Pi/PiHob.h. As a temporary > solution it is defined in Hob.c. > > There is a patch-set for lazy-accept very soon. In that patch-set > EFI_RESOURCE_MEMORY_UNACCEPTED will be defined in MdeModulePkg. Acked-by: Gerd Hoffmann <kraxel@redhat.com> take care, Gerd -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90124): https://edk2.groups.io/g/devel/message/90124 Mute This Topic: https://groups.io/mt/91452351/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.