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