[PATCH v3 50/62] xen/efi: store EFI system table in efi structure

Julien Grall julien.grall at citrix.com
Tue Nov 17 03:57:07 PST 2015


Hi Shannon,

On 17/11/15 09:40, shannon.zhao at linaro.org wrote:
> From: Shannon Zhao <shannon.zhao at linaro.org>
> 
> When preparing EFI tables for Dom0, it needs the information of EFI
> system table. Here store it in efi structure.

On ARM64 the EFI stub is completely independent and therefore it's not
possible to share variable between Xen and the stub.

If it's working today is only by luck as we zero the BSS after the stub
jumped to Xen entry point.

Regards,

> Signed-off-by: Parth Dixit <parth.dixit at linaro.org>
> Signed-off-by: Shannon Zhao <shannon.zhao at linaro.org>
> ---
>  xen/common/efi/boot.c | 2 ++
>  xen/include/xen/efi.h | 1 +
>  2 files changed, 3 insertions(+)
> 
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 78d8ae9..6a48624 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1155,6 +1155,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
>  
>      efi_tables();
>  
> +    efi.est = (long)SystemTable;
> +
>      /* Collect PCI ROM contents. */
>      setup_efi_pci();
>  
> diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
> index e74dad1..e112296 100644
> --- a/xen/include/xen/efi.h
> +++ b/xen/include/xen/efi.h
> @@ -16,6 +16,7 @@ struct efi {
>      unsigned long acpi20;       /* ACPI table (ACPI 2.0) */
>      unsigned long smbios;       /* SM BIOS table */
>      unsigned long smbios3;      /* SMBIOS v3 table */
> +    unsigned long est;          /* EFI system table */
>  };
>  
>  extern struct efi efi;
> 


-- 
Julien Grall



More information about the linux-arm-kernel mailing list