[U-Boot-Users] move64 and GCC4 on ppc (8280)

I was updating my platform to use the current GIT image of u-boot while changing to use GCC4. (ELDK 4.0.0) my board refused to boot because of memory data test failures. A little poking with JTAG proved the DRAM was indeed working but it looks like the move64 function does not seem to store the proper value. Changing it do just use C instead of the ppc assembler makes it work fine in my case.
This function is used by several other boards so this may be an issue on multiple platforms. Changing the function to look like this: #if __GNUC__ ==4 *dest=*src; #else asm ("lfd 0, 0(3)\n\t" /* fpr0 = *scr */ "stfd 0, 0(4)" /* *dest = fpr0 */ : : : "fr0" ); /* Clobbers fr0 */ #endif
seems to make things happy. I suspect this has to do which how GCC4 deals with parameters, but as usual things are past due so this quick hack is what I have to live with.
Paul

In message 44D62A42.1050406@conspiracy.net you wrote:
This function is used by several other boards so this may be an issue on multiple platforms. Changing the function to look like this:
So can you please submit a proper patch? Thanks. [See README for instructions if needed.]
Best regards,
Wolfgang Denk
participants (2)
-
Paul Bilke
-
Wolfgang Denk