* mtd with AMD AM29LV800DB nor flash
@ 2006-01-02 16:30 Ole Reinhardt
2006-01-02 21:17 ` Vitaly Wool
0 siblings, 1 reply; 2+ messages in thread
From: Ole Reinhardt @ 2006-01-02 16:30 UTC (permalink / raw)
To: linux-mtd
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
--
kernel concepts Tel: +49-271-771091-14
Dreisbachstr. 24 Fax: +49-271-771091-19
D-57250 Netphen E+ : +49-177-7420433
--
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: mtd with AMD AM29LV800DB nor flash
2006-01-02 16:30 mtd with AMD AM29LV800DB nor flash Ole Reinhardt
@ 2006-01-02 21:17 ` Vitaly Wool
0 siblings, 0 replies; 2+ messages in thread
From: Vitaly Wool @ 2006-01-02 21:17 UTC (permalink / raw)
To: Ole Reinhardt; +Cc: linux-mtd
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
>
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-01-02 21:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-02 16:30 mtd with AMD AM29LV800DB nor flash Ole Reinhardt
2006-01-02 21:17 ` Vitaly Wool
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox