12 years agoNEWS: more info
David Brownell [Sat, 31 Oct 2009 03:21:31 +0000 (20:21 -0700)]
NEWS: more info

There were a few more changes worth mentioning, including support
for more JTAG adapters, boundary scan improvements, another NAND
driver, and the Win64 stuff.

Signed-off-by: David Brownell <>
12 years agoARM926: fix arm926ejs_mmu() reading from bad pointer
David Brownell [Sat, 31 Oct 2009 00:29:38 +0000 (17:29 -0700)]
ARM926: fix arm926ejs_mmu() reading from bad pointer

I'm suspecting this code can never have worked, since the
original commit (svn #335) in early 2008.

Fix is just copy/paste from another (working) function.

Signed-off-by: David Brownell <>
12 years agobin2char: for win32 set stdin/stdout to binary mode
Spencer Oliver [Fri, 30 Oct 2009 11:59:57 +0000 (11:59 +0000)]
bin2char: for win32 set stdin/stdout to binary mode

Signed-off-by: Spencer Oliver <>
12 years agoSVF: fix checking bit pattern against length
Michael Roth [Thu, 29 Oct 2009 13:24:28 +0000 (14:24 +0100)]
SVF: fix checking bit pattern against length

The code works like follow (N = bit_len):

N -1 %4 2<< -1 ~ (binary)
1 0 0 2 1 1111 1110
2 1 1 4 3 1111 1100
3 2 2 8 7 1111 1000
4 3 3 16 15 1111 0000
5 4 0 2 1 1111 1110
6 5 1 4 3 1111 1100
7 6 2 8 7 1111 1000
8 7 3 16 15 1111 0000
... ... ... ... ... ...

Addresses a bug reported by FangfangLi <>.

[ fix spelling bug too]

Signed-off-by: Michael Roth <>
Cc: FangfangLi <>
Signed-off-by: David Brownell <>
12 years agoOlimex FT2232H JTAG adapters
Dimitar Dimitrov [Thu, 29 Oct 2009 22:39:03 +0000 (15:39 -0700)]
Olimex FT2232H JTAG adapters

Add interface configs for two new high speed JTAG
adapters from Olimex.  They need some other speed
related tweaks to work well at high speed.

Signed-off-by: David Brownell <>
12 years agoXSVF: bugfix handling state paths
David Brownell [Thu, 29 Oct 2009 19:42:41 +0000 (12:42 -0700)]
XSVF: bugfix handling state paths

Implement XSVF support for detailed state path transitions,
by collecting sequences of XSTATE transitions into paths
and then calling pathmove().

It seems that the Xilinx tools want to force state-by-state
transitions instead of relying on the standardized SVF paths.
Like maybe there are XSVF tools not implementing SVF paths,
which are all that we support using svf_statemove().

So from IRPAUSE, instead of just issuing "XSTATE DRPAUSE"
they will issue XSTATES for each intermediate state: first
finally DRPAUSE.  This works now.

Handling of paths that go *through* reset is a trifle dodgey,
but it should be safe.

Tested-by: Wookey <>
Signed-off-by: David Brownell <>
12 years agoBump rc version and add -dev tag.
Zachary T Welch [Thu, 29 Oct 2009 04:23:17 +0000 (21:23 -0700)]
Bump rc version and add -dev tag.

Bump rc package version number: 0.3.0-rc0 -> 0.3.0-rc1
Add '-dev' version tag: 0.3.0-rc1 -> 0.3.0-rc1-dev

12 years agoThe openocd 0.3.0-rc0 release. v0.3.0-rc0
Zachary T Welch [Thu, 29 Oct 2009 04:23:17 +0000 (21:23 -0700)]
The openocd 0.3.0-rc0 release.

Remove '-dev' version tag: 0.3.0-rc0-dev -> 0.3.0-rc0

12 years agoCortex-M3: remove exports and forward decls
David Brownell [Wed, 28 Oct 2009 17:53:11 +0000 (10:53 -0700)]
Cortex-M3: remove exports and forward decls

Unneeded exports cause confusion about the module interfaces.
Make most functions static, and fix some line-too-long issues.
Delete some now-obviously-unused code.

The forward decls are just code clutter; move their references
later, after the normal declarations.  (Or vice versa.)

Signed-off-by: David Brownell <>
12 years agoARM926: remove exports and forward decls
David Brownell [Wed, 28 Oct 2009 17:42:23 +0000 (10:42 -0700)]
ARM926: remove exports and forward decls

Unneeded exports cause confusion about the module interfaces.
Only the Feroceon code builds on this, so only routines it
reuses should be public..  Make most remaining functions
static, and fix some of the line-too-long issues.

The forward decls are just code clutter; move their references
later, after the normal declarations.  Turns out we don't need
even one forward declaration in this file.

Signed-off-by: David Brownell <>
12 years agobugfix: stack corruption loading IHex images
Franck HÉRÉSON [Wed, 28 Oct 2009 17:24:55 +0000 (10:24 -0700)]
bugfix: stack corruption loading IHex images

The Hex parser uses a fixed number of sections.  When the
number of sections in the file is greater than that, the
stack get corrupted and a CHECKSUM ERROR is detected
which is very confusing.

This checks the number of sections read, and increases
IMAGE_MAX_SECTIONS so it works on my file.

Signed-off-by: David Brownell <>
12 years agoAdd script to test the release process.
Zachary T Welch [Thu, 22 Oct 2009 10:04:08 +0000 (03:04 -0700)]
Add script to test the release process.

Runs the script in a freshly cloned repository, charting
one hypothetical future of OpenOCD's lineage.

12 years agoRewrite release script to use GIT.
Zachary T Welch [Wed, 21 Oct 2009 00:11:33 +0000 (17:11 -0700)]
Rewrite release script to use GIT.

Update documentation to reflect GIT methodology.  Rewrite
script to use appropriate process.  With this update, tools/
can be used for producing private release tags on local branches.
The documentation still needs work, but their use for v0.3.x should
help rectify the deficiences.

12 years agoFactor version munging capabilities out of
Zachary T Welch [Wed, 21 Oct 2009 00:12:17 +0000 (17:12 -0700)]
Factor version munging capabilities out of

12 years agoFactor release version functions into new script.
Zachary T Welch [Thu, 22 Oct 2009 08:38:22 +0000 (01:38 -0700)]
Factor release version functions into new script.

12 years agoAdd git2cl from as a submodule in tools/git2cl.
Zachary T Welch [Sat, 24 Oct 2009 10:04:28 +0000 (03:04 -0700)]
Add git2cl from as a submodule in tools/git2cl.

12 years agoImprove .gitignore rules.
Zachary T Welch [Sat, 24 Oct 2009 10:05:41 +0000 (03:05 -0700)]
Improve .gitignore rules.

A '.*' rule prevents the 'git submodule add' from correctly adding the
first submodule, because it creates the .gitmodule file.  This file will
not be added (without -f) result in incomplete submodule commits.
The new rules mask the specific files present in my own build tree, but
additional rules may be needed to hide other types of temporary files.

12 years agoARM: fix single-step of Thumb unconditional branch
Nicolas Pitre [Wed, 28 Oct 2009 01:19:43 +0000 (21:19 -0400)]
ARM: fix single-step of Thumb unconditional branch

Only type 1 branch instruction has a condition code, not type 2.
Currently they're both tagged with ARM_B which doesn't allow for the

Signed-off-by: Nicolas Pitre <>
Signed-off-by: David Brownell <>
12 years agoARM: fix target address when disassembling Thumb BLX
Nicolas Pitre [Wed, 28 Oct 2009 01:19:42 +0000 (21:19 -0400)]
ARM: fix target address when disassembling Thumb BLX

A Thumb BLX instruction is branching to ARM code, and therefore the
first 2 bits of the target address must be cleared.

Signed-off-by: Nicolas Pitre <>
Signed-off-by: David Brownell <>
12 years agoSignalyzer: H2 and H4 support
Oleg Seiljus [Tue, 27 Oct 2009 19:40:24 +0000 (12:40 -0700)]
Signalyzer: H2 and H4 support

This patch includes partial support for these new JTAG adapters.
More complete support will require updates to the libftdi code,
for EEPROM access.

[ fix whitespace, linelen, etc ]

Signed-off-by: David Brownell <>
12 years agoSignalyzer: new config files
Oleg Seiljus [Tue, 27 Oct 2009 18:56:04 +0000 (11:56 -0700)]
Signalyzer: new config files

Add configs for H2, H4, LITE.

Signed-off-by: David Brownell <>
12 years agoARM: fix Thumb mode handling when single-stepping register based branch insns
Nicolas Pitre [Tue, 27 Oct 2009 05:14:34 +0000 (01:14 -0400)]
ARM: fix Thumb mode handling when single-stepping register based branch insns

Currently, OpenOCD is always caching the PC value without the T bit.
This means that assignment to the PC register must clear that bit and set
the processor state to Thumb when it is set.  And when the PC register
value is transferred to another register or stored into memory then
the T bit must be restored.

Discussion: It is arguable if OpenOCd should have preserved the original
PC value which would have greatly simplified this code.  The processor
state could then be obtained simply by getting at bit 0 of the PC.  This
however would require special handling elsewhere instead since the T bit
is not always relevant (like when PC is used with ALU insns or as an index
with some addressing modes).  It is unclear which way would be simpler in
the end.

Signed-off-by: Nicolas Pitre <>
Signed-off-by: David Brownell <>
12 years agoARM: allow proper single stepping of Thumb BL and BLX instructions
Nicolas Pitre [Tue, 27 Oct 2009 05:14:33 +0000 (01:14 -0400)]
ARM: allow proper single stepping of Thumb BL and BLX instructions

Whenever an unconditional branch with the H bits set to 0b10 is met, the
offset must be combined with the offset from the following opcode and not
ignored like it is now.

A comment in evaluate_b_bl_blx_thumb() suggests that the Thumb2 decoder
would be a simpler solution.  That might be true when single-stepping of
Thumb2 code is implemented.  But for now this appears to be the simplest
solution to fix Thumb1 support.

Signed-off-by: Nicolas Pitre <>
Signed-off-by: David Brownell <>
12 years agoARM: call thumb_pass_branch_condition() only for actual branch opcodes
Nicolas Pitre [Tue, 27 Oct 2009 05:14:32 +0000 (01:14 -0400)]
ARM: call thumb_pass_branch_condition() only for actual branch opcodes

Calling it first with every opcodes and then testing if the opcode
was indeed a branch instruction is wasteful and rather strange.
If ever thumb_pass_branch_condition() has side effects (say, like
printing a debugging traces) then the result would be garbage for most
Thumb instructions which have no condition code.

While at it, let's make the nearby code more readable by reducing some of
the redundant brace noise and reworking the error handling construct.

Signed-off-by: Nicolas Pitre <>
Signed-off-by: David Brownell <>
12 years agoft2232: less noise with _DEBUG_JTAG_IO_
David Brownell [Tue, 27 Oct 2009 06:10:40 +0000 (23:10 -0700)]
ft2232: less noise with _DEBUG_JTAG_IO_

Don't log "Yes, I'm *still* in TAP_IDLE" every seven runtest clocks.

12 years agoJTAG: "jtag newtap ..." cleanup
David Brownell [Tue, 27 Oct 2009 06:06:22 +0000 (23:06 -0700)]
JTAG: "jtag newtap ..." cleanup

Get rid of needless variable, improve and shrink diagnostic.

Signed-off-by: David Brownell <>
12 years agoPXA255: force reset config
David Brownell [Tue, 27 Oct 2009 05:59:46 +0000 (22:59 -0700)]
PXA255: force reset config

These chips need both SRST and TRST when debugging,
and SRST doesn't gate JTAG.

12 years agoomap3530: target reset/init improvements
David Brownell [Tue, 27 Oct 2009 05:53:18 +0000 (22:53 -0700)]
omap3530: target reset/init improvements

Now I can issue "reset halt" and have everything act smoothly;
the vector_catch hardware is obviously not kicking in, but the
rest of the reset sequence acts sanely.

 - TAP "setup" event enables the DAP, not omap3_dbginit
   (resolving a chicken/egg bug I noted a while back)
 - Remove stuff from omap3_dbginit which should never be
   used in event handlers
 - Cope better with slow clocking during reset

Also, stop hard-wiring the target name: use the input params in
the standard way, and set up $_TARGETNAME as an output param.

Signed-off-by: David Brownell <>
12 years agoARM ADIv5: "dap info" gets more readable
David Brownell [Mon, 26 Oct 2009 23:02:45 +0000 (16:02 -0700)]
ARM ADIv5: "dap info" gets more readable

Make the "dap info" output more comprehensible:

 - Don't show CIDs unless they're incorrect (only four bits matter)
 - For CoreSight parts, interpret the part type
 - Interpret the part number
 - Show all five PID bytes together
 - Other minor cleanups

Also some whitespace fixes, and shrink a few overlong source lines.

Signed-off-by: David Brownell <>
12 years agoFix incorrect line endings
Spencer Oliver [Mon, 26 Oct 2009 22:39:24 +0000 (22:39 +0000)]
Fix incorrect line endings

Signed-off-by: Spencer Oliver <>
12 years agoMerge branch 'master' of ssh://
David Brownell [Mon, 26 Oct 2009 18:14:28 +0000 (11:14 -0700)]
Merge branch 'master' of ssh://

12 years agoballoon3 board base config
Wookey [Mon, 26 Oct 2009 17:06:05 +0000 (17:06 +0000)]
balloon3 board base config

This is the very basic board config for the balloon3 board cpu JTAG

The rest of the config comprises another 14 .cfg files which I suspect
openocd doesn't really want all of. I'm still not sure how to deal
with this. I'll post another mail/patch to discuss.

Signed-off-by: David Brownell <>
12 years agoSVF: fix parsing hex strings containing leading '0' characters
Michael Roth [Mon, 26 Oct 2009 13:01:42 +0000 (14:01 +0100)]
SVF: fix parsing hex strings containing leading '0' characters

Ignore leading '0' characters on hex strings.  For example a bit
pattern consisting of 6 bits could be written as 3f, 03f or 003f and
so on.

Signed-off-by: Michael Roth <>
Signed-off-by: David Brownell <>
12 years agoIdea for adding watchpoint masks.
Øyvind Harboe [Fri, 23 Oct 2009 14:13:10 +0000 (16:13 +0200)]
Idea for adding watchpoint masks.

12 years agoJTAG: simple autoprobing
David Brownell [Mon, 26 Oct 2009 07:36:03 +0000 (00:36 -0700)]
JTAG: simple autoprobing

This patch adds basic autoprobing support for the JTAG scan chains
which cooperate.  To use, you can invoke OpenOCD with just:

 - interface spec: "-f interface/...cfg"
 - possibly with "-c 'reset_config ...'" for SRST/TRST
 - possibly with "-c 'jtag_khz ...'" for the JTAG clock

Then set up config files matching the reported TAPs.  It doesn't
declare targets ... just TAPs.  So facilities above the JTAG and
SVF/XSVF levels won't be available without a real config; this is
almost purely a way to generate diagnostics.

Autoprobe was successful with most boards I tested, except ones
incorporating C55x DSPs (which don't cooperate with this scheme
for IR length autodetection).  Here's what one multi-TAP chip
reported, with the "Warn:" prefixes removed:

 clock speed 500 kHz
 There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
 AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x2b900f0f ..."
 AUTO auto1.tap - use "jtag newtap auto1 tap -expected-id 0x07926001 ..."
 AUTO auto2.tap - use "jtag newtap auto2 tap -expected-id 0x0b73b02f ..."
 AUTO auto0.tap - use "... -irlen 4"
 AUTO auto1.tap - use "... -irlen 4"
 AUTO auto2.tap - use "... -irlen 6"
 no gdb ports allocated as no target has been specified

The patch tweaks IR setup a bit, so we can represent TAPs with
undeclared IR length.

Signed-off-by: David Brownell <>
12 years agominor fixes to TODO list
David Brownell [Sun, 25 Oct 2009 23:30:30 +0000 (16:30 -0700)]
minor fixes to TODO list

12 years agofix syntax of mww phys.
Øyvind Harboe [Sun, 25 Oct 2009 17:29:17 +0000 (18:29 +0100)]
fix syntax of mww phys.

12 years agocheck if mmu is enabled before using mmu code path
Øyvind Harboe [Sun, 25 Oct 2009 17:24:18 +0000 (18:24 +0100)]
check if mmu is enabled before using mmu code path

12 years agoARM: rename "arm9tdmi vector_catch" to "arm9 ..."
David Brownell [Sun, 25 Oct 2009 21:03:14 +0000 (14:03 -0700)]
ARM: rename "arm9tdmi vector_catch" to "arm9 ..."

And update doc accordingly.  That EmbeddedICE register was
introduced for ARM9TDMI and then carried forward into most
new chips that use EmbeddedICE.

12 years agoJTAG: jtag_tap_init() bugfixes
David Brownell [Sun, 25 Oct 2009 20:07:57 +0000 (13:07 -0700)]
JTAG: jtag_tap_init() bugfixes

Stop allocating three bytes per IR bit, and cope somewhat better
with IR lengths over 32 bits.

Signed-off-by: David Brownell <>
12 years agoxscale: always reload handler after reset
David Brownell [Sun, 25 Oct 2009 20:06:47 +0000 (13:06 -0700)]
xscale: always reload handler after reset

Remove needless debug handler state.

 - "handler_installed" became wrong as soon as the second TRST+SRST
   reset was issued ... so the handler was never reloaded after the
   reset removed it from the mini-icache.

   This fixes the bug where subsequent resets fail on PXA255 (if the
   first one even worked, which is uncommon).  Other XScale chips
   would have problems too; PXA270 seems to have, IXP425 maybe not.

 - "handler_running" was never tested; it's pointless.

Plus a related bugfix: invalidate OpenOCD's ARM register cache on reset.
It was no more valid than the XScale's mini-icache.  (Though ... such
invalidations might be better done in "SRST asserted" callbacks.)

