From: Albert ARIBAUD <albert.aribaud@free.fr>
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 10:57:09 +0200 [thread overview]
Message-ID: <4CB02E65.70205@free.fr> (raw)
In-Reply-To: <AANLkTi=CiNrc1k75Df7G++tUFe2O6=ZRXfShU=xCxs9d@mail.gmail.com>
Le 09/10/2010 10:24, Lei Wen a ?crit :
>> For arm926, TEXT_BASE should be the FLASH location (if booting from NOR) or
>> a location in DRAM (for NAND and other methods).
>
> Yeah, got that. The TEXT_BASE of 0xf00000 in my case is the exactly what I want
> to uboot run during its run time.
Watch out: TEXT_BASE does not define where u-boot will run, only where
it will *start running*. With relocation, u-boot will run as high in RAM
as can be.
>> I have had little difficulty in running the .got relocation code in a
>> Marvell oront5x (arm926ejs too), except for some functions called from
>> board_init_f which did not respect the general rule that code run before
>> relocation should only access gd; one place in orion5x wrote to global
>> variables, which always was a no-no and only happened to work because the
>> arm926ejs init sequence did not run in proper order.
>
> Have you tried load the uboot to different place with tftp or something else?
> When I load the uboot to the TEXT_BASE and run, there is also no issue...
Not sure I understand what you mean here. U-boot is assumed to *start*
located at TEXT_BASE, then moved up in RAM, so there should *never* be
issues with starting u-boot at its TEXT_BASE.
>> However, .got relocation has shortcomings of its own; mainly, it requires
>> manual fixups in many places within the code. I have provided patches which
>> replace .got relocation with ELF relocation (look up [ELF-RELOC] tags in the
>> posts), which eliminates the need for any manual fixup; you may want to try
>> this, as it might eventually replace the .got patches.
>
> Glad to hear this. :-) But my problem is before relocating, the new scheme call
> the init_sequence in board_init_f, while the TEXT_BASE keep the function entry
> as static value during compile time. Does the ELF relocation could bring us
> a relative jump when call the init_sequence table?
Short answer is relocation brings a way to fix all the code and data for
correct relocation.
Note however, that when board_init_f runs, relocation has not happened
yet, but OTOH, board_init_f is running at TEXT_BASE, so no relocation is
needed yet. We need relocation fixup only once the code is moved to top
of DRAM, and we want to execute board_init_r there.
If you flash u-boot at its TEXT_BASE intended NOR FLASH location, then
any issue within board_init_f will probably be caused by the code trying
to write to a global other than gd.
> Thanks,
> Lei
You're welcome.
Amicalement,
--
Albert.
next prev parent reply other threads:[~2010-10-09 8:57 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
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 [this message]
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=4CB02E65.70205@free.fr \
--to=albert.aribaud@free.fr \
--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