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