diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2022-12-07 06:32:15 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2022-12-23 11:53:40 +0000 |
commit | bf65d7ee8842a93116534f727abcad235dd3e233 (patch) | |
tree | b5c4af68da8ac320f705485abd7768ce57c3c588 | |
parent | 16acacf24c2c1fa2eff9148ae8ec952d74e3ab03 (diff) | |
download | edk2-bf65d7ee8842a93116534f727abcad235dd3e233.tar.gz edk2-bf65d7ee8842a93116534f727abcad235dd3e233.tar.bz2 edk2-bf65d7ee8842a93116534f727abcad235dd3e233.zip |
OvmfPkg/PlatformInitLib: pass through reservations from qemu
qemu uses the etc/e820 fw_cfg file not only for memory, but
also for reservations. Handle reservations by adding resource
descriptor hobs for them.
A typical qemu configuration has a small reservation between
lapic and flash:
# sudo cat /proc/iomem
[ ... ]
fee00000-fee00fff : Local APIC
feffc000-feffffff : Reserved <= HERE
ffc00000-ffffffff : Reserved
[ ... ]
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | OvmfPkg/Library/PlatformInitLib/MemDetect.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c index 6dbdbf9306..0c49568526 100644 --- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c +++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c @@ -229,6 +229,22 @@ PlatformScanOrAdd64BitE820Ram ( ));
}
}
+ } else if (E820Entry.Type == EfiAcpiAddressRangeReserved) {
+ if (AddHighHob) {
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: Reserved: Base=0x%Lx Length=0x%Lx\n",
+ __FUNCTION__,
+ E820Entry.BaseAddr,
+ E820Entry.Length
+ ));
+ BuildResourceDescriptorHob (
+ EFI_RESOURCE_MEMORY_RESERVED,
+ 0,
+ E820Entry.BaseAddr,
+ E820Entry.Length
+ );
+ }
}
}
|