I just loaded a new test kernel to play with. This time I used standard cm-11.0 master branch (no hardboot or other changes) with CONFIG_KEXEC and CONFIG_PROC_DEVICETREE set. This should provide enough to perform a non-hardboot kexec I think. My initramfs is very basic, just opens a busybox ash shell on the default console (serial port in this case) and doesn't even use the screen. I then mounted my /data partition (mmcblk0p25) where I have my guest kernel and ran kexec -e. I got the following errors on the console followed by a watchdog-triggered reboot.
http://pastebin.com/uj3cDC3g
Here is the disassembly of the machine_kexec function:
http://pastebin.com/uj3cDC3g
Here is the disassembly of the machine_kexec function:
Code:
1dc: 00000000 .word 0x00000000
1e0: 00000074 .word 0x00000074
000001e4 <machine_kexec>:
1e4: e92d40f8 push {r3, r4, r5, r6, r7, lr}
1e8: e1a05000 mov r5, r0
1ec: ebfffffe bl 0 <arch_kexec>
1f0: e59f2098 ldr r2, [pc, #152] ; 290 <machine_kexec+0xac>
1f4: e5950014 ldr r0, [r5, #20]
1f8: e5954000 ldr r4, [r5]
1fc: e5926000 ldr r6, [r2]
200: e3c44eff bic r4, r4, #4080 ; 0xff0
204: e3c4400f bic r4, r4, #15
208: e0666000 rsb r6, r6, r0
20c: ebfffffe bl 0 <page_address>
210: e5953010 ldr r3, [r5, #16]
214: e1a07000 mov r7, r0
218: e1a062c6 asr r6, r6, #5
21c: e59f2070 ldr r2, [pc, #112] ; 294 <machine_kexec+0xb0>
220: e1a06606 lsl r6, r6, #12
224: e5823000 str r3, [r2]
228: e59f2068 ldr r2, [pc, #104] ; 298 <machine_kexec+0xb4>
22c: e2433a07 sub r3, r3, #28672 ; 0x7000
230: e5824000 str r4, [r2]
234: e59f2060 ldr r2, [pc, #96] ; 29c <machine_kexec+0xb8>
238: e5921000 ldr r1, [r2]
23c: e59f205c ldr r2, [pc, #92] ; 2a0 <machine_kexec+0xbc>
240: e5821000 str r1, [r2]
244: e59f2058 ldr r2, [pc, #88] ; 2a4 <machine_kexec+0xc0>
248: e59f1058 ldr r1, [pc, #88] ; 2a8 <machine_kexec+0xc4>
24c: e5823000 str r3, [r2]
250: e59f3054 ldr r3, [pc, #84] ; 2ac <machine_kexec+0xc8>
254: e5932000 ldr r2, [r3]
258: ebfffffe bl 0 <memcpy>
25c: e1a00007 mov r0, r7
260: e2871a01 add r1, r7, #4096 ; 0x1000
264: ebfffffe bl 0 <v7_coherent_kern_range>
268: e59f0040 ldr r0, [pc, #64] ; 2b0 <machine_kexec+0xcc>
26c: ebfffffe bl 0 <printk>
270: e59f303c ldr r3, [pc, #60] ; 2b4 <machine_kexec+0xd0>
274: e5933004 ldr r3, [r3, #4]
278: e3530000 cmp r3, #0
27c: 0a000000 beq 284 <machine_kexec+0xa0>
280: e12fff33 blx r3
284: e1a00006 mov r0, r6
288: e8bd40f8 pop {r3, r4, r5, r6, r7, lr}
28c: eafffffe b 0 <soft_restart>
...
Last edited: