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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.