Signed-off-by: David Brownell <>
12 years agovector_catch and watchpoint TODO items.
Øyvind Harboe [Sat, 24 Oct 2009 11:06:13 +0000 (13:06 +0200)]
vector_catch and watchpoint TODO items.

12 years agoarm9tdmi vector_catch: reserved means "don't use"
David Brownell [Fri, 23 Oct 2009 19:28:03 +0000 (12:28 -0700)]
arm9tdmi vector_catch:  reserved means "don't use"

Bit 5 shouldn't be used.  Remove all support for modifying it.
Matches the exception vector table, of course ... more than one
bootloader uses that non-vector to help distinguish valid boot
images from random garbage in flash.

12 years agoImprove help for arm9 vector_catch.
Øyvind Harboe [Fri, 23 Oct 2009 14:02:42 +0000 (16:02 +0200)]
Improve help for arm9 vector_catch.

12 years agoRemove debug output that could cause compile warnings.
Øyvind Harboe [Fri, 23 Oct 2009 11:09:16 +0000 (13:09 +0200)]
Remove debug output that could cause compile warnings.

12 years agomcr/mrc interface work. Implemented for arm926ejs and arm720t. mcr/mrc commands added.
Øyvind Harboe [Fri, 23 Oct 2009 10:38:19 +0000 (12:38 +0200)]
mcr/mrc interface work. Implemented for arm926ejs and arm720t. mcr/mrc commands added.

