On Thu, 2013-11-21 at 14:17 +0800, dyoung at redhat.com wrote: > Hi, > > Here is the V3 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. > > For fw_vendor, runtime, config table, I export them in /sys/firmware/ > efi/, smbios is already in /sys/firmware/efi/systab. > > For efi runtime mapping I add a new directory /sys/firmware/efi/ > runtime-map/ like below > [dave at darkstar ~]$ tree /sys/firmware/efi/runtime-map/ > /sys/firmware/efi/runtime-map/ > ??? 0 > ? ??? attribute > ? ??? num_pages > ? ??? phys_addr > ? ??? type > ? ??? virt_addr > ??? 1 > ? ??? attribute > ? ??? num_pages > ? ??? phys_addr > ? ??? type > ? ??? virt_addr > [snip] > > kexec-tools will assemble them as setup_data and pass to 2nd kernel. > I will send userspace patches as well. > > Limitation is I only write support for x86_64, test on below machines: > Lenovo thinkpad t420 > Dell inspiron 14 - 3421 > HP Z420 workstation > Qemu + OVMF Tested on an HP EFI-based 60-way server (prototype). For the series: Tested-by: Toshi Kani <toshi.kani at hp.com> Thanks, -Toshi