Hi, Matt On 11/08/13 at 02:31pm, Matt Fleming wrote: > On Tue, 05 Nov, at 04:20:07PM, dyoung at redhat.com wrote: > > Hi, > > > > Here is the V2 for supporting kexec kernel efi runtime. > > Per pervious discussion I pass the 1st kernel efi runtime mapping > > via setup_data to 2nd kernel. Besides of the runtime mapping > > info I also pass the fw_vendor, runtime, config table, smbios > > physical address in setup_data. EFI spec mentioned fw_vendor, > > runtime, config table addresses will be converted to virt address > > after entering virtual mode, but we will use it as physical address > > in efi_init. For smbios EFI spec did not mention about the address > > updating, but during my test on a HP workstation, the bios will > > convert it to Virt addr, thus pass it in setup_data as well. > > I see this in the dmesg, > > [ 0.000000] efi: skipping setup_data on EFI 32BIT! > > despite the fact that this is on an x86-64 box. Turns out it's because > CONFIG_DEBUG_BOOT_PARAMS isn't set in my config. You may want to turn > that on automatically. After doing that things work on my ASUS box (good > work!) but the SATA controller craps out on my Tunnelmountain machine, > but that's probably unrelated and I'll debug that separately. Hmm, if CONFIG_DEBUG_BOOT_PARAMS is not set, then kexec-tools should fail getting efi_info, so I will fix kexec-tools patch about this. Also CONFIG_EFI_RUNTIME_MAP should select CONFIG_DEBUG_BOOT_PARAMS. In future will try to move the boot params data out of debugfs. > > I see a bunch of section mismatch warnings, > > WARNING: arch/x86/platform/efi/built-in.o(.text+0xd1e): Section mismatch in reference from the function efi_map_regions_fixed() to the function .init.text:efi_map_region_fixed() > The function efi_map_regions_fixed() references > the function __init efi_map_region_fixed(). > This is often because efi_map_regions_fixed lacks a __init > annotation or the annotation of efi_map_region_fixed is wrong. > > WARNING: arch/x86/platform/efi/built-in.o(.text+0xd2a): Section mismatch in reference from the function efi_map_regions_fixed() to the variable .init.data:efi_phys > The function efi_map_regions_fixed() references > the variable __initdata efi_phys. > This is often because efi_map_regions_fixed lacks a __initdata > annotation or the annotation of efi_phys is wrong. > > WARNING: arch/x86/platform/built-in.o(.text+0xd1e): Section mismatch in reference from the function efi_map_regions_fixed() to the function .init.text:efi_map_region_fixed() > The function efi_map_regions_fixed() references > the function __init efi_map_region_fixed(). > This is often because efi_map_regions_fixed lacks a __init > annotation or the annotation of efi_map_region_fixed is wrong. > > WARNING: arch/x86/platform/built-in.o(.text+0xd2a): Section mismatch in reference from the function efi_map_regions_fixed() to the variable .init.data:efi_phys > The function efi_map_regions_fixed() references > the variable __initdata efi_phys. > This is often because efi_map_regions_fixed lacks a __initdata > annotation or the annotation of efi_phys is wrong. > > WARNING: arch/x86/built-in.o(.text+0x7c357): Section mismatch in reference from the function parse_efi_setup() to the function .init.text:early_memremap() > The function parse_efi_setup() references > the function __init early_memremap(). > This is often because parse_efi_setup lacks a __init > annotation or the annotation of early_memremap is wrong. > > WARNING: arch/x86/built-in.o(.text+0x7c390): Section mismatch in reference from the function parse_efi_setup() to the function .init.text:early_iounmap() > The function parse_efi_setup() references > the function __init early_iounmap(). > This is often because parse_efi_setup lacks a __init > annotation or the annotation of early_iounmap is wrong. > > WARNING: arch/x86/built-in.o(.text+0x7c5ce): Section mismatch in reference from the function efi_map_regions_fixed() to the function .init.text:efi_map_region_fixed() > The function efi_map_regions_fixed() references > the function __init efi_map_region_fixed(). > This is often because efi_map_regions_fixed lacks a __init > annotation or the annotation of efi_map_region_fixed is wrong. > > WARNING: arch/x86/built-in.o(.text+0x7c5da): Section mismatch in reference from the function efi_map_regions_fixed() to the variable .init.data:vdso32_sysenter_end > The function efi_map_regions_fixed() references > the variable __initdata vdso32_sysenter_end. > This is often because efi_map_regions_fixed lacks a __initdata > annotation or the annotation of vdso32_sysenter_end is wrong. Will fix, thanks for testing. > > Also, many of your patch descriptions are missing subsystem tags. Please > fix this in your next submission. Do you means to add "efi:" in subject? Thanks Dave