kexec on mips failed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux