So I tested it myself and can confirm the memory error:
Code: Select all
/proc/device-tree/chosen/linux,kernel-end: No such file or directory
For ppc32 it's in this line which looks optional depending on a crash kernel:
https://github.com/mjg59/kexec-tools/bl ... ppc.c#L425
For ppc64:
https://github.com/mjg59/kexec-tools/bl ... c64.c#L354
What I don't understand is, that kexec is a lowlevel tool, so why is it looking in public DTB variables and not using private kernel API?
It also looks like an old issue we are caught up on:
https://lore.kernel.org/all/alpine.LRH. ... ytel.be/T/
I was looking through some lists and found a comment about 'linux,kernel-end' being removed from kernel start up but now I can't find the reference! So I wonder if there are many ppc64 people using kexec feature? Or pp64el these days? If kexec needs it then why is it removed? Is kexec code obsolete and needs updating to find it elsewhere?
In the meantime, aside from patching it back into the code near by prom_init, a work around could be to set it manually. Such as from CFE using setenv with linux,kernel-end. Just need to know the kernel top from ELF info listed on load. Or, from Linux itself, which is easy to see without a ramdisk.