From a29ed2421268934bb353946972584bd746c788e1 Mon Sep 17 00:00:00 2001 From: ntfreak Date: Mon, 18 Feb 2008 14:53:50 +0000 Subject: [PATCH] =?UTF-8?q?-=20add=20new=20non-cfi=20SST=20flash=20device.?= =?UTF-8?q?=20Thanks=20=C3=98yvind=20Harboe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.berlios.de/openocd/trunk@303 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/flash/cfi.c | 5 ++++- src/flash/non_cfi.c | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/flash/cfi.c b/src/flash/cfi.c index c52933854..902b71256 100644 --- a/src/flash/cfi.c +++ b/src/flash/cfi.c @@ -89,6 +89,7 @@ cfi_fixup_t cfi_jedec_fixups[] = { {CFI_MFR_SST, 0x00D5, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D6, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D7, cfi_fixup_non_cfi, NULL}, + {CFI_MFR_SST, 0x2780, cfi_fixup_non_cfi, NULL}, {CFI_MFR_ST, 0x00D5, cfi_fixup_non_cfi, NULL}, {CFI_MFR_ST, 0x00D6, cfi_fixup_non_cfi, NULL}, {CFI_MFR_AMD, 0x2223, cfi_fixup_non_cfi, NULL}, @@ -102,6 +103,7 @@ cfi_fixup_t cfi_0002_fixups[] = { {CFI_MFR_SST, 0x00D5, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D6, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D7, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, + {CFI_MFR_SST, 0x2780, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_ATMEL, 0x00C8, cfi_fixup_atmel_reversed_erase_regions, NULL}, {CFI_MFR_ANY, CFI_ID_ANY, cfi_fixup_0002_erase_regions, NULL}, {0, 0, NULL, NULL} @@ -590,7 +592,8 @@ int cfi_intel_info(struct flash_bank_s *bank, char *buf, int buf_size) int cfi_register_commands(struct command_context_s *cmd_ctx) { - /*command_t *cfi_cmd = */register_command(cmd_ctx, NULL, "cfi", NULL, COMMAND_ANY, NULL); + /*command_t *cfi_cmd = */ + register_command(cmd_ctx, NULL, "cfi", NULL, COMMAND_ANY, "flash bank cfi [jedec_probe/x16_as_x8]"); /* register_command(cmd_ctx, cfi_cmd, "part_id", cfi_handle_part_id_command, COMMAND_EXEC, "print part id of cfi flash bank "); diff --git a/src/flash/non_cfi.c b/src/flash/non_cfi.c index d80f37843..dbb02b0ca 100644 --- a/src/flash/non_cfi.c +++ b/src/flash/non_cfi.c @@ -87,6 +87,20 @@ non_cfi_t non_cfi_flashes[] = { 0x00000000 } }, + { + .mfr = CFI_MFR_SST, + .id = 0x2780, + .pri_id = 0x02, + .dev_size = 0x13, /* 2^19 = 512KB */ + .interface_desc = 0x2, /* x8 or x16 device */ + .max_buf_write_size = 0x0, + .num_erase_regions = 1, + .erase_region_info = + { + 0x0010007f, + 0x00000000 + } + }, { .mfr = CFI_MFR_ST, .id = 0xd6, /* ST29F400BB */ @@ -241,3 +255,4 @@ void cfi_fixup_non_cfi(flash_bank_t *bank, void *param) } } +