On Sat, Dec 17, 2016 at 06:57:21PM +0800, Dave Young wrote: > On 12/16/16 at 02:33pm, Jean Delvare wrote: > > On Fri, 16 Dec 2016 14:18:58 +0200, Andy Shevchenko wrote: > > > On Fri, 2016-12-16 at 10:32 +0800, Dave Young wrote: > > > > On 12/15/16 at 12:28pm, Jean Delvare wrote: > > > > > I am no kexec expert but this confuses me. Shouldn't the second > > > > > kernel have access to the EFI systab as the first kernel does? It > > > > > includes many more pointers than just ACPI and DMI tables, and it > > > > > would seem inconvenient to have to pass all these addresses > > > > > individually explicitly. > > > > > > > > Yes, in modern linux kernel, kexec has the support for EFI, I think it > > > > should work naturally at least in x86_64. > > > > > > Thanks for this good news! > > > > > > Unfortunately Intel Galileo is 32-bit platform. > > > > If it was done for X86_64 then maybe it can be generalized to X86? > > For X86_64, we have a new way for efi runtime memmory mapping, in i386 > code it still use old ioremap way. It is impossible to use same way as > the X86_64 since the virtual address space is limited. > > But maybe for 32bit, kexec kernel can run in physical mode, but I'm not > sure, I would suggest Andy to do a test first with efi=noruntime for > kexec 2nd kernel. Sorry for a delay. Eventually I found time to check this. Unfortunately the efi=noruntime didn't help: # uname -a Linux buildroot 5.3.0-rc7+ #17 Thu Sep 5 16:08:22 EEST 2019 i586 GNU/Linux # dmidecode # dmidecode 4.2 Scanning /dev/mem for entry point. # No SMBIOS nor DMI entry point found, sorry. # # cat /proc/cmdline ... ignore_loglevel efi=noruntime earlycon=efifb acpi_rsdp=0xf01e014 So, I am all ears to anything else to try. -- With Best Regards, Andy Shevchenko