
Dear Wolfgang Denk,
Dear Reinhard Meyer,
In message4CDF137E.2000902@emk-elektronik.de you wrote:
This has but on tiny shortcoming: we use GD to pass data around, for example to pass clock frequencies determind before relocation to the code running after relocation - which means that GD must be of a statically allocated storage class.
Your stack variable above will go out of scope as soon as we leave the board_early_init() function...
Correct, that's why its even now copied over to storage in SDRAM... (at least on ARM: debug ("relocation Offset is: %08lx\n", gd->reloc_off); memcpy (id, (void *)gd, sizeof (gd_t));
relocate_code (addr_sp, id, addr); )
At this time board_early_init_f() has terminated long ago, i. e. the data is not available any more.
Above code is *IN* board_early_init_f !
Best regards, Reinhard