Hi All, I have run into trouble with a new board holding the SST 39VF6401B external flash.
I am working with WinXP and the 0.3.1 installer from Mr. Chopin: Trying to flash with the OPenOCD I get this error: target state: halted target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x200000d3 pc: 0xa000064c 200 kHz core state: ARM RCLK not supported - fallback to 2000 kHz background polling: on TAP: lpc2468.cpu (enabled) target state: halted target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x200000d3 pc: 0xa000064c Info : Flash Manufacturer/Device: 0x00bf 0x236d Error: Could not probe bank: no QRY Try workaround w/0x555 instead of 0x55 to get QRY. Error: Could not probe bank: no QRY Error: auto_probe failed -900 At this point I assumed that the concerned Flash device is a NON_CFI device. Then I did some reading in the source code and found the need to rebuild OpenOCD 0.3.1 to accept this device: First of all there was no support for this flash in the non_cfi.c so I added this: { .mfr = CFI_MFR_SST, .id = 0x236d, /* SST39VF6401B */ .pri_id = 0x02, .dev_size = 8*MB, .interface_desc = 0x2, /* x8 or x16 device with BYTE */ .max_buf_write_size = 0x0, .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7, .num_erase_regions = 1, .erase_region_info = { ERASE_REGION(2048, 4*KB) } }, This seems to make me capable of recognizing the flash. So far so good. Then I added this line to the cfi.c cfi_0002_fixups array: {CFI_MFR_SST, 0x236d, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_555_2AA]}, This I did because it seemed like the proper thing to do based on what I found in flash spec. All this does not help me very much as I cannot flash anything to this flash, here are my observations: 1. I can get a flash info and then all blocks are in a "protection state unknown" condition. This can be solved by applying a "flash protect_check 1". Then a "flash info 1" says that every block is protected. 2. I can disable the "working area" and then it seems to flash but very slowly and pretty useless with an 8M flash. This leads me into thinking that chipselect and all these things are OK.? 3. The flash I am using is identified to have "CFI Query string" where " Primary OEM command set = 0002H @ address 13H" Whereas my Embedde Aritist board flash that works nicely has a "command set = 01H". My OpenOCD 0.3.1 is simply throwing this kind of message after me : non-cfi flash: mfr: 0x00bf, id:0x236d Error: timed out while waiting for target halted Error: error writing to flash at address 0x80000000 at offset 0x00000000 (-902) Here are some more observations, which might be relevant: The SST39VF6401B and SST39VF6401 are not the same e.g. Primary OEM command set are 01H vs 02H The SST39VFXX01 and SSTVFXX02 differs in working with Top vs Bottom boot blocks, whatever that means... So now I am running out of ideas and was hoping for some help from any of you. Q1: Does any of the things I did make sence (someone suggested that the device really is a CFI Flash and my effort is a waste of time - how can I know)? Q2: Am I missing some important bit to fully adapt a new flash? Q3: Does this "command set" difference mean that I am in the same kind of trouble as some of the other people I read about are having? Q4: I also read about some patches. Would there be one "hacky unsupported take it or leave it patch" that could safe me on this particular flash? Any reference. If you can answer any of these questions you are my hero:-) If you need any additional information please ask me. Thanks Flemming _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development