I am trying to use it with sony xperia xz1 compact phone, which is running 4.4.148 linux (android) kernel on Qualcomm MSM8998 Snapdragon 835 soc.
I tried to port your code to the kernel 4.4 as released by sony for yoshino devices and it works when the kernel is configured for qemu with few patches for missing physical hw.
Unfortunately when testing with real device, it can load the kernel and even tries to kexec into it, but then it seems to crash resulting with reboot to the original kernel stored in internal flash.
I have captured kernel logs stored just before the crash into pstore, kexec-mod logs are present there and seems ok ending with Bye!
I am sorry to create this issue as it is not really issue with your project, but just wanted to possibly discuss this if you by any chance had any idea what could be wrong there or how it could be debugged further.
I guess it could be something with device tree blob - maybe placed on wrong address?
Or maybe related to the HVC_SOFT_RESTART that has not been present in the target kernel? Not 100% sure but it looks like implementation is present in your code?
Still I am wondering about an impact that could be there from hypervisor - there is running QSEE trust zone firmware above linux kernel, so that makes it different to the working case of qemu.
I would really appreciate if you could maybe have a quick look at the fork available at https://github.com/j4nn/kexec-mod - there are also two logs from qemu and two logs from xz1c phone. Thanking you in advance.
Many thanks for you kexec-mod project, well done!
I am trying to use it with sony xperia xz1 compact phone, which is running 4.4.148 linux (android) kernel on Qualcomm MSM8998 Snapdragon 835 soc.
I tried to port your code to the kernel 4.4 as released by sony for yoshino devices and it works when the kernel is configured for qemu with few patches for missing physical hw.
Unfortunately when testing with real device, it can load the kernel and even tries to kexec into it, but then it seems to crash resulting with reboot to the original kernel stored in internal flash. I have captured kernel logs stored just before the crash into pstore, kexec-mod logs are present there and seems ok ending with Bye!
I am sorry to create this issue as it is not really issue with your project, but just wanted to possibly discuss this if you by any chance had any idea what could be wrong there or how it could be debugged further.
I guess it could be something with device tree blob - maybe placed on wrong address? Or maybe related to the HVC_SOFT_RESTART that has not been present in the target kernel? Not 100% sure but it looks like implementation is present in your code? Still I am wondering about an impact that could be there from hypervisor - there is running QSEE trust zone firmware above linux kernel, so that makes it different to the working case of qemu.
I would really appreciate if you could maybe have a quick look at the fork available at https://github.com/j4nn/kexec-mod - there are also two logs from qemu and two logs from xz1c phone. Thanking you in advance.