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
--
Linux Software Engineer | EuroTech, Inc. | www.eurotech-inc.com
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
>
>
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users