Support for AM29LV004T in mtd-driver

Christian Magnusson christian.magnusson at runaware.com
Thu Mar 4 07:35:10 EST 2004



I'm using uClinux on my MCF5206eC3 evaluation board, and I noticed that the
AM29LV004T flash wasn't detected in jedec_probe.c.

I have tested it on the linux-2.4.24-uc0 kernel and it works perfect with
interleave 2 since there are 2 x 512Kb flash in the board.

I still haven't tried the patch for the linux-2.6.2-uc0 kernel yet, since I
was unsure about the .uaddr structure. Does anyone know for sure what it
should be set to?

/Christian




diff -u -r uClinux-dist/linux-2.4.x/drivers/mtd/chips/jedec_probe.c
uClinux-dist-test/linux-2.4.x/drivers/mtd/chips/jedec_probe.c
--- uClinux-dist/linux-2.4.x/drivers/mtd/chips/jedec_probe.c    Tue Feb 17
13:53:07 2004
+++ uClinux-dist-test/linux-2.4.x/drivers/mtd/chips/jedec_probe.c       Thu
Mar  4 10:29:29 2004
@@ -44,6 +44,8 @@
 #define AM29F040       0x00A4
 #define AM29LV040B     0x004F
 #define AM29F032B      0x0041
+#define AM29LV004T     0x00B5
+#define AM29LV004B     0x00B6
 
 /* Atmel */
 #define AT49BV512      0x0003
@@ -150,6 +152,30 @@
 static const struct amd_flash_info jedec_table[] = {
        {
                mfr_id: MANUFACTURER_AMD,
+               dev_id: AM29LV004T,
+               name: "AMD AM29LV004T",
+               DevSize: SIZE_512KiB,
+               CmdSet: P_ID_AMD_STD,
+               NumEraseRegions: 4,
+               regions: {ERASEINFO(0x10000,7),
+                         ERASEINFO(0x08000,1),
+                         ERASEINFO(0x02000,2),
+                         ERASEINFO(0x04000,1)
+               }
+       }, {
+               mfr_id: MANUFACTURER_AMD,
+               dev_id: AM29LV004B,
+               name: "AMD AM29LV004B",
+               DevSize: SIZE_512KiB,
+               CmdSet: P_ID_AMD_STD,
+               NumEraseRegions: 4,
+               regions: {ERASEINFO(0x04000,1),
+                         ERASEINFO(0x02000,2),
+                         ERASEINFO(0x08000,1),
+                         ERASEINFO(0x10000,7)
+               }
+       }, {
+               mfr_id: MANUFACTURER_AMD,
                dev_id: AM29F032B,
                name: "AMD AM29F032B",
                DevSize: SIZE_4MiB,



--- uClinux-dist-test/linux-2.6.x.old/drivers/mtd/chips/jedec_probe.c	Fri
Jan 30 00:22:39 2004
+++ uClinux-dist-test/linux-2.6.x/drivers/mtd/chips/jedec_probe.c	Thu
Mar  4 10:40:44 2004
@@ -50,6 +50,8 @@
 #define AM29F040	0x00A4
 #define AM29LV040B	0x004F
 #define AM29F032B	0x0041
+#define AM29LV004T	0x00B5
+#define AM29LV004B	0x00B6
 
 /* Atmel */
 #define AT49BV512	0x0003
@@ -239,6 +241,40 @@
 static const struct amd_flash_info jedec_table[] = {
 	{
 		.mfr_id		= MANUFACTURER_AMD,
+		.dev_id		= AM29LV004T,
+		.name		= "AMD AM29LV004T",
+		.uaddr		= {
+			[0] = MTD_UADDR_0x0AAA_0x0555,  /* x8 */
+			[1] = MTD_UADDR_0x0555_0x02AA,  /* x16 */
+		},
+		.DevSize	= SIZE_512KiB,
+		.CmdSet		= P_ID_AMD_STD,
+		.NumEraseRegions= 4,
+		.regions	= {
+			ERASEINFO(0x10000,7),
+			ERASEINFO(0x08000,1),
+			ERASEINFO(0x02000,2),
+			ERASEINFO(0x04000,1)
+		}
+	}, {
+		.mfr_id		= MANUFACTURER_AMD,
+		.dev_id		= AM29LV004B,
+		.name		= "AMD AM29LV004B",
+		.uaddr		= {
+			[0] = MTD_UADDR_0x0AAA_0x0555,  /* x8 */
+			[1] = MTD_UADDR_0x0555_0x02AA,  /* x16 */
+		},
+		.DevSize	= SIZE_512KiB,
+		.CmdSet		= P_ID_AMD_STD,
+		.NumEraseRegions= 4,
+		.regions	= {
+			ERASEINFO(0x04000,1),
+			ERASEINFO(0x02000,2),
+			ERASEINFO(0x08000,1),
+			ERASEINFO(0x10000,7)
+		}
+	}, {
+		.mfr_id		= MANUFACTURER_AMD,
 		.dev_id		= AM29F032B,
 		.name		= "AMD AM29F032B",
 		.uaddr		= {






More information about the linux-mtd mailing list