
In message 44F54E7A.7050105@dave-tech.it you wrote:
Did you check which address gets passed to simple_strtoul()?
Yes and ...
If I understand your screen shots correctly, then D1EBFF60 gets passed (in r1) as second argument to simple_strtoul(). Is this understanding correct? Did you verify that is this indeed the address of the local valiable "e"?
Did you check the generated assembler code as I suggested?
... yes. This is how I found out what happens. See the two dumps here http://www.dave-tech.it/download/misc/zefeer. Stuct bd_info starts at 0xD1EBFF3C.
In the second screen shot, the address D1EBFF22 gets used (in r14). Unfortunately your section does not allow to follow the code, i. e. how does the correct (?) content of r1 gets lost and/or changed into the wrong content of r14.
I can only repeat: check the code on assembler instuction level.
In message 44F551D6.7070904@dave-tech.it you wrote:
I tried to move the e pointer from start_armboot to the top of the file (static char *e;) and everything works fine.
This cannot be accepted as solution for the problem. I see absolutely no reason why the current code [cs]ould cause problems here.
Best regards,
Wolfgang Denk