
Hi All,
I have come across what I think is a relocation problem for powerpc.
I've added the following to ArpTimeoutCheck
+ printf("NetArpWaitTimerStart = %ld\n", NetArpWaitTimerStart); + printf("&NetArpWaitTimerStart = %p\n", &NetArpWaitTimerStart); + printf("NetArpWaitTry = %d\n", NetArpWaitTry); + printf("&NetArpWaitTry = %p\n", &NetArpWaitTry); + printf("NetArpWaitTxPacketSize = %d\n", NetArpWaitTxPacketSize); + printf("&NetArpWaitTxPacketSize = %p\n", &NetArpWaitTxPacketSize);
Which yields the following output
NetArpWaitTimerStart = 0 &NetArpWaitTimerStart = f00000d0 NetArpWaitTry = 1 &NetArpWaitTry = 7ffb0058 NetArpWaitTxPacketSize = 42 &NetArpWaitTxPacketSize = 7ffb0078
That looks to me like NetArpWaitTimerStart hasn't been relocated for some reason. Looking at my u-boot.map NetArpWaitTimerStart is the last item in the .sbss section
Here's the relevant snippets for the variables I'm displaying
0x00000000f0000058 NetArpWaitTry 0x00000000f0000078 NetArpWaitTxPacketSize 0x00000000f00000d0 NetArpWaitTimerStart
The actual problem for me is that ARPs timeout and various network things fail. Has anyone got any clues as to why this one particular variable isn't getting relocated.
Thanks, Chris
More info: I'm building P2041RDB_config
$ git describe v2014.10-rc2-15-g2ec8915
=> version U-Boot 2014.10-rc2-00015-g2ec8915-dirty (Sep 08 2014 - 16:18:42) powerpc-e500-linux-gnu-gcc (Gentoo 4.6.3-r1 p1.9, pie-0.5.2) 4.6.3 GNU ld (GNU Binutils) 2.21