linux-mips
[Top] [All Lists]

Re: kexec on mips failed

To: "wilbur.chan" <wilbur512@gmail.com>
Subject: Re: kexec on mips failed
From: Florian Fainelli <florian@openwrt.org>
Date: Fri, 28 Aug 2009 11:09:51 +0200
Cc: nschichan@freebox.fr, linux-mips@linux-mips.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:to:subject:date :user-agent:cc:references:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:message-id; bh=KP4OEAgTQWvytMk40XIbQTV4VzrLCg+xhR3dTCrR+d8=; b=iWs7Yu+h8OW0l0Klzbd/suWND315WmfknLUwiYsNtPjnqbCCU9OyjjM5sQc8x7MRH1 f2b/J/uOMgyO9BkK7KEcJVbX876SFFxtrlEq3iuWJCCvnzsi1YB+uD/gaPIl3A9xvWn+ FWEoAGxVODC7Kp+iASgz9ODk5KCwSO9b/SXq0=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding :content-disposition:message-id; b=t+LITZXEm59kY+5B+C494i4nVMpXeh0nZZ8QkIKl+5/q1u4FuPkSfipE9f6KBHdmrA fjUrafpdsfjZFmsvg+ysiwZjONvzBs94SzSuc3lY9JQKpCL1SX/ZGjY3UFheUnPk1lzE GgxXil80hchhIthjVEmePaet0H7YCGGWlc0NU=
In-reply-to: <e997b7420908160920y14d8ea95v5fb25eba67e7b6db@mail.gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <e997b7420908160920y14d8ea95v5fb25eba67e7b6db@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.9.9
Hi,

Le Sunday 16 August 2009 18:20:56 wilbur.chan, vous avez écrit :
> 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?

Should not you add a nop right after the j s1 in order to fill in the branch 
delay slot with an instruction which does nothing ?

>
>
> (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



-- 
Best regards, Florian Fainelli
Email: florian@openwrt.org
Web: http://openwrt.org
IRC: [florian] on irc.freenode.net
-------------------------------

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