AnsweredAssumed Answered

Can not use kexec with SDK 2.0

Question asked by Ivan Koveshnikov on Aug 29, 2016

We have an issue with loading the Linux kernel using kexec tool.The Idea was to first boot T4240RDB board using default device tree and then reboot into usdpaa enabled version. Tested on T4240RDB, Linux 4.1.8-rt8, SDK-2.0 . 

 

But kexec can not load device tree blob (dtb) file. We have done several experiments on kexec with certain amount of the load options, none of them was successful. For more detailed information look below:


Linux kernel was reconfigured to set desired options:
CONFIG_HOTPLUG_CPU=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_CMDLINE="root=/dev/sda1 rw console=ttyS0,115200 ramdisk_size=1000000 fsl_fm_max_frm=9600 bportals=s0-1 qportals=s0-1 rootwait reset_devices"

 

1. Reboot from non-usdpaa to non-usdpaa configuration
Try to load kernel with "--dtb" and "--command-line" options set.
# kexec -l /boot/vmlinux-4.1.8-rt8 --dtb=/boot/devicetree-uImage-t4240rdb.dtb --command-line="`cat /proc/cmdline`"

# kexec -e
In this example the Linux tries to reboot but it seems, that cmdline was set as an empty string: no output to console, no any other effect (see kexec1.txt)

 

2. Reboot from non-usdpaa to non-usdpaa configuration
Try to load kernel with only "--command-line" option set. 
# kexec -l /boot/vmlinux-4.1.8-rt8 --dtb=/boot/devicetree-uImage-t4240rdb.dtb --command-line="`cat /proc/cmdline`"

# kexec -e

In this case kexec report about modifying cmdline, and then i can see kernel booting. But output is full of straces, and after boot I have no network interfaces available (see kexec2.txt)

Original Attachment has been moved to: kexec2.txt.zip

Original Attachment has been moved to: kexec1.txt.zip

Outcomes