I want to run kexec on ls1046a.
I have used kexec-tools v2.0.15 to start a new kernel, my test log is in attachment. The kernel version is 4.9.35.
What I did is like this.
1. First, I boot the kernel in uboot with a itb file which includes Image and dtb.
Well, In my first boot, it works well.
=>setenv ipaddr 192.168.246.59; setenv serverip 192.168.246.2; tftp a0000000 ....../ls1046/kernel-64le.itb
=>setenv bootargs root=/dev/nfs rw nfsroot=192.168.246.2:....../target_64le,vers=3 ip=dhcp rw console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500;bootm a0000000#ls1046a-edac
2. After the first kernel booted, I use kexec to boot the new kernel with dtb file, the kernel is failed to allocate memory for node 'qman-fqd', 'qman-pfdr' and 'bman-fbpr', then went Kernel panic. The log is in “kexec-dtb-64le_kernel.log”.
3. And without dtb file, the kexec boot kernel will go farer and print a lot of stack message, but finally, it can’t mount the NFS rootfs. The log is in “kexec-without-dtb-64le_kernel.log”
Can anyone give me some help about how to use kexec to start a new kernel normally?