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

Jon Ringle jon at ringle.org
Wed Feb 14 15:41:34 EST 2007


Nicolas Pitre wrote:
> On Wed, 14 Feb 2007, Jon Ringle wrote:
>
>   
>> Nicolas Pitre wrote:
>>     
>>> 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.
>>     
>
> And how do you determine that you have a read failure?
>
> Because the flash doesn't necessarily always have 0x00800080 to show 
> when outside of the read mode.
>   
True. However, the data that is being read has magic values and a 
checksum for validity, so the likelihood of a false positive on passing 
these tests is extremely unlikely.
> Of course, since you have an unusual setup you can have an unusual patch 
> in your own kernel tree for this issue.  But this isn't entirely safe 
> since the Pentium code might be fooled by some other flash status output 
> that doesn,t look like a read failure.
>   
I was intending for just patching my own kernel tree for this issue, 
since this issue is unlikely to be of wider audience appeal. I just 
wanted to present my problem to people that are more knowledgeable with 
the mtd code as a sanity check for my solution.

Jon





More information about the linux-mtd mailing list