Thread (4 messages) 4 messages, 3 authors, 2009-08-28

kexec on mips failed

From: wilbur.chan <hidden>
Date: 2009-08-16 16:21:09

Hi,Nicolas,


I've got some problem with kexec on mips32...


in your code for kexec on mips32, there is a relocate_new_kernel function .


In the end of this function , it jump to kexec_start_address by   'j  s1'



Because I  changed the kexec-tools code  ,in the hope that, it
simplely passed the new kernel segment  data  into the old kernel.(so

I didn't  pass  the command-line segment in, in my code, there is just
one segment , segment[0] = kernel_data).


So  I need to change register s1 to the new kernel entry address, and
jump to new kernel directly.



In my vmlinux,  the entry is 0x802b0000,so I let image->start =
0x2b0000,and invoke relocate_new_kernel.


However, whether I changed kexec_start_address to 0x802b0000 or
0x2b0000 , the  'j  s1'  seemed taking no effect?


(I wrote 88 to address0xa1230000  before 'j  s1' , it succedd .I also
wrote 78 to address 0xa1230000 in the beginning

of head.S of the new kernel , but failed. And I reset the board to
uboot mode, used 'md 0x802b0400' to display the new kernel

in ram, it is identical  to the objdump content of the vmlinux.  So I
guess, this problem lays in the failing of 'j  0x802b0000'

or 'j   0x2b0000'.    I don't know why 'j s1' failed , any suggestions
about this ?  Thank you very much.

regads,

Wilbur
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help