* 4 x AMD29LV800B CFI?
[not found] <E1669aI-0001iv-00@pentafluge.infradead.org>
@ 2001-11-23 21:01 ` Geoffrey Espin
2001-11-27 11:05 ` David Woodhouse
0 siblings, 1 reply; 3+ messages in thread
From: Geoffrey Espin @ 2001-11-23 21:01 UTC (permalink / raw)
To: linux-mtd
Is there a definitive URL to discover what chips are CFI and
which are not? I've Googled the planet for the AMD29LV800B family.
The chip is appears in mtd/chips/amd_flash.c, not necessarily
CFI. I found a nearly dead link on AMD site to source code:
http://www.amd.com/us-en/assets/content_type/utilities/cfiflash.h.txt
http://www.amd.com/us-en/assets/content_type/utilities/cfiflash.c.txt
which contains the part, yet the datasheet:
http://www.amd.com/us-en/assets/content_type/DownloadableAssets/21531.pdf
doesn't list it as having CFI.
The NEC/MIPS "Korva" board I'm trying to get this working on has
4 x AMD29LV800B's byte interleaved for 4MB total. I've tinkered
with cfi/jedec/amd_flash and not one of them will recognize the
part(s). After sending the command code(s), it replies with the
contents at the particular offset, not the chip code. Perhaps
my h/w setup is insisting that all 4 parts are programmed at
once? I see ifdef SOMEONE_ACTUALLY... for width 4 type 32
interleave 4; maybe this means generate the right pattern? I'm
now driven to more furious surgery, it seems. :-(
Geoff
--
Geoffrey Espin
espin@idiom.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 4 x AMD29LV800B CFI?
2001-11-23 21:01 ` 4 x AMD29LV800B CFI? Geoffrey Espin
@ 2001-11-27 11:05 ` David Woodhouse
2001-11-28 3:30 ` Geoffrey Espin
0 siblings, 1 reply; 3+ messages in thread
From: David Woodhouse @ 2001-11-27 11:05 UTC (permalink / raw)
To: Geoffrey Espin; +Cc: linux-mtd
espin@idiom.com said:
> Perhaps my h/w setup is insisting that all 4 parts are programmed at
> once? I see ifdef SOMEONE_ACTUALLY... for width 4 type 32 interleave
> 4; maybe this means generate the right pattern?
That's around the code for 32-bit flash chips. You don't have 32-bit chips,
you have 16-bit chips, in 8-bit mode.
I've used the 29LV160, and it's definitely CFI-compliant. Strangely, the
29LV800 isn't. But the jedec_probe code doesn't yet recognise it. Try
this...
Index: drivers/mtd/chips/jedec_probe.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/chips/jedec_probe.c,v
retrieving revision 1.6
diff -u -r1.6 jedec_probe.c
--- drivers/mtd/chips/jedec_probe.c 2001/10/22 10:16:08 1.6
+++ drivers/mtd/chips/jedec_probe.c 2001/11/27 11:04:56
@@ -35,6 +35,8 @@
#define AM29LV800BT 0x22DA
#define AM29LV160DT 0x22C4
#define AM29LV160DB 0x2249
+#define AM29LV800BT 0x22DA
+#define AM29LV800BB 0x225B
/* Atmel */
#define AT49BV16X4 0x00c0
@@ -97,6 +99,30 @@
#define SIZE_8MiB 23
static const struct amd_flash_info jedec_table[] = {
+ {
+ mfr_id: MANUFACTURER_AMD,
+ dev_id: AM29LV800BT,
+ name: "AMD AM29LV800BT",
+ DevSize: SIZE_1MiB,
+ CmdSet: P_ID_AMD_STD,
+ NumEraseRegions: 4,
+ regions: {ERASEINFO(0x10000,15),
+ ERASEINFO(0x08000,1),
+ ERASEINFO(0x02000,2),
+ ERASEINFO(0x04000,1)
+ }
+ }, {
+ mfr_id: MANUFACTURER_AMD,
+ dev_id: AM29LV800BB,
+ name: "AMD AM29LV800BB",
+ DevSize: SIZE_1MiB,
+ CmdSet: P_ID_AMD_STD,
+ NumEraseRegions: 4,
+ regions: {ERASEINFO(0x04000,1),
+ ERASEINFO(0x02000,2),
+ ERASEINFO(0x08000,1),
+ ERASEINFO(0x10000,15)
+ }
{
mfr_id: MANUFACTURER_AMD,
dev_id: AM29LV160DT,
--
dwmw2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 4 x AMD29LV800B CFI?
2001-11-27 11:05 ` David Woodhouse
@ 2001-11-28 3:30 ` Geoffrey Espin
0 siblings, 0 replies; 3+ messages in thread
From: Geoffrey Espin @ 2001-11-28 3:30 UTC (permalink / raw)
To: David Woodhouse; +Cc: linux-mtd
> > Perhaps my h/w setup is insisting that all 4 parts are programmed at
> > once? I see ifdef SOMEONE_ACTUALLY... for width 4 type 32 interleave
> > 4; maybe this means generate the right pattern?
> That's around the code for 32-bit flash chips. You don't have 32-bit chips,
> you have 16-bit chips, in 8-bit mode.
> I've used the 29LV160, and it's definitely CFI-compliant. Strangely, the
> 29LV800 isn't. But the jedec_probe code doesn't yet recognise it. Try
> this...
> Index: drivers/mtd/chips/jedec_probe.c
> ...
Thanks, David, ever so much for the patch. I'd played with Jedec too.
I actually got amd_flash.c to seemingly work on its own -- just
tested with "mtd_debug read/write ..." My hacked amd_flash.c prints:
Physically mapped flash: Found 1 x 4MiB AMD AM29LV800BT (*4) at 0x0
^^^^
Yeah!
I'd prefer to use your version, will give it a try...
Geoff
--
Geoffrey Espin
espin@idiom.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-11-28 3:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <E1669aI-0001iv-00@pentafluge.infradead.org>
2001-11-23 21:01 ` 4 x AMD29LV800B CFI? Geoffrey Espin
2001-11-27 11:05 ` David Woodhouse
2001-11-28 3:30 ` Geoffrey Espin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox