Usage of MTD_UADDR_UNNECESSARY broken?

Marius Groeger mgroeger at sysgo.com
Fri Nov 19 07:50:11 EST 2004


On Thu, 18 Nov 2004, Erwin Authried wrote:

>> I'm thinking that the MTD_UADDR_UNNECESSARY test (which checks for the
>> end-of-loop condition) should be *prior* to the uaddr_idx++.  The way it
>> is, chips that are MTD_UADDR_UNNECESSARY will *never* be tested and will
>> *always* fail.
>
> I believe that your conclusion is wrong. jedec_probe doesn't know
> a-priori which chip is there, thus it can't omit the test. A test for a
> chip with MTD_UADDR_UNNECESSARY will match at the first tested unlock
> address, because a chip with MTD_UADDR_UNNECESSARY doesn't care about
> the unlock sequence at all.

Yes, this makes sense. However, I believe the real problem Alex ran 
into is that after the chip responded to the first address tested (as 
it should) and then found to be MTD_UADDR_UNNECESSARY, the uaddr index 
is _still_ used, subsequently. As far as I understand it, by way of 
the finfo_uaddr() function.

So what seems to be needed as a fix would be this: once a chip is 
found to be MTD_UADDR_UNNECESSARY, uaddr stuff should be done, at all, 
any more.

Does this make sense to you guys?

Regards,
Marius

-- 
Marius Groeger <mgroeger at sysgo.com>
SYSGO AG                      Embedded and Real-Time Software
Voice: +49 6136 9948 0                  FAX: +49 6136 9948 10
www.sysgo.com | www.elinos.com | www.osek.de | www.imerva.com





More information about the linux-mtd mailing list