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