[SPAM] Re: P30 flash left in read status mode after a write

Jon Ringle jon at ringle.org
Wed Feb 14 15:09:51 EST 2007


Nicolas Pitre wrote:
> On Wed, 14 Feb 2007, Jon Ringle wrote:
>
>   
>> I am running Linux 2.6.16.29 and I've 
>> found that whenever a write is done to the jffs2 filesystem that flash 
>> is left in read status mode and anything trying to do a read of flash 
>> directly reads only 0x0080. Reading from an mtd device seems to fix the 
>> problem.
>>     
>
> This is done on purpose.  And as you deduced yourself this is so to 
> avoid ...
>
>   
>> taking a slight performance hit to consecutive jffs2 write operations 
>> because now each write operation will need to spend more cycles putting 
>> the flash in to a write mode.
>>
>> Any advice would be appreciated.
>>     
>
> First, why is this a problem for you?
>
>   
This is a problem on our (unusual) hardware because we have a Pentium M 
processor (not running Linux) that reads fconfig partition outside the 
context of the IXP processor that is running Linux. It does so via data 
path: Pentium -> PCI -> IXP Expansion bus -> Flash. This data path 
allows the Pentium to directly access the fconfig partition without 
needing any active code on the IXP's arm core processor to do anything 
to facilitate such access by the Pentium. However, when the mtd driver 
leaves the flash in read status mode, the Pentium just reads 0x0080 when 
trying to read the fconfig partition. With a change to have the mtd 
driver put the flash back into ready mode after a write, then I think 
that the Pentium only needs to deal with a temporary read failure if it 
happens to do a read at the same time that a write is occurring on the 
jffs2. In which case, the Pentium code simply spins retrying to do the 
read until it is successful.

Jon




More information about the linux-mtd mailing list