Part Number:TCI6638K2K
Tool/software: Linux
Hello,
I am trying to use kexec on TCI6638K2K to load a linux kernel. Unfortunately it doesn't work and I would like to have the TI experts' opinion.
Note: This is not for a kernel crash. I just want to load a kernel and boot it.
Some information:
HW = TCI6638K2K
Linux = 4.4.157 with CONFIG_ARM_LPAE
kexec-tools 2.0.17
# cat /proc/iomem
…
840000000-857ec4fff : System RAM
840008000-8407ea3b3 : Kernel code
840846000-84092cf0f : Kernel data
880000000-8ffffffff : System RAM
# kexec -d -l /tmp/vmlinux
kernel: 0xb659d008 kernel_size: 0x8fba58
MEMORY RANGES
0000000840000000-0000000857ec4fff (0)
0000000880000000-00000008ffffffff (0)
zImage header: 0xe16ff009 0xe12ef30e 0xe160006e
zImage requires 0x0090ca58 bytes
Could not find a free area of memory of 0x914a58 bytes...
Cannot load /tmp/vmlinux
The problem is in kexec-tools in locate_hole function (called by zImage_arm_load). In this function there are address comparison between an unsigned long and an unsigned long long. For example: https://github.com/horms/kexec-tools/blob/master/kexec/kexec.c#L280
Does it mean that we can use kexec only if the physical RAM adresses are on 32bits ?
From TI point of view, what is latest status about kexec ?
Are kexec(kernel part) and kexec-tools fully supported on LPAE config ? If yes, is a specific kernel version and kexec-tools recommended ?
Best Regards,
Thibaut