Re: [PATCH v5 6/8] arm64/efi: move SetVirtualAddressMap() to UEFI stub

Ard Biesheuvel
2015-01-12T16:09:27Z

On 12 January 2015 at 11:46, Matt Fleming <matt@codeblueprint.co.uk> wrote:
> On Thu, 08 Jan, at 06:48:32PM, Ard Biesheuvel wrote:
>> @@ -46,4 +54,26 @@ extern void efi_idmap_init(void);
>>
>> #define EFI_ALLOC_ALIGN SZ_64K
>>
>> +/*
>> + * On ARM systems, virtually remapped UEFI runtime services are set up in three
>> + * distinct stages:
>> + * - The stub retrieves the final version of the memory map from UEFI, populates
>> + * the virt_addr fields and calls the SetVirtualAddressMap() [SVAM] runtime
>> + * service to communicate the new mapping to the firmware (Note that the new
>> + * mapping is not live at this time)
>> + * - During early boot, the page tables are allocated and populated based on the
>> + * virt_addr fields in the memory map, but only if all descriptors with the
>> + * EFI_MEMORY_RUNTIME attribute have a non-zero value for virt_addr. If this
>> + * succeeds, the EFI_VIRTMAP flag is set to indicate that the virtual mappings
>> + * have been installed successfully.
>> + * - During an early initcall(), the UEFI Runtime Services are enabled and the
>> + * EFI_RUNTIME_SERVICES bit set if some conditions are met, i.e., we need a
>> + * non-early mapping of the UEFI system table, and we need to have the virtmap
>> + * installed.
>> + */
>> +#define EFI_VIRTMAP EFI_ARCH_1
>
> Lucid. Thanks, Ard!
>

Cheers Matt

It appears this series is converging in time for 3.20, but this patch
still lacks acked/reviewed-bys

Are you ok with the remainder of the patch as well? In that case, may
I have your ack so the series can be merged through the arm64 tree?

--
Ard.