12 years agoEmbedded ICE version is now dumped with debug_level 1
Øyvind Harboe [Fri, 23 Oct 2009 07:54:43 +0000 (09:54 +0200)]
Embedded ICE version is now dumped with debug_level 1

12 years agojtag: clean up TAP state name handling
David Brownell [Fri, 23 Oct 2009 08:02:22 +0000 (01:02 -0700)]
jtag: clean up TAP state name handling

Some cosmetic cleanup, and switch to a single table mapping
between state names and symbols (vs two routines which only
share that state with difficulty).

Get rid of TAP_NUM_STATES, and some related knowledge about
how TAP numbers are assigned.  Later on, this will help us
get rid of more such hardwired knowlege.

Signed-off-by: David Brownell <>
12 years agoSVF: clean up, mostly for TAP state name handling
David Brownell [Fri, 23 Oct 2009 08:00:32 +0000 (01:00 -0700)]
SVF: clean up, mostly for TAP state name handling

 - Use the name mappings all the other code uses:
    + name-to-state ... needed to add one special case
    + state-to-name
 - Improve various diagnostics:
    + don't complain about a "valid" state when the issue
      is actually that it must be "stable"
    + say which command was affected
 - Misc:
    + make more private data and code be static
    + use public DIM() not private dimof()
    + shorten the affected lines

Re the mappings, this means we're more generous in inputs we
accept, since case won't matter.  Also our output diagnostics
will be a smidgeon more informative, saying "RUN/IDLE" not
just "IDLE" (emphasizing that there can be side effects).

Signed-off-by: David Brownell <>
12 years agoFerocion: fix corruption of r0 when resuming Thumb mode
Nicolas Pitre [Fri, 23 Oct 2009 03:23:44 +0000 (23:23 -0400)]
Ferocion: fix corruption of r0 when resuming Thumb mode

The wrong variable (pc instead of r0) was used.  Furthermore, someone
did cover this error by stupidly silencing the compiler warning that
occurred before a dummy void reference to r0 was added to the code.

Signed-off-by: David Brownell <>
12 years agohave "reg" command print cache names too
David Brownell [Thu, 22 Oct 2009 19:05:04 +0000 (12:05 -0700)]
have "reg" command print cache names too

When dumping over 100 registers (as on most ARM9 + ETM cores),
aid readability by splitting them into logical groups.

Signed-off-by: David Brownell <>
12 years agoETM: rename registers, doc tweaks
David Brownell [Thu, 22 Oct 2009 19:01:27 +0000 (12:01 -0700)]
ETM: rename registers, doc tweaks

The register names are perversely not documented as zero-indexed,
so rename them to match that convention.  Also switch to lowercase
suffixes and infix numbering, matching ETB and EmbeddedICE usage.

