
Had problems with U-boot from ARM ELDK 4.0 on a PXA255 (Lubbock board) that seemed to be attributed to the declaration of global data. This space is declared before the armboot_start (.text) and heap regions, then referenced with the DECLARE_GLOBAL_DATA_PTR macro. The macro uses register R8, but seems to get corrupted (though I was unable to verify root cause of the problem). Note that the CFG_MONITOR_BASE was not in the lubbock header file, so I defined it to CFG_FLASH_BASE. I changed the global data pointer to that used in other architectures, where the pointer references the C declaration of global_data. This fixed my problem, and U-Boot boots successfully. Can anyone provide a hint/explanation about this problem?