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! -- Matt Fleming, Intel Open Source Technology Center -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html