This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
Support for additional AMD-type Flash Devices
- From: "Rene Nielsen" <rbn at vitesse dot com>
- To: <ecos-patches at sourceware dot org>
- Date: Thu, 12 Feb 2009 09:48:52 +0100
- Subject: Support for additional AMD-type Flash Devices
The following patch adds support for the following flash devices:
8-bit S29GL128N, 8-bit MX29LV128M-B, 8-bit MX29LV128-T, and 16-bit
MX29LV128-B.
Regards,
Rene Schipp von Branitz Nielsen
Vitesse Semiconductors
Index: flash_am29xxxxx_parts.inl
===================================================================
RCS file:
/cvs/ecos/ecos/packages/devs/flash/amd/am29xxxxx/current/include/flash_a
m29xxxxx_parts.inl,v
retrieving revision 1.30
diff -u -r1.30 flash_am29xxxxx_parts.inl
--- flash_am29xxxxx_parts.inl 29 Jan 2009 17:48:16 -0000 1.30
+++ flash_am29xxxxx_parts.inl 12 Feb 2009 08:44:05 -0000
@@ -78,6 +78,56 @@
#define _LAST_BOOTBLOCK (-1)
#if CYGNUM_FLASH_WIDTH == 8
+#ifdef CYGHWR_DEVS_FLASH_AMD_MX29LV128
+ { // MX29LV128M-B
+ long_device_id: true,
+ device_id : FLASHWORD(0x7e),
+ device_id2 : FLASHWORD(0x11),
+ device_id3 : FLASHWORD(0x00),
+ block_size : 0x10000 * CYGNUM_FLASH_INTERLEAVE,
+ block_count: 256,
+ device_size: 0x1000000 * CYGNUM_FLASH_INTERLEAVE,
+ base_mask : ~(0x1000000 * CYGNUM_FLASH_INTERLEAVE - 1),
+ bootblock : true,
+ bootblocks : { 0x000000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ _LAST_BOOTBLOCK
+ },
+ banked : false,
+ bufsiz : 32
+ },
+ { // MX29LV128M-T
+ long_device_id: true,
+ device_id : FLASHWORD(0x7e),
+ device_id2 : FLASHWORD(0x11),
+ device_id3 : FLASHWORD(0x01),
+ block_size : 0x10000 * CYGNUM_FLASH_INTERLEAVE,
+ block_count: 256,
+ device_size: 0x1000000 * CYGNUM_FLASH_INTERLEAVE,
+ base_mask : ~(0x1000000 * CYGNUM_FLASH_INTERLEAVE - 1),
+ bootblock : true,
+ bootblocks : { 0xff0000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ _LAST_BOOTBLOCK
+ },
+ banked : false,
+ bufsiz : 16
+ },
+#endif
#ifdef CYGHWR_DEVS_FLASH_AMD_AM29F002T
{ // AM29F002T
device_id : FLASHWORD(0xb0),
@@ -578,6 +628,22 @@
},
#endif
+#ifdef CYGHWR_DEVS_FLASH_AMD_S29GL128N
+ { // AMD/SPANSION S29GL128N
+ long_device_id: true,
+ device_id : FLASHWORD(0x7e),
+ device_id2 : FLASHWORD(0x21),
+ device_id3 : FLASHWORD(0x01),
+ block_size : 0x20000 * CYGNUM_FLASH_INTERLEAVE,
+ block_count: 128,
+ device_size: 0x1000000 * CYGNUM_FLASH_INTERLEAVE,
+ base_mask : ~(0x1000000 * CYGNUM_FLASH_INTERLEAVE - 1),
+ bootblock : false,
+ banked : false,
+ bufsiz : 32,
+ },
+#endif
+
#else // 16 bit devices
#ifdef CYGHWR_DEVS_FLASH_AMD_AM29LV128
@@ -596,6 +662,30 @@
},
#endif
#ifdef CYGHWR_DEVS_FLASH_AMD_MX29LV128
+ { // MX29LV128M-B
+ long_device_id: true,
+ device_id : FLASHWORD(0x227e),
+ device_id2 : FLASHWORD(0x2211),
+ device_id3 : FLASHWORD(0x2200),
+ block_size : 0x10000 * CYGNUM_FLASH_INTERLEAVE,
+ block_count: 256,
+ device_size: 0x1000000 * CYGNUM_FLASH_INTERLEAVE,
+ base_mask : ~(0x1000000 * CYGNUM_FLASH_INTERLEAVE - 1),
+ bootblock : true,
+ bootblocks : { 0x000000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ _LAST_BOOTBLOCK
+ },
+ banked : false,
+ bufsiz : 16
+ },
{ // MX29LV128M-T
long_device_id: true,
device_id : FLASHWORD(0x227e),