linux-mips
[Top] [All Lists]

kexec on mips failed

To: nschichan@freebox.fr
Subject: kexec on mips failed
From: "wilbur.chan" <wilbur512@gmail.com>
Date: Mon, 17 Aug 2009 00:20:56 +0800
Cc: linux-mips@linux-mips.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=l+d+wDrfBUO4qjJjW6WTuhJINl/e0ndWnys6XtjAx5E=; b=B92PwIcwA/iHfB7tG0eJO+5WcW2F6BUJ8oCOGGkTpmWxykREDkfRXogt+g/OQWd1+J iY0kgahlm9TLcavW3Q+nJvbHXP7YnenbvCdK80qzTN6zXGIgZH0sVuAWpO3H01pLVXwf YHOCHfcMfW3aLMz+LeWBUgYwvJNHfx1n1JEzU=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=wzyc55R0WQ7U59X7EyfTFKpZaasUqU8X3EpoXrPwtu7yXeA14yGMO+pjZKvkh3oaLt XhI5U96fUD5d7lAQCb+kxfS/D1q4D2U3Y/GNUXREy0jMLclS47RIJG2LXpYagK0+Cu68 PnwfG/l4cLigpXeAcTj8cOyC/20MFTrheGxdM=
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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

<Prev in Thread] Current Thread [Next in Thread>