On Sat, Aug 27, 2011 at 04:28:28AM +0100, Andrew Morgan wrote:
CAT28F512 I have successfully probed and read data from, but erase fails. Could be because it needs 12v VPP. The CAT28F512 I have is soldered on to a NIC. I haven't investigated if VPP is connected at all yet. Thought I'd include the patch as-is anyway.
Both patches: Signed-off-by: Andrew Morgan ziltro@ziltro.com
Thanks, r1439 with some changes.
I changed "CATALYST" to "Catalyst", as used in most of their docs and websites, e.g.
http://www.catsemi.com http://www.onsemi.com/PowerSolutions/content.do?id=16700
(they've been bought)
I tested the patch on an Intel NIC with this chip too, probe and read works fine indeed.
Probe only works due to sheer luck though, probe_jedec() is not really correct here, it only works because:
"Signature Mode: The signature mode allows the user to identify the IC manufacturer and the type of device while the device resides in the target system. This mode can be activated in either of two ways; through the conventional method of applying a high voltage (12V) to address pin A9 or by sending an instruction to the command register (see Write Operations)."
I have verified on my NIC that VPP is indeed 12V always, hence probe works even though we don't supply the correct probe commands etc. (yet).
Index: flashchips.c
--- flashchips.c (revision 1421) +++ flashchips.c (working copy) @@ -2305,6 +2305,30 @@
[...]
.page_size = 256,
Killed, not used.
.feature_bits = FEATURE_EITHER_RESET,
Is now 0, don't think this feature applies (neither do the other ones AFAICS).
.probe = probe_jedec,
Added a TODO.
.block_erasers =
{
{
.eraseblocks = { {64 * 1024, 1} },
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
I set the write/erase functions to NULL for now, the functions above are incorrect and will not work. Let me know if you want to have a look at the datasheet and implement the correct ones. I might have some time sooner or later to do it, dunno.
Uwe.