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

From: [email-masked] (Julien Grall)
Date: Tue, 17 Nov 2015 11:57:07 +0000

Hi Shannon,

On 17/11/15 09:40, shannon.zhao at linaro.org wrote:
> From: Shannon Zhao <[email-masked]>
> 
> 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 <[email-masked]>
> Signed-off-by: Shannon Zhao <[email-masked]>
> ---
>  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