kexec on ARM

Michael Casadevall michael.casadevall at canonical.com
Mon Jan 19 16:29:23 EST 2009


Hello all,
I've recently been working on trying to use kexec on ARM, but I've been
running into some trouble, which may or may not be user error. I'm
simply using kexec to load another kenel and execute it (for my
purposes, I'm not interested in crash kernel support). I have the host
kernel compiled in with kexec support, and I compiled kexec-tools for
ARM. I can load the second kernel with kexec -l, and see it get loaded,
but I just get a hang when I use kexec -e, I just get a hang. Looking at
the printk's, it seems execution leaves the main kernel, and gets into
the relocation stub before dying. On real hardware, it just hangs, but
on QEMU, I get the following dump on the console:

 qemu: fatal: Trying to execute code outside RAM or ROM at 0xc0035460

R00=0f9b6000 R01=000005f8 R02=bf000c12 R03=ceddefc8
R04=0f9b6000 R05=cf9b6000 R06=fee1dead R07=00000000
R08=c002c008 R09=cedaa000 R10=00000000 R11=cedabe6c
R12=00092070 R13=cedabe58 R14=c0030ffc R15=c0035460
PSR=600000d3 -ZC- A svc32
Aborted (core dumped)

[1]+  Exit 134                ./start-arm

I'm hoping this is user error; does the second kernel require something
special such as relocation support? I'm fairly new to kexec so any help
that can be offered would be greatly appreciated.
Michael



More information about the kexec mailing list