[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v2 15/23] efi: split out efi_tables()
From: |
Konrad Rzeszutek Wilk |
Subject: |
Re: [Xen-devel] [PATCH v2 15/23] efi: split out efi_tables() |
Date: |
Mon, 10 Aug 2015 15:32:52 -0400 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Jul 20, 2015 at 04:29:10PM +0200, Daniel Kiper wrote:
> ..which collects system tables data. We want to re-use this
> code to support multiboot2 protocol on EFI platforms.
>
> Signed-off-by: Daniel Kiper <address@hidden>
Reviewed-by: Konrad Rzeszutek Wilk <address@hidden>
> ---
> v2 - suggestions/fixes:
> - improve commit message
> (suggested by Jan Beulich).
> ---
> xen/common/efi/boot.c | 61
> +++++++++++++++++++++++++++----------------------
> 1 file changed, 34 insertions(+), 27 deletions(-)
>
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 8d16470..fd62125 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -717,6 +717,39 @@ static UINTN __init
> efi_find_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop,
> return gop_mode;
> }
>
> +static void __init efi_tables(void)
> +{
> + unsigned int i;
> +
> + /* Obtain basic table pointers. */
> + for ( i = 0; i < efi_num_ct; ++i )
> + {
> + static EFI_GUID __initdata acpi2_guid = ACPI_20_TABLE_GUID;
> + static EFI_GUID __initdata acpi_guid = ACPI_TABLE_GUID;
> + static EFI_GUID __initdata mps_guid = MPS_TABLE_GUID;
> + static EFI_GUID __initdata smbios_guid = SMBIOS_TABLE_GUID;
> + static EFI_GUID __initdata smbios3_guid = SMBIOS3_TABLE_GUID;
> +
> + if ( match_guid(&acpi2_guid, &efi_ct[i].VendorGuid) )
> + efi.acpi20 = (long)efi_ct[i].VendorTable;
> + if ( match_guid(&acpi_guid, &efi_ct[i].VendorGuid) )
> + efi.acpi = (long)efi_ct[i].VendorTable;
> + if ( match_guid(&mps_guid, &efi_ct[i].VendorGuid) )
> + efi.mps = (long)efi_ct[i].VendorTable;
> + if ( match_guid(&smbios_guid, &efi_ct[i].VendorGuid) )
> + efi.smbios = (long)efi_ct[i].VendorTable;
> + if ( match_guid(&smbios3_guid, &efi_ct[i].VendorGuid) )
> + efi.smbios3 = (long)efi_ct[i].VendorTable;
> + }
> +
> +#ifndef CONFIG_ARM /* TODO - disabled until implemented on ARM */
> + dmi_efi_get_table(efi.smbios != EFI_INVALID_TABLE_ADDR
> + ? (void *)(long)efi.smbios : NULL,
> + efi.smbios3 != EFI_INVALID_TABLE_ADDR
> + ? (void *)(long)efi.smbios3 : NULL);
> +#endif
> +}
> +
> static void __init setup_efi_pci(void)
> {
> EFI_STATUS status;
> @@ -1039,33 +1072,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE
> *SystemTable)
> /* XXX Collect EDID info. */
> efi_arch_cpu();
>
> - /* Obtain basic table pointers. */
> - for ( i = 0; i < efi_num_ct; ++i )
> - {
> - static EFI_GUID __initdata acpi2_guid = ACPI_20_TABLE_GUID;
> - static EFI_GUID __initdata acpi_guid = ACPI_TABLE_GUID;
> - static EFI_GUID __initdata mps_guid = MPS_TABLE_GUID;
> - static EFI_GUID __initdata smbios_guid = SMBIOS_TABLE_GUID;
> - static EFI_GUID __initdata smbios3_guid = SMBIOS3_TABLE_GUID;
> -
> - if ( match_guid(&acpi2_guid, &efi_ct[i].VendorGuid) )
> - efi.acpi20 = (long)efi_ct[i].VendorTable;
> - if ( match_guid(&acpi_guid, &efi_ct[i].VendorGuid) )
> - efi.acpi = (long)efi_ct[i].VendorTable;
> - if ( match_guid(&mps_guid, &efi_ct[i].VendorGuid) )
> - efi.mps = (long)efi_ct[i].VendorTable;
> - if ( match_guid(&smbios_guid, &efi_ct[i].VendorGuid) )
> - efi.smbios = (long)efi_ct[i].VendorTable;
> - if ( match_guid(&smbios3_guid, &efi_ct[i].VendorGuid) )
> - efi.smbios3 = (long)efi_ct[i].VendorTable;
> - }
> -
> -#ifndef CONFIG_ARM /* TODO - disabled until implemented on ARM */
> - dmi_efi_get_table(efi.smbios != EFI_INVALID_TABLE_ADDR
> - ? (void *)(long)efi.smbios : NULL,
> - efi.smbios3 != EFI_INVALID_TABLE_ADDR
> - ? (void *)(long)efi.smbios3 : NULL);
> -#endif
> + efi_tables();
>
> /* Collect PCI ROM contents. */
> setup_efi_pci();
> --
> 1.7.10.4
>
>
> _______________________________________________
> Xen-devel mailing list
> address@hidden
> http://lists.xen.org/xen-devel
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Xen-devel] [PATCH v2 15/23] efi: split out efi_tables(),
Konrad Rzeszutek Wilk <=