mtd with AMD AM29LV800DB nor flash
Vitaly Wool
vwool at ru.mvista.com
Mon Jan 2 16:17:20 EST 2006
Hi,
you might want to try patch from Todd Poynor sent to this list
16.11.2005. If you wish, I can provide you the direct link to this email
in the linux-mts mailing list archive.
Hope that helps,
Best regards,
Vitaly
Ole Reinhardt wrote:
>Hello,
>
>I have a problem using 2.6.15-rc7'th mtd with an AMD AM29LV800DB nor
>flash device.
>
>The flash chip is connected to CS0 and is using 16bit bus width. It is
>recognised as AM29LV800BB, which is fully software and pin compatible to
>the AM29LV800DB device.
>
>Everything works quite fine, except writing / erasing. I tracked down
>the problem downto the following function:
>
>finfo_uaddr() in drivers/mtd/chips/jedec_probe.c
>
>I have a 16bit bus width, so I would expect it to return
>MTD_UADDR_0x0555_0x02AA, but there are the following lines:
>
>
>if (uaddr != 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];
>}
>
>In other words: For my flash chip, always MTD_UADDR_0x0AAA_0x0555 is
>returned.
>
>This is definatly the wrong unlock address for 16bit mode and every
>erase command will fail.
>
>If I comment out the "if (uaddr != MTD_UADDR_NOT_SUPPORTED ) ..."
>everything works fine.
>
>Can anybody explain me what's going wrong or is this a bug in the mtd
>code?
>
>Best regards,
>
>Ole Reinhardt
>
>
>
More information about the linux-mtd
mailing list