From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Wed, 30 Apr 2008 11:51:48 -0400 Subject: [U-Boot-Users] cfi_flash.c and lost volatile qualifier In-Reply-To: <20080430153830.3CC7024681@gemini.denx.de> References: <20080430153830.3CC7024681@gemini.denx.de> Message-ID: <48189594.30004@ge.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk wrote: > In message <48188584.3060109@ge.com> you wrote: >> The solution in the PowerPC world is to add a "eieio" or "sync" >> instruction[1] appropriately[2], which prevents the bus interface unit >> from reordering the memory operations. > > No, the solution for ALL architectures is to use the appropriate > accessor macros which take care of such things (and probably contain > calls like sync or similar). > > Best regards, > > Wolfgang Denk Agreed. If my theory is correct, Adrian has turned up a problem with the ARM configuration that apparently only shows up for the PXA250. Or I'm blowing smoke - nothing to see, move along. The hairs on the back of my neck say it is a sync/bus interface unit problem. I don't know if it is significant, not being very intimately familiar with ARM (and, in particular, the PXA250), but my quick grep turns up ./include/asm-arm/io.h and a quick browsing shows no syncs. The hairs on the back of my neck are starting to ache. ;-) static inline void sync(void) { } #define __arch_getb(a) (*(volatile unsigned char *)(a)) gvb