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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox