SST39VF1601 and OpenOCD

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

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?

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,