4 x AMD29LV800B CFI?

David Woodhouse dwmw2 at infradead.org
Tue Nov 27 06:05:28 EST 2001


espin at 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






More information about the linux-mtd mailing list