
On Thu, Jul 17, 2008 at 04:54:53PM -0500, Kim Phillips wrote:
On Wed, 16 Jul 2008 15:28:21 -0700 Ira Snyder iws@ovro.caltech.edu wrote:
During the development, I noticed that adding and removing certain pieces of debugging code (which did not change any program state) caused the board to hang on boot, like so: ================================================================================
U-Boot 1.3.4-rc1-00001-gb89881c-dirty (Jul 16 2008 - 14:54:56) MPC83XX
Reset Status: External/Internal Soft, External/Internal Hard
CPU: e300c1, MPC8349EA, Rev: 3.0 at 528 MHz, CSB: 264 MHz Board: Freescale MPC8349EMDS I2C:
try reverting this commit:
commit 1c3dd43338a077165e7e0309cb3994e65d2bdbf8 Author: Grant Likely grant.likely@secretlab.ca Date: Tue Nov 13 22:18:33 2007 -0700
powerpc: Backout relocation changes. Ugh. I *hate* to back this change out, but these compiler flags don't work for relocation on all versions of GCC. I've not been able to reproduce the environment in my setup (and hence, not been able to find a combination that *does* work), so I've got no choice but to go back to the old gcc flags and linker script. Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Kim
Ok, I have tried reverting this commit. With the patch from my previous email that aligns the .data section start address to a multiple of 32 bytes, the board still hangs on boot.
I removed the ". = ALIGN(32);" from the mpc83xx linker script, and (by coincidence the .data section start address was still aligned to 32 bytes (the board still hung on boot). I added ". = . + 4;" in the same place as the ALIGN so I did not have to make any code changes. This moved the start address of .data off of the 32 byte boundary. The board booted up fine in this case.
So the revert didn't seem to help. The board still breaks when .data starts on a 32 byte boundary.
I hope this helps narrow down the problem.
Thanks again for the help, Ira