SparkFun Forums 

Where electronics enthusiasts find answers.

Open source ARM Debugger
By jknick
#92124
Does anyone know what the state of affairs are for OpenOCD 0.4.0-rc1
and dealing with SST flash? I am going nuts with a SST39VF1601 that
according to everything I've read should be working. Or not. It's not
clear, but it looks like a variety of patches have made it in that should be
handling this memory.

Help!

Jake
By buriedcode
#94333
You probably know already but its out. Check out freddiechopin's page (I forget the url but its in his tag on the forum)

What problems are you having exactly? openOCD version? config file used? Debug output? Hardware interface?
By jknick
#94340
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,