On my SKL/KBL machine, upstream 4.12 kernel dom0 couldn't boot up using xen.efi which is xen 4.9
(1) Upstream 4.11 kernel doesn't have such issue. (2) Upstream 4.12 kernel on my native uefi machine could boot up. After some debug, I have some finding: firmware/efi.c: Reinit efi global variable efi is a global variable, some of efi members is initialized to INVALID_TABLE_ADDR when efi is defined. But efi is zero when setup_arch() begin running for unknown reason. This patch set it again to avoid kernel panic. This fix 4.12 kernel dom0 couldn't boot up on xen.efi 4.9. diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index b372aad..27bbcb4 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -474,6 +474,9 @@ int __init efi_config_parse_tables(void *config_tables, int count, int sz, void *tablep; int i; + efi.mps = efi.acpi = efi.acpi20 = efi.smbios = efi.smbios3 = efi.sal_systab = + efi.boot_info = efi.hcdp = efi.uga = efi.uv_systab = efi.fw_vendor = + efi.esrt= efi.properties_table = efi.rng_seed = efi.mem_attr_table = EFI_INVALID_TABLE_ADDR; why efi is zero at setup_arch() begin running ? who will clear it ? thanks
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel