Fujitsu MBM29LV800BA not recognized because of unlock_addrs mismatch

Armin Schindler armin.schindler at sysgo.com
Thu Aug 4 08:32:47 EDT 2005


Hi all,

current MTD jedec_probe/jedec_match does not find a match for 
MBM29LV800BA, because the unlock_addrs does not match.

The jedec_table[] holds the correct values, but the function 
finfo_uaddr() returns the wrong values -> no match.

In finfo_uaddr() the code is

...
         uaddr = finfo->uaddr[uaddr_idx];

         if (finfo->uaddr[0] == MTD_UADDR_NOT_SUPPORTED ) {
                 /* ASSERT("The unlock addresses for non-8-bit mode
                    are bollocks. We don't really need an array."); */
                 uaddr = finfo->uaddr[0];
         }
...

when I remove the 'if', it works perfectly for MBM29LV800BA !

I do not know in which case this if really does make sense, but
at least for MBM29LV800BA the function finfo_uaddr() returns always
finfo->uaddr[0] which is the wrong in 16bit mode.

Removing this 'if' is probably wrong, because someone must have had a 
reason for it, but it is definatly not correct in each case.

What do you think?

regards,
Armin

-- 
Armin Schindler <armin.schindler AT sysgo.com>
SYSGO AG                      Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de





More information about the linux-mtd mailing list