[PATCH v5 6/8] arm64/efi: move SetVirtualAddressMap() to UEFI stub
Ard Biesheuvel
ard.biesheuvel at linaro.org
Mon Jan 12 08:09:24 PST 2015
On 12 January 2015 at 11:46, Matt Fleming <matt at 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.
More information about the linux-arm-kernel
mailing list