Re: [kvm-unit-tests PATCH v3 25/27] arm64: Add support for efi in Makefile

Nikos Nikoleris
2022-07-12T20:51:06Z

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@redhat.com>
>>
>> Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
>> Reviewed-by: Ricardo Koller <ricarkol@google.com>
>> ---
>> 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