kexec--virtual address or physical address?
wilbur.chan
wilbur512 at gmail.com
Tue Jun 23 12:02:09 EDT 2009
Hello everyone!
I got some trouble in porting kexectools to powerpc 8541 ,with kernel 2.6.21.7
Detail : In Machine_kexec_32.c ,
function "default_machine_kexec",
the second parameter of function reboot_code, which is
reboot_code_buffer_phys ,
causing an instruction error in arch/powerpc/misc_32.s when executing
instruction "rfi"
(Line 894)
After I changed reboot_code_buffer_phys into reboot_code_buffer(rather
than a physial address) , the code go on ,but caused
another error of " kernel stack overflow".
I don't how to solve this problem,any suggestion would be grateful.
here are my steps:
# kexec -l uImage --devtree=your.fdt.dtb --devtree_addr=0x800000
Image Name: Linux-2.6.21.7
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1190265 Bytes = Load Address: 00000000
Entry Point: 00000000
# kexec -e
Starting new kernel
virtual address: cfc09000
physical address: fc09000
calling function: reboot_code(page_list=0xfc08002,
reboot_code_buffer_phys=0xfc09000, image->start=0x0,image->segment
[1].mem=0x800000)
Unable to handle kernel paging request for instruction fetch
Faulting instruction address: 0x0fc09028
More information about the kexec
mailing list