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

Paul Bilke listmail at conspiracy.net
Sun Aug 6 19:43:30 CEST 2006


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




More information about the U-Boot mailing list