Ticket #930 (closed defect: fixed)

Opened 7 years ago

Last modified 6 years ago

kexec fails on the neo; requires existing kexec ATAG patch

Reported by: mwester@… Owned by: laforge@…
Priority: normal Milestone:
Component: kernel Version: 2007.2
Severity: normal Keywords:
Cc: buglog@… Blocked By:
Blocking: Estimated Completion (week):
HasPatchForReview: no PatchReviewResult:
Reproducible:

Description

The kernel is compiled with kexec enabled, however kexec does not actually
function on the neo. This is a known problem with ARM devices that require
ATAGs to be passed in from the bootloader (as the neo does in order to boot
correctly). A patch is available to resolve this problem (it has been submitted
upstream, accepted, and is expected to be incorporated into 2.6.24).

Attachments

kexec-atags-2.6.22.5.patch (4.7 KB) - added by mwester@… 7 years ago.
Kernel kexec patch to preserve bootloader ATAGs for new kexec'd kernel

Change History

Changed 7 years ago by mwester@…

Kernel kexec patch to preserve bootloader ATAGs for new kexec'd kernel

comment:1 Changed 7 years ago by mwester@…

The 2.6.23 version of this patch can be view here:
http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=4599/1

comment:2 Changed 7 years ago by laforge@…

  • Status changed from new to assigned

I'm obviously fine with this patch. Will apply once the kernel has stabilized
after the PWM breakage that I introduced a couple of days ago.

comment:3 Changed 7 years ago by laforge@…

  • Status changed from assigned to closed
  • Resolution set to fixed

committed as revision 3169

comment:4 Changed 6 years ago by lindi

[ I don't seem to have permission to reopen this bug, could somebody with sufficient permissions do it? ]

Re #2135 I was investigating different ways to save kernel panic
messages so that they can be retrieved later and thought I should try
kdump which uses kexec only to notice that kexec does not quite work:

With stable-tracking at 1b17c67794364bee I built kexec-tools from the
debian source package 20080324-2 and tried

sudo kexec -l /boot/uImage2.bin --append="`cat /proc/cmdline`"
sudo kexec -e

but got only WSOD. The device also did not show up as usb device or
blink any leds.

My /proc/cmdline contains

rootfstype=jffs2 root=/dev/mtdblock6 console=ttySAC2,115200 console=tty0 loglevel=8 regular_boot mtdparts=physmap-flash:-(nor);neo1973-nand:0x00040000(u-boot),0x00040000(u-boot_env),0x00800000(kernel),0x000a0000(splash),0x00040000(factory),0x0f6a0000(rootfs) rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5

in case it matters.

comment:5 Changed 6 years ago by mwester

  • HasPatchForReview unset

kexec requires a zImage; it cannot boot a uImage. The zImage file can be found in the arch/arm/boot directory after the kernel is built. Itis, unfortunately, not packaged in the standard repositories nor present on the standard images. The various distro owners will have to determine how to arrange for the alternate format.

(tested on a gta01 with the current "stable" kernel - boots fine.)

comment:6 Changed 6 years ago by lindi

Thanks a lot! I successfully kexec'ed stable-tracking branch at 80f4b57fef5dcffb on gta02 with boot options

rootfstype=jffs2 root=/dev/mtdblock6 console=ttySAC2,115200 console=tty0 loglevel=8 regular_boot mtdparts=physmap-flash:-(nor);neo1973-nand:0x00040000(u-boot),0x00040000(u-boot_env),0x00800000(kernel),0x000a0000(splash),0x00040000(factory),0x0f6a0000(rootfs) rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 panic=10
Note: See TracTickets for help on using tickets.