Hi Alex,
On 12/07/2022 14:39, Alexandru Elisei wrote:
Hi,
On Thu, Jun 30, 2022 at 11:03:22AM +0100, Nikos Nikoleris wrote:
Users can now build kvm-unit-tests as efi apps by supplying an extra
argument when invoking configure:
$> ./configure --enable-efi
This patch is based on an earlier version by
Andrew Jones <drjones@xxxxxxxxxx>
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@xxxxxxx>
Reviewed-by: Ricardo Koller <ricarkol@xxxxxxxxxx>
---
configure | 15 ++++++++++++---
arm/Makefile.arm | 6 ++++++
arm/Makefile.arm64 | 18 ++++++++++++++----
arm/Makefile.common | 45 ++++++++++++++++++++++++++++++++++-----------
4 files changed, 66 insertions(+), 18 deletions(-)
diff --git a/configure b/configure
index 5b7daac..2ff9881 100755
--- a/configure
+++ b/configure
[..]
@@ -218,6 +223,10 @@ else
echo "arm64 doesn't support page size of $page_size"
usage
fi
+ if [ "$efi" = 'y' ] && [ "$page_size" != "4096" ]; then
+ echo "efi must use 4K pages"
+ exit 1
Why this restriction?
The Makefile compiles kvm-unit-tests to run as an UEFI app, it doesn't
compile UEFI itself. As far as I can tell, UEFI is designed to run payloads
with larger page size (it would be pretty silly to not be able to boot a
kernel built for 16k or 64k pages with UEFI).
Is there some limitation that I'm missing?
Technically, we could allow 16k or 64k granules. But to do that we would
have to handle cases where the memory map we get from EFI cannot be
remapped with the new granules. For example, a region might be 12kB and
mapping it with 16k or 64k granules without moving it is impossible.
Thanks,
Nikos
Thanks,
Alex