
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