Adrian Filipi wrote: > On Tue, 29 Apr 2008, Wolfgang Denk wrote: > >> In message <[EMAIL PROTECTED]> you wrote: >>> I narrowed down the source of the problem to the loss of the >>> volatile qualifier on the addr pointer in flash_write_cmd(). Adding the >>> qualifier gets rid of the corruption. In the older 1.2.0 sources, addr was >>> declared as "volatile cfiptr_t addr;". >> The volatile should not be needed - the CFI driver should use correct >> accessor macros instead. See >> Documentation/volatile-considered-harmful.txt in your Linux kernel >> source tree... >> >> Best regards, >> >> Wolfgang Denk > > Sure, reducing the reliance on volatile is a good idea, but I'm at > a loss for anything better to do. > > I'm seeing a real problem that is only fixed by qualifying the > container of the pointer as volatile, i.e. "void *volatile". "volatile > void *" has no effect as expected given that the read/write accessors are > used now. > > The old data type was essentially "volatile void *volatile addr" > and the new type is simply "void *addr". I seem to need at least "void > *volatile addr" for things to work. > > Note, I'm only seeing this problem on our PXA250 boards. > > Adrian
Hi Adrian, Please bottom post. It may be useful to disassemble cfi_flash.o file (objdump -S) and see what the two different configurations of flash_write_cmd() get turned into in assembly. Best regards, gvb ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users