Update docs to be a bit more accurate, especially regarding what
the "trigger" event can cause; and to split the issues into a few
more paragraphs, for clarity.

Make "configure" helptext point out that "oocd_trace" is prototype
hardware, not anything "real".

Signed-off-by: David Brownell <>
12 years agodisable ZY1000's UART forwarding test code.
Øyvind Harboe [Thu, 22 Oct 2009 08:22:34 +0000 (10:22 +0200)]
disable ZY1000's UART forwarding test code.

12 years agomww_phys retired. Replaced by generic mww phys in target.c
Øyvind Harboe [Wed, 21 Oct 2009 18:19:47 +0000 (20:19 +0200)]
mww_phys retired. Replaced by generic mww phys in target.c

12 years agovirt2phys is now implemented by target.c globally, retire target specific documentation.
Øyvind Harboe [Wed, 21 Oct 2009 18:16:31 +0000 (20:16 +0200)]
virt2phys is now implemented by target.c globally, retire target specific documentation.

12 years agoretire obsolete mXY_phys commands. Handled by generic memory read/modify commands...
Øyvind Harboe [Wed, 21 Oct 2009 13:36:31 +0000 (15:36 +0200)]
retire obsolete mXY_phys commands. Handled by generic memory read/modify commands and target read/write physical memory callbacks.

12 years agoread/write physical target fn's
Øyvind Harboe [Wed, 21 Oct 2009 13:32:29 +0000 (15:32 +0200)]
read/write physical target fn's

12 years agoadd support for target_read/write_phys_memory callbacks.
Øyvind Harboe [Wed, 21 Oct 2009 12:46:12 +0000 (14:46 +0200)]
add support for target_read/write_phys_memory callbacks.

12 years agoAdded target_read/write_phys_memory() fn's. mdX/mwX commands updated to support phys...
Øyvind Harboe [Wed, 21 Oct 2009 12:45:39 +0000 (14:45 +0200)]
Added target_read/write_phys_memory() fn's. mdX/mwX commands updated to support phys flag to specify bypassing of MMU.

