- fix generic bitbang code to allow scans to end in Shift-[ID]R
- several CFI fixes (thanks to Michael Schwingen):
- buffer overflow when converting target code in cfi_intel_write_block -
cfi_fix_code_endian needs the number of words, not bytes, as size
argument.
- Spansion flash write was completely broken on big-endian targets - I
borrowed mechanisms from the intel driver, and moved some common code
into the cfi_command_val helper function. There is still more common code
that might be cleaned up.
- the buffer size check in cfi_write was broken for spansion flashes, where
cfi_write_words is not implemented. cfi_write_words is no only called if
the flash does have a buffer size >1.
- "flash info" printed CFI status information for non-CFI flashes, which is
confusing. It now only prints those when a real CFI flash is detected.
git-svn-id: svn://svn.berlios.de/openocd/trunk@517 b42882b7-edfa-0310-969c-e2dbd0fdcd60
is post reset = reset speed.
- removed infinite loop's and exit()'s upon poor arm7/9 communication
- cleaned up error messages a bit. Push ERROR() up into fn's that
fail and can say something meaningful about what failed.
git-svn-id: svn://svn.berlios.de/openocd/trunk@511 b42882b7-edfa-0310-969c-e2dbd0fdcd60
that all the jtag_add_xxx() are indeed intended to do the same thing.
git-svn-id: svn://svn.berlios.de/openocd/trunk@504 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- hopefully clarified the difference between TRST and TMS reset.
- added DEBUG() statements w.r.t. state changes
- TRST released and moving out of TAP_TLR are completely
different events. Only TRST released has a DEBUG() statement
git-svn-id: svn://svn.berlios.de/openocd/trunk@496 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- uses packed transfers for 8/16bit read/writes greater than 4bytes
- 8/16bit transfers now use address auto increment
git-svn-id: svn://svn.berlios.de/openocd/trunk@495 b42882b7-edfa-0310-969c-e2dbd0fdcd60
fail for two of it's return codes. A little bit weird, but compatible with
existing codebase.
- tightend up error handling. Since the jtag_xxx() is a queue that is either
executed as things are added(hw queue) or a software queue, then
errors can only be caught during jtag_execute_queue(). No error
code is therefore returned from the queuing fn's.
git-svn-id: svn://svn.berlios.de/openocd/trunk@492 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- hmm..... did I screw up? Was XScale and not gdb_server busted here?
My thinking was that OpenOCD has a canonical internal representation
of registers that match GDB's expectations
git-svn-id: svn://svn.berlios.de/openocd/trunk@484 b42882b7-edfa-0310-969c-e2dbd0fdcd60
are up and running. The examination and validation is actually
"optional" from the point of view of GDB + telnet servers.
Multiple targets should work fine with this.
- jtag_speed is dropped(divisor is increased), if jtag examination and
validation fails.
- the chain is validated 10x to catch the worst jtag_speed offences
- added LOG_SILENT that can be used to shut up log. Feeble
ersatz for try+catch.
- GDB register packets are now always replied in order to make sure
that GDB connect works. If the target is not halted, then these
packets contain dummy values.
git-svn-id: svn://svn.berlios.de/openocd/trunk@483 b42882b7-edfa-0310-969c-e2dbd0fdcd60
- Fixed memory leak in gdb_server.c
- pushed "Error:" statements up into fn's that know something about what went wrong
- load_image now fails if target_write_memory() fails
- only issue an asynchronous halt() upon connect of GDB. Synchronous halt/reset
doesn't really work as what's required to initialize the target might involve a
special monitor sequence for the target in question
- syntax error handling improved(fewer exit()'s)
git-svn-id: svn://svn.berlios.de/openocd/trunk@482 b42882b7-edfa-0310-969c-e2dbd0fdcd60