[U-Boot] ARM relocation, probably trivial mistake - back to original problem

Heiko Schocher
2010-10-02T08:53:36Z

Hello Reinhard,

Reinhard Meyer wrote:
> Dear Wolfgang Denk,
>>> The environment issues still persist. I am at a loss
>>> there now.
>>>
>>> Observation: the old style commands "setenv", "printenv", etc.
>>> work, but any "env" command except for "env" alone crashes.
>> OK. If "printenv" works and "env print" fails then it has nothing to
>> do with the environment code itself, as both call the same function.
>>
>> It must have something to do with the implementation of subcommands
>> then. See do_env() in "common/cmd_nvedit.c"; check if the command
>> table address for find_cmd_tbl() is OK.
>>
>> Eventually other commands with subcommands fail as well (i2c ?) ?
>
> Nope, other commands with subcommands work fine. I did not test ALL
> but mmc, i2c, nand behave normally.

nand and mmc don;t use a command subtable, so they work. i2c do
the needed fixups for subcommandtables ...

And I see in common/cmd_nvedit.c there is a "static cmd_tbl_t cmd_env_sub"
definition, so this must be fixed too (not only for arm, it should
also don;t work on avr32, mips, m68k and sparc, because this
plattforms also need relocation fixups because CONFIG_RELOC_FIXUP_WORKS
is not defined for them ...

> I suspect something to do with a 256k boundary maybe, u-boot.bin is
> short of 256k. I changed the initial bootstrap to load 496k
> yesterday (before that the unrelocated version did fail in some
> commands).
>
> I'll keep investigating.

Please try my above idea ...

Thanks!

bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany