My problems are solved, and the SST flash is working just fine. What
I had been interpreting to be a junk device id due to miscommunication with the
chip in the end turned out to be a mistake in the spec provided by our people
supplying the hardware. Namely that it was a SST39WF1601 (note the W
there) and not a SST39VF1602. It turns out that these two devices are
interchangeable however and I was able to get it running. It took a little
fiddling but I am now using OpenOCD 100% for a couple of different projects
and am no longer am dependent on a Windows machine running Sam-ba.
Fantastic.
I’ll hunt for that page. Thank you for the tip.
I’ll drop my patch in, in case someone happens across this thread:
diff -Naur openocd-0.4.0-rc1.orig/src/flash/nor/cfi.c openocd-0.4.0-rc1/src/flash/nor/cfi.c
— openocd-0.4.0-rc1.orig/src/flash/nor/cfi.c 2009-12-22 05:52:03.000000000 +0900
+++ openocd-0.4.0-rc1/src/flash/nor/cfi.c 2010-02-04 16:09:51.000000000 +0900
@@ -51,6 +51,7 @@
/* fixup after reading cmdset 0002 primary query table */
static const struct cfi_fixup cfi_0002_fixups = {
{CFI_MFR_SST, 0x00D4, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
- {CFI_MFR_SST, 0x274b, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
{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]},
diff -Naur openocd-0.4.0-rc1.orig/src/flash/nor/non_cfi.c openocd-0.4.0-rc1/src/flash/nor/non_cfi.c
— openocd-0.4.0-rc1.orig/src/flash/nor/non_cfi.c 2009-12-22 05:52:03.000000000 +0900
+++ openocd-0.4.0-rc1/src/flash/nor/non_cfi.c 2010-02-01 16:41:36.000000000 +0900
@@ -189,6 +189,20 @@
},
{
.mfr = CFI_MFR_SST,
-
.id = 0x274b, /* SST39WF1601 */
-
.pri_id = 0x02,
-
.dev_size = 2*MB,
-
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
-
.max_buf_write_size = 0x0,
-
.status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
-
.num_erase_regions = 1,
-
.erase_region_info =
-
{
-
ERASE_REGION(512, 4*KB)
-
}
-
},
-
{
-
.mfr = CFI_MFR_SST,
.id = 0x234a, /* SST39VF1602 */
.pri_id = 0x02,
.dev_size = 2*MB,