New interface to (old) JEDEC chips
Edward A. Hildum
ehildum at mail.arc.nasa.gov
Tue Sep 18 22:20:27 EDT 2001
Folks,
I'm working on a 586 SBC with 2Megs of flash (AM29F016) mapped into a
window in the 0xD0000 area. There is also some battery backed RAM mapped
nearby. Dwmw2 suggested I check out the probe_jedec.c code for accessing
the flash. Some comments:
In probe_jedec.c, jedec_probe_chip() :
1. I ran into a case where the code returned zeroes for both the
manufacturer ID and the chip ID (probably a bug in my low level driver).
The zeroes match the empty structure at the end of jedec_table[], so the
empty struct gets passed to cfi_jedec_init(). cfi_jedec_init() treats is
as a legit entry and happily builds some more structures. In any case the
empty struct isn't needed (at least by jedec_probe_chip() ). I deleted it
from my source.
2. The 'retried' variable is never incremented. If we hit the " if
(!retried ) ... " clause, we can get an infinite loop which screws the
machine tight. I've changed "if (!retried) ... " to "if (!retried++) ...".
Should it only retry once?
More as I figure out what I'm doing.
Ted Hildum
More information about the linux-mtd
mailing list