> -----Original Message----- > From: Albert ARIBAUD [mailto:albert.arib...@free.fr] > Sent: Friday, July 09, 2010 6:31 PM > To: Prafulla Wadaskar; u-boot@lists.denx.de > Subject: Re: [U-Boot] [PATCH V2 3/6] mv_egiga: bugfix: DMA > issue fixed using volatile > > Le 09/07/2010 13:53, Albert ARIBAUD a écrit : > > Le 09/07/2010 13:11, Prafulla Wadaskar a écrit : > > > >> You can use volatile qualifier for the variables in DMA > specific code instead of modifying structures, > >> Try to use memory barrier or something like that- > >> Some ref : http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html > >> may be someone c-expert on the list can suggest better > > > > Seems we've followed the same line of reasoning. :) > > > > I'll look into forcing a sequence point without resorting to asm. > > Found it. arch/arm/include/asm/system.h provides isb() which > expands to > an asm statement acting as a sequence point. Inserting an isb() right > before starting DMA ensures that all writes to the descriptor are > emitted before setting the TQC register for DMA, so that should work.
Good findings... > > Shouldn't I send out the isb() fix as a separate patch? After > all, it is > a fix for a bug (uncontrolled sequencing) which is present > for kirkwood > even though we were lucky enough that it did not bite so far. Yes, Pls do the needful Regards.. Prafulla . . _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot