- add new non-cfi SST flash device. Thanks Øyvind Harboe
authorntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Mon, 18 Feb 2008 14:53:50 +0000 (14:53 +0000)
committerntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Mon, 18 Feb 2008 14:53:50 +0000 (14:53 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@303 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/flash/cfi.c
src/flash/non_cfi.c

index c52933854ebe6bd00cb14fc7f5da247cb9c54bf1..902b7125645ffa36abcb280fbfefa02b8ac45b1b 100644 (file)
@@ -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 <base> <size> <chip_width> <bus_width> <targetNum> [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 <num>");
index d80f37843c65c365762fe6207dfafcf8a7c5905b..dbb02b0ca627dfa61ae1c4fec9e11e7acff77340 100644 (file)
@@ -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)
        }
 }
 
+