12 years agoMerge branch 'master' of ssh://
Øyvind Harboe [Wed, 21 Oct 2009 11:20:29 +0000 (13:20 +0200)]
Merge branch 'master' of ssh:// into HEAD

12 years agoRetire obsolete and superfluous implementations of virt2phys in each target. This...
Øyvind Harboe [Wed, 21 Oct 2009 11:10:32 +0000 (13:10 +0200)]
Retire obsolete and superfluous implementations of virt2phys in each target. This is done in a polymorphic implementation in target.c

12 years agoRetire obsolete and superfluous implementations of virt2phys in each target. This...
Øyvind Harboe [Wed, 21 Oct 2009 11:10:32 +0000 (13:10 +0200)]
Retire obsolete and superfluous implementations of virt2phys in each target. This is done in a polymorphic implementation in target.c

12 years agoFirst cut at implementing software breakpoints for mmu read only memory
Øyvind Harboe [Wed, 21 Oct 2009 11:07:44 +0000 (13:07 +0200)]
First cut at implementing software breakpoints for mmu read only memory

12 years agoDefined target_write_memory() to be able to handle implementing breakpoints for read...
Øyvind Harboe [Wed, 21 Oct 2009 10:54:41 +0000 (12:54 +0200)]
Defined target_write_memory() to be able to handle implementing breakpoints for read only ram(e.g. MMU write protected.

12 years agoeCos synthetic target updates.
Øyvind Harboe [Wed, 21 Oct 2009 10:02:04 +0000 (12:02 +0200)]
eCos synthetic target updates.

12 years agoXSVF: use svf_add_statemove()
David Brownell [Wed, 21 Oct 2009 03:04:36 +0000 (20:04 -0700)]
XSVF: use svf_add_statemove()

XSVF improvements:

 - Layer parts of XSVF directly over SVF, calling svf_add_statemove()
   instead of expecting jtag_add_statemove() to conform to the SVF/XSVF
   requirements (which it doesn't).

   This should improve XSTATE handling a lot; it removes most users of
   jtag_add_statemove(), and the comments about how it should really do
   what svf_add_statemove() does.

 - Update XSTATE logic to be a closer match to the XSVF spec.  The main
   open issue here is (still) that this implementation doesn't know how
   to build and submit paths from single-state transitions ... but now
   it will report that error case.

 - Update the User's Guide to mention the two utility scripts for
   working with XSVF, and to mention the five extension opcodes.

Handling of state transition paths is, overall, still a mess.  I think
they should all be specified as paths not unlike SVF uses, and compiled
to the bitstrings later ... so that we can actually make sense of the
paths.  (And see the extra clocks, detours through RUN, etc.)

Signed-off-by: David Brownell <>
12 years agoRemoved unused interface_jtag_set_end_state and wrote down some notes on TCP/IP clien...
Øyvind Harboe [Tue, 20 Oct 2009 13:54:53 +0000 (15:54 +0200)]
Removed unused interface_jtag_set_end_state and wrote down some notes on TCP/IP client/server scheme.

12 years agoAdded the faux flash driver and target. Used for testing.
Øyvind Harboe [Tue, 20 Oct 2009 10:22:55 +0000 (12:22 +0200)]
Added the faux flash driver and target. Used for testing.

12 years agoAdded 'unlock' option to flash write_image
Øyvind Harboe [Tue, 20 Oct 2009 10:03:36 +0000 (12:03 +0200)]
Added 'unlock' option to flash write_image

12 years agoMore svn to git version string fixes.
Øyvind Harboe [Tue, 20 Oct 2009 07:46:23 +0000 (09:46 +0200)]
More svn to git version string fixes.

12 years agoSVF: better spec conformance for STATE switch
David Brownell [Tue, 20 Oct 2009 06:33:08 +0000 (23:33 -0700)]
SVF: better spec conformance for STATE switch

Don't add extra TCK in current state; exit from RESET had four extras.
Only IDLE --> IDLE needs such an extra clock.  (At least one TCK must
be issued.)

Allow entry to RESET; SVF allows it, so must we (despite those entries
being commented out of the statemove table).

When entering RESET, always use TLR ... we might end up with extra clocks
in reset that way, which is harmless, but we'll never end up in any other
state than RESET, which is useful paranoia.

Signed-off-by: David Brownell <>
12 years agodavinci: add watchdog reset method
David Brownell [Tue, 20 Oct 2009 05:50:51 +0000 (22:50 -0700)]
davinci: add watchdog reset method

Lightly tested on dm365.

Signed-off-by: David Brownell <>
12 years agojtag_add_statemove() always uses TLR to get to RESET
David Brownell [Tue, 20 Oct 2009 05:50:51 +0000 (22:50 -0700)]
jtag_add_statemove() always uses TLR to get to RESET

As decided a while back, this isn't a transition we want to chance.
Whenever someone wants to got to RESET, force it.

Signed-off-by: David Brownell <>
12 years agoSVF/XSVF: comment and whitespace fixes
David Brownell [Tue, 20 Oct 2009 05:50:51 +0000 (22:50 -0700)]
SVF/XSVF: comment and whitespace fixes

SVF: comment the predefined/default paths; make them static const

SVF, XSVF: whitespace fixes, mostly so copyrights display sanely

Signed-off-by: David Brownell <>
12 years agoImprove Makefile rules for XScale debug handler; fixes 'make distcheck'.
Zachary T Welch [Tue, 20 Oct 2009 02:59:02 +0000 (19:59 -0700)]
Improve Makefile rules for XScale debug handler; fixes 'make distcheck'.

12 years agoMinGW: always use "-D__USE_MINGW_ANSI_STDIO"
Redirect 'Slash' NIL [Tue, 20 Oct 2009 00:55:40 +0000 (17:55 -0700)]
MinGW: always use "-D__USE_MINGW_ANSI_STDIO"

This is unfortunately needed to make stdio work like OpenOCD expects -- matching
the ANSI-C standard, instead of MS-Windows.

I tested it in both MinGW-W64 on Vista 64 and MinGW-W32 on XP, and I don't
see any adverse effects to enabling it for all MinGW versions.

12 years agoMinGW: use WinSock2
Redirect 'Slash' NIL [Tue, 20 Oct 2009 00:48:19 +0000 (17:48 -0700)]
MinGW: use WinSock2

After reading a bit further, it appears that ws2_32 (Windows Sockets 2)
is included in all versions of Windows and backwards compatible with
wsock32, at least according to

Only Win95 seems to require a manual installation; is not a big deal.

So I think we can drop this whole business of detecting 64 bit MinGW and
just use -lws2_32 for all MinGW platforms.

12 years agoDoc: jtag_init must validate scan chain too
David Brownell [Mon, 19 Oct 2009 21:45:43 +0000 (14:45 -0700)]
Doc: jtag_init must validate scan chain too

Same requirement as like init_reset, and for the same reason:
we need to start with a known and working state.

12 years agofix single step of bx instruction going into Thumb mode
Nicolas Pitre [Mon, 19 Oct 2009 19:49:46 +0000 (15:49 -0400)]
fix single step of bx instruction going into Thumb mode

Without this fix, the following code cannot be single stepped:

add ip, pc, #1
bx ip
[thumb code here]

12 years agoIgnore openocd.exe for "git status"
David Brownell [Mon, 19 Oct 2009 16:53:45 +0000 (09:53 -0700)]
Ignore openocd.exe for "git status"

12 years agocorrective fix for MinGW GNU C99 printf compliance
Redirect 'Slash' NIL [Mon, 19 Oct 2009 16:49:34 +0000 (09:49 -0700)]
corrective fix for MinGW GNU C99 printf compliance

Compilation on cygwin, using gcc v3 with option -mno-cygwin,
currently produces a large number of the following warnings:

   warning: `gnu_printf' is an unrecognized format function type

These have been introduced with the recent MinGW GNU C99 printf
compliance patch, as gnu_printf was only introduced with gcc v4.4
and is not recognized with earlier versions.

The attached fix adds gcc version detection to the previous patch
to avoid the problem.

12 years agoSync with official Jim Tcl repository.
oyvind [Mon, 19 Oct 2009 13:16:42 +0000 (15:16 +0200)]
Sync with official Jim Tcl repository.

12 years agoSwitch from svn to git version string handling.
oyvind [Mon, 19 Oct 2009 13:08:52 +0000 (15:08 +0200)]
Switch from svn to git version string handling.

12 years agoSDRAM and clock configuration for the SAM9-L9260 board from Olimex
Dean Glazeski [Sun, 18 Oct 2009 20:26:38 +0000 (22:26 +0200)]
SDRAM and clock configuration for the SAM9-L9260 board from Olimex

12 years agosafer conversion to HANDLER on MinGW-W64
Redirect 'Slash' NIL [Sun, 18 Oct 2009 05:18:38 +0000 (22:18 -0700)]
safer conversion to HANDLER on MinGW-W64

Assign to "intptr_t", which on some versions of MS-Windows
will widen the variable; then cast to HANDLE.

12 years agoIgnore two more generated files
David Brownell [Sun, 18 Oct 2009 00:50:23 +0000 (17:50 -0700)]
Ignore two more generated files

On Windows the name is "bin2char.exe".
All operating systems now have "xscale_handler.h".

12 years agoMore MinGW C99 printf compliance
Redirect 'Slash' NIL [Sun, 18 Oct 2009 00:47:52 +0000 (17:47 -0700)]
More MinGW C99 printf compliance

Passing "--std=gun99" is unfortunately not sufficient to make current
MinGW compilers conform with respect to checking printf format strings.
(The C runtime seems not to have problems.)

Fix by using a "gnu_printf" format specifier not "printf".

12 years agojim-eventloop for MinGW-w64
Redirect \"Slash\" NIL [Sat, 17 Oct 2009 19:15:13 +0000 (12:15 -0700)]
jim-eventloop for MinGW-w64

Use JIM_WIDE_MODIFIER for the sscanf format, and apply it for MINGW32 as
well as other Windows environments.  (Microsoft doesn't conform to the
C99 standard, and uses "%I64d" not "%lld" for "long long".)

NB: __MINGW32__ should work on both w32 and w64,.

12 years agobuild tweak for bin2char
David Brownell [Sat, 17 Oct 2009 19:14:19 +0000 (12:14 -0700)]
build tweak for bin2char

Work better when building outside the source tree.

Signed-off-by: David Brownell <>
12 years agoxscale: better fix for debug_handler.bin
David Brownell [Fri, 16 Oct 2009 20:52:40 +0000 (13:52 -0700)]
xscale: better fix for debug_handler.bin

Generate a C struct with the data, and use that, instead of an
assembly language file.  The assembly language causes issues on
Darwin and MS-Windows, which don't necessarily use GNU AS; or
if they do, don't necessarily use its ELF syntax.

It's also better in two other ways:  fewer global symbols; and
the init-time size check gets optimized away at compile time.
(Unless it fails, in which case bigger chunks of the file vanish.)

Signed-off-by: David Brownell <>
12 years agoanother portability update
David Brownell [Thu, 15 Oct 2009 03:24:31 +0000 (20:24 -0700)]
another portability update

Just use "%p" instead of consing up some integral type for pointer printf.

Signed-off-by: David Brownell <>
12 years agoportability updates
David Brownell [Thu, 15 Oct 2009 03:04:33 +0000 (20:04 -0700)]
portability updates

Based on some patches from <>
for preliminary Win64 compilation.  More such updates are
needed, but they need work.  Compile tested on 64 and 32 bit
Linuxes, and Cygwin.

Signed-off-by: David Brownell <>
12 years agodoc updates to match "help" better
David Brownell [Wed, 14 Oct 2009 22:18:00 +0000 (15:18 -0700)]
doc updates to match "help" better

This makes the documentation a closer match to "help" output:

 - "pathmove" somehow was not documented in the User's Guide

 - "jtag_nsrst_assert_width" and "jtag_ntrst_assert_width"
   are new; both needed descriptions.

 - Removed two undocumented and fairly useless script mechanisms:
    * production/production_info/production_test ... using it,
      requires replacing everything; so having it adds no value.
    * cpu ... way out of date; hopeless to keep that current

Note that anyone using that "production" stuff already defines
their own procedures, and can keep using them with no change.

Signed-off-by: David Brownell <>
12 years agoFw: [PATCH] OpenRD board configuration
Wookey [Wed, 14 Oct 2009 13:27:41 +0000 (14:27 +0100)]
Fw: [PATCH] OpenRD board configuration

Ofrwarded from Ron, who's not subscribed.

----- Forwarded message from Ron <> -----

From: Ron <>
Date: Wed, 14 Oct 2009 04:50:17 +1030
Subject: [PATCH] OpenRD board configuration
X-Spam-Status: No, score=-3.6 required=4.5 tests=BAYES_00,RCVD_IN_DNSWL_LOW
autolearn=ham version=3.2.5

This piggybacks on the 'sheevaplug' layout which uses the same Kirkwood SoC.

Signed-off-by: Ron Lee <>
12 years agoS29WS-N CFI query fix is to try 0x555 if 0x55 fails.
Øyvind Harboe [Wed, 14 Oct 2009 10:01:52 +0000 (12:01 +0200)]
S29WS-N CFI query fix is to try 0x555 if 0x55 fails.

12 years agoWork in progress on arm11 reset. Assert srst.
Øyvind Harboe [Wed, 14 Oct 2009 09:14:04 +0000 (11:14 +0200)]
Work in progress on arm11 reset. Assert srst.

12 years agoiMX target config script's ported from Freescale BSP.
Øyvind Harboe [Wed, 14 Oct 2009 08:34:41 +0000 (10:34 +0200)]
iMX target config script's ported from Freescale BSP.

12 years agoFix problems building xscale_debug.S
David Brownell [Wed, 14 Oct 2009 07:32:42 +0000 (09:32 +0200)]
Fix problems building xscale_debug.S

12 years agoomap2420.cfg updates
David Brownell [Wed, 14 Oct 2009 09:00:34 +0000 (02:00 -0700)]
omap2420.cfg updates

Remove ircapture/mask attributes.  Add "srst_nogate".

Signed-off-by: David Brownell <>
12 years agofix detection of PLD instructions
Lennert Buytenhek [Tue, 13 Oct 2009 20:48:18 +0000 (22:48 +0200)]
fix detection of PLD instructions

Signed-off-by: Lennert Buytenhek <>
Signed-off-by: David Brownell <>

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 (RSA)