Hello,

here is a patch to support EN29LV800BB flash devices via CFI. I have
successfully tested ist in openocd 0.5.0 with the hardware described here:
http://www.bettyhacks.com

It was posted by telek...@gmx.de in the bettyhacks forum for openocd
0.4.0 and integrated into 0.5.0 by me.

Kind regards,

Gunnar Henne

diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c
index 3f1fbab..adf3a2d 100644
--- a/src/flash/nor/cfi.c
+++ b/src/flash/nor/cfi.c
@@ -68,6 +68,7 @@ static const struct cfi_fixup cfi_0002_fixups[] = {
        {CFI_MFR_FUJITSU, 0x226b, cfi_fixup_0002_unlock_addresses, 
&cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
        {CFI_MFR_AMIC, 0xb31a, cfi_fixup_0002_unlock_addresses, 
&cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
        {CFI_MFR_MX, 0x225b, cfi_fixup_0002_unlock_addresses, 
&cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
+       {CFI_MFR_EON, 0x225b, cfi_fixup_0002_unlock_addresses, 
&cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
        {CFI_MFR_AMD, 0x225b, cfi_fixup_0002_unlock_addresses, 
&cfi_unlock_addresses[CFI_UNLOCK_555_2AA]},
        {CFI_MFR_ANY, CFI_ID_ANY, cfi_fixup_0002_erase_regions, NULL},
        {CFI_MFR_ST, 0x227E, cfi_fixup_0002_write_buffer, NULL}, /* M29W128G */
diff --git a/src/flash/nor/cfi.h b/src/flash/nor/cfi.h
index 34807ee..a57b0dd 100644
--- a/src/flash/nor/cfi.h
+++ b/src/flash/nor/cfi.h
@@ -161,6 +161,7 @@ struct cfi_fixup
 #define CFI_MFR_AMIC   0x0037
 #define CFI_MFR_SST            0x00BF
 #define CFI_MFR_MX             0x00C2
+#define CFI_MFR_EON            0x007F
 
 #define CFI_MFR_ANY            0xffff
 #define CFI_ID_ANY             0xffff
diff --git a/src/flash/nor/non_cfi.c b/src/flash/nor/non_cfi.c
index 9c516c2..bf06d60 100644
--- a/src/flash/nor/non_cfi.c
+++ b/src/flash/nor/non_cfi.c
@@ -411,6 +411,23 @@ static struct non_cfi non_cfi_flashes[] = {
                        ERASE_REGION(1, 16*KB)
                }
        },
+       {
+               .mfr = CFI_MFR_EON,
+               .id = 0x225b,                           /* EN29LV800BB */
+               .pri_id = 0x02,
+               .dev_size = 1*MB,
+               .interface_desc = 0x2,          /* x8 or x16 device with nBYTE 
*/
+               .max_buf_write_size = 0x0,
+               .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
+               .num_erase_regions = 4,
+               .erase_region_info =
+               {
+                       ERASE_REGION(1, 16*KB),
+                       ERASE_REGION(2,  8*KB),
+                       ERASE_REGION(1, 32*KB),
+                       ERASE_REGION(15, 64*KB)
+               }
+       },      
        {
                .mfr = CFI_MFR_ATMEL,
                .id = 0x00c0,                           /* Atmel 49BV1614 */

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to