[U-Boot] [PATCH 12/26] ARM: add relocation support

Wolfgang Denk
2010-09-16T07:06:42Z

Dear Alessandro Rubini,

In message <20100916062347.GA25290@morgana.i.gnudd.com> you wrote:
>
> One of the things I love(d) with u-boot (at least the ARM one) is that
> I could place it in flash at any address and it would just work. So
> when I have a new binary I first write it to another flash sector and
> "go" to it. Only if it works I flash at offset 0. Sure I test in RAM

This may, or may not work. In general you have to be lucky if it does
work. Many processors have steps in their initialization sequence
which cannot be repeated easily, at least not without a reset.

> first, but since writing the ram image to flash is not uncommon, the
> final test for me has always been in flash -- also for other reasons.

Even if it works, this is not, and cannot be, any guarantee that the
image would run when started out of reset. On contrary, on many
processors you will have to modify the code so that it can be started
on an already running system.

> Is there any chance we could go on testing on a different flash
> address without relinking in-between (with the risk of mismatching the
> two images?)

I don't understand why you think this could (or should) be working?

We have a static configuration with CONFIG_SKIP_LOWLEVEL_INIT (and
CONFIG_SKIP_RELOCATE_UBOOT); if CONFIG_SKIP_LOWLEVEL_INIT is not set,
starting another U-Boot instance with "go" would repeat the whole
low-level initialization which _will_ break on many systems.

I agree that it would be nice to have U-Boot completely position-
independent and completelky restartable, but this would be a new
feature, which newer existed before.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"'Tis true, 'tis pity, and pity 'tis 'tis true."
- Poloniouius, in Willie the Shake's _Hamlet, Prince of Darkness_