public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Graeme Russ <graeme.russ@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] new uboot with relocation change cannot boot when download the bin file to different address than TEXT_BASE
Date: Sat, 09 Oct 2010 17:27:26 +1100	[thread overview]
Message-ID: <4CB00B4E.30301@gmail.com> (raw)
In-Reply-To: <AANLkTim+h0LjmMUi17cuNGRv8522=9ub_Lp0GZmr3rgz@mail.gmail.com>

On 09/10/10 16:50, Lei Wen wrote:
> Hi,
> 
> I recently try to port our board code to new uboot, which has been
> changed to use new relocation scheme.
> But I found a very strange thing, that is if the uboot is loaded to
> the TEXT_BASE address, it could run without
> problem. But if it is loaded to a different place, it fail to boot up...
> 
> I check the code, and found that in the board_init_f, it calls the
> init_sequence which is stored as a data sector
> in the u-boot.bin file. While the new scheme use the fPIC, the code
> could locate the GOT table correctly,
> and it seem to forgot what the GOT table stores is context that is
> meaningful in TEXT_BASE, not the loaded base.
> That is to say, if the TEXT_BASE is 0xf00000, and loaded base is
> 0x500000, I found the GOT table also filled
> with 0xf0****, not the 0x50****. This leads the cpu loading wrong
> function address in the init_sequence table, and
> cause pc become invalid...
> 
> Am I missing something to switch to the new relocation scheme?
> 

The ARM relocation schemes (there are two being evaluated - one which uses
.got and another .rel.dyn) are both designed to relocate from TEXT_BASE to
an upper memory location determined during DRAM init

x86 is the only arch that I know implements what you are describing (in a
patch series in u-boot-x86/master but not yet in mainline)

Regards,

Graeme

  reply	other threads:[~2010-10-09  6:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-09  5:50 [U-Boot] new uboot with relocation change cannot boot when download the bin file to different address than TEXT_BASE Lei Wen
2010-10-09  6:27 ` Graeme Russ [this message]
2010-10-09  6:48   ` Lei Wen
2010-10-09 17:50     ` Wolfgang Denk
2010-10-10  4:33       ` Lei Wen
2010-10-10  6:48         ` Albert ARIBAUD
2010-10-10  6:50         ` Wolfgang Denk
2010-10-10  9:00           ` Lei Wen
2010-10-09  7:43 ` Albert ARIBAUD
2010-10-09  7:53   ` Lei Wen
2010-10-09  8:10     ` Albert ARIBAUD
2010-10-09  8:18       ` Albert ARIBAUD
2010-10-09  8:24       ` Lei Wen
2010-10-09  8:57         ` Albert ARIBAUD
2010-10-09  9:08           ` Lei Wen
2010-10-09  9:23             ` Albert ARIBAUD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CB00B4E.30301@gmail.com \
    --to=graeme.russ@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox