openocd.git
11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Thu, 18 Jun 2009 00:29:45 +0000 (00:29 +0000)]
David Brownell <david-b@pacbell.net>:

Clean up the PLD files:

 - Get rid of some extraneous whitespace
 - Make various functions static
 - Wrap overlong lines

git-svn-id: svn://svn.berlios.de/openocd/trunk@2272 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Thu, 18 Jun 2009 00:29:39 +0000 (00:29 +0000)]
David Brownell <david-b@pacbell.net>:

Various bits of cleanup, mostly to match the style hints
I just got around to writing up.

 - Various @cindex improvements

 - Cross reference the command line options in a few spots,
   notably for @command{debug_level}

 - Clean the config file guidelines a bit:
    * They're for all users, not just integrators
    * Reference the interface config chapter
    * Don't emphasize command line usage here
    * Tweak board and target config introductory text

Plus two minor bits of cleanup:  remove most date references,
and refer to the reader as "you" not "the user".

git-svn-id: svn://svn.berlios.de/openocd/trunk@2271 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Thu, 18 Jun 2009 00:29:33 +0000 (00:29 +0000)]
David Brownell <david-b@pacbell.net>:

Take a whack at providing some texinfo style docs.
Mostly it's just basic "how 2 write sane dox" stuff.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2270 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFreddie Chopin <freddie_chopin@op.pl> makes lpc2478.cfg file more "standard" and...
oharboe [Wed, 17 Jun 2009 20:49:55 +0000 (20:49 +0000)]
Freddie Chopin <freddie_chopin@op.pl> makes lpc2478.cfg file more "standard" and - what is most important - correct (it's working [; ). I've also added some comments which try to clarify the meaning of all that's in there.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2269 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agodummy driver now works under eCos
oharboe [Wed, 17 Jun 2009 10:51:34 +0000 (10:51 +0000)]
dummy driver now works under eCos

git-svn-id: svn://svn.berlios.de/openocd/trunk@2268 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Wed, 17 Jun 2009 06:44:29 +0000 (06:44 +0000)]
David Brownell <david-b@pacbell.net>:

Update the Beagle setup:

 - OMAP3530 updates:
    * split ICEpick TAP enable support to its own file, for
      reuse and eventually for storing other utility code
      like emulation reset
    * clean up, including labeling the tap as for DAP not
      for the Cortex-A8 and making endianness non-variable
    * add a few FIXMEs

 - BeagleBoard cleanup:  there's no SRST, "endstate" is gone, etc

I'm not sure I'd say it's further than "barely limping" just yet.
Key issues remain lack of Cortex-A8 support, and more complete
support for resetting.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2267 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Wed, 17 Jun 2009 06:41:05 +0000 (06:41 +0000)]
David Brownell <david-b@pacbell.net>:

Fix for a goofy "board" config ... reuse target/pxa270.cfg
instead of using a private copy.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2266 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Wed, 17 Jun 2009 06:40:58 +0000 (06:40 +0000)]
David Brownell <david-b@pacbell.net>:

DM6446 config updates:

 - List two more TAPs, as disabled, mostly for doc purposes
 - Included basic ICEpick support, still disabled by default
 - Shorten line lengths
 - Use $_TARGETNAME to configure the ETM and ETB
 - This ARM core don't support endianness overriding

For now, boards that can't jumper EMU0/EMU1 will need to tweak
a variable's setting.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2265 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Wed, 17 Jun 2009 06:40:50 +0000 (06:40 +0000)]
David Brownell <david-b@pacbell.net>:

Let jtag_call_event_callbacks() behave when the callback removes itself.
Oddly, this crashed on x86_32 but not x86_64.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2264 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Wed, 17 Jun 2009 06:40:39 +0000 (06:40 +0000)]
David Brownell <david-b@pacbell.net>:

Fix parsing bugs for "$target_name mww addr data [count]" ... it was
always requiring the count, instead of just defaulting it to one.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2263 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFix compilation for Ubuntu 9.04 on x86-64 when using --enable-httpd.
zwelch [Wed, 17 Jun 2009 06:10:10 +0000 (06:10 +0000)]
Fix compilation for Ubuntu 9.04 on x86-64 when using --enable-httpd.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2262 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSet svn:eol-style native on ZY1000 minidriver header file.
zwelch [Wed, 17 Jun 2009 01:59:59 +0000 (01:59 +0000)]
Set svn:eol-style native on ZY1000 minidriver header file.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2261 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoEnsure range errors are reported only when errno indicates one occurred.
zwelch [Wed, 17 Jun 2009 00:31:06 +0000 (00:31 +0000)]
Ensure range errors are reported only when errno indicates one occurred.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2260 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoChange parse_type macros to be sed-friendly.
zwelch [Wed, 17 Jun 2009 00:30:52 +0000 (00:30 +0000)]
Change parse_type macros to be sed-friendly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2259 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoAdd argument parsing errors in command.h, use in parse_type routines.
zwelch [Wed, 17 Jun 2009 00:30:44 +0000 (00:30 +0000)]
Add argument parsing errors in command.h, use in parse_type routines.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2258 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoMove definition of parse_type helpers to command.c:
zwelch [Wed, 17 Jun 2009 00:30:36 +0000 (00:30 +0000)]
Move definition of parse_type helpers to command.c:
- Add declarations in header file.
- Improve wrapper implementations to check for underflow.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2257 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoConvert core parse_type implementations to check for underflow errors.
zwelch [Wed, 17 Jun 2009 00:30:29 +0000 (00:30 +0000)]
Convert core parse_type implementations to check for underflow errors.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2256 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoAdd improved support for parsing signed integers.
zwelch [Wed, 17 Jun 2009 00:30:20 +0000 (00:30 +0000)]
Add improved support for parsing signed integers.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2255 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoUpdate parse_type macro definitions to allow re-use with signed types.
zwelch [Wed, 17 Jun 2009 00:30:11 +0000 (00:30 +0000)]
Update parse_type macro definitions to allow re-use with signed types.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2254 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove definitions of parse_ulong and parse_ullong:
zwelch [Wed, 17 Jun 2009 00:29:56 +0000 (00:29 +0000)]
Improve definitions of parse_ulong and parse_ullong:
- Use macro to eliminate duplicate body definitions.
- Rename okay as is_okay; add parenthesis to help "clarify" logic.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2253 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 12:17:26 +0000 (12:17 +0000)]
David Brownell <david-b@pacbell.net>:

Fix a bug preventing ICEpick "enable that TAP" code from working:
the "runtest" command wrongly finished with a JTAG reset, discarding
the work the TAP enable handler just finished!  Instead, JTAG should
stay in RUN/IDLE state.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2252 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 12:17:18 +0000 (12:17 +0000)]
David Brownell <david-b@pacbell.net>:

Extend the internal JTAG event handlers to cover enable/disable,
and use those events to make sure that targets get "examined" if
they were disabled when the scan chain was first set up:

 - Remove "enum jtag_tap_event", merge with "enum jtag_event",
   so C code can now listen for TAP enable/disable events.

 - Report those events so they can trigger callbacks.

 - During startup, make target_examine() register a handler to
   catch ENABLE events for any then-disabled targets.

This fixes bugs like "can't halt target after enabling its TAP".

One class of unresolved bugs:  if the target has an ETM hooked
up to an ETB, nothing activates the ETB.  But starting up the
ETM without access to the ETB registers fails...

git-svn-id: svn://svn.berlios.de/openocd/trunk@2251 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 12:17:12 +0000 (12:17 +0000)]
David Brownell <david-b@pacbell.net>:

Tighten error handling on TAP enable/disable paths a bit:

 - Don't enable/disable unless it's necessary.  Those event
   handlers could have nasty side effects...

 - Don't *succeed* enables/disables if there was no code which
   could have implemented that action.  This prevents bugs like
   wrongly acting as if the scan chain changed.

 - Minor whitespace cleanup in enable/disable command code.

The big problem is still the lack of code to verify scan chains
were actually updated as requested; this adds a comment on that.
I suspect the best we can do near term will be to verify IDCODE.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2250 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:23:32 +0000 (00:23 +0000)]
David Brownell <david-b@pacbell.net>:

Fix bug in a warning.  It warned about "huge IRlength" for an
older JRC with a two bit instruction register ... wrong!

git-svn-id: svn://svn.berlios.de/openocd/trunk@2249 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:23:22 +0000 (00:23 +0000)]
David Brownell <david-b@pacbell.net>:

Distributing FTDI's "ftd2xx" library with OpenOCD violates the
OpenOCD license (GNU GPLv2 with no exceptions).

Make that clear where that build option is presented, and don't
describe the FTDI libraries as an option for any packager.  (It's
fine for personal use, of course.)

Plus some related clarifications:  libftdi version 0.16 for the
new FT2232H chips (for RTCK and high speed USB); the Amontec
drivers are just ftd2xx variants.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2248 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:23:13 +0000 (00:23 +0000)]
David Brownell <david-b@pacbell.net>:

Fix some polling issues:

 - Don't background-poll disabled TAPs ... this was just a bug
   waiting to happen.  (And then it happened!)

 - Don't fail command line polls of disabled taps; that's not any
   kind of error, it's just that you can't do much.  But do show
   that tap-disabled status.

 - Spell "continuous" correctly in the variable name.  ;)

Not resolved by this patch:  the need for an interlock whereby
other code (like the JTAG layer) can block all other access to
the JTAG layer, e.g. while enabling or disabling TAPs.  And
that interlock needs to be timer-safe...

git-svn-id: svn://svn.berlios.de/openocd/trunk@2247 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:23:00 +0000 (00:23 +0000)]
David Brownell <david-b@pacbell.net>:

Doc update:  say "jtag newtap ... -disable" records the
state after exiting the RESET state, matching the only
implementation we're working with so far (TI ICEpick-C).

Matching code updates.  Now we can be sure that the
"enabled" flag value is correct after JTAG resets.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2246 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:22:52 +0000 (00:22 +0000)]
David Brownell <david-b@pacbell.net>:

Fix a memory leak in jtag_tap_free():  unregister the event
callback too.

Also fix the associated conceptual bug in unregistering JTAG
event callbacks:  since the same callback procedure is used
many times with different callback data (a TAP handle), that
data must be considered when unregistering any callback.

This could fix some crashes after TAP registration errors,
by making sure the reset event handler doesn't scribble over
memory that's now used by something else.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2245 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:22:40 +0000 (00:22 +0000)]
David Brownell <david-b@pacbell.net>:

Minor jtag cleanup:

 - remove hidden assumption about JTAG event numbering
 - move function declarations to a header
 - some end'o'line whitespace
 - use "calloc" not "malloc + memset"

git-svn-id: svn://svn.berlios.de/openocd/trunk@2244 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Tue, 16 Jun 2009 00:22:12 +0000 (00:22 +0000)]
David Brownell <david-b@pacbell.net>:

Minor updates to the text about reset configuration:

 - Mention a new point that it interacts with JTAG routers;

 - Talk about a "user" config file not a "system" one;

 - Remove text from the "reset_config" description; instead,
   cross-reference the more extensive text earlier.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2243 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Mon, 15 Jun 2009 23:54:09 +0000 (23:54 +0000)]
David Brownell <david-b@pacbell.net>:

Add another board ... OMAP2420 "H4" board.  This won't be very widely
used with OpenOCD, but with mainline support in both U-Boot and Linux
it at least makes for a more complete set (and another testcase).

This is incomplete support in several respects.  The ARM11 support is
not very deep yet; most registers aren't available, and the ETM can't
be hooked up.  Plus, there's no script for OMAP-specific stuff like
setting up the SDRAM controller.  Eventually the same NAND controller
driver should work with OMAP2 and OMAP3.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2242 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agofix eCos build problems w/latest parse_ulong() stuff
oharboe [Mon, 15 Jun 2009 14:22:13 +0000 (14:22 +0000)]
fix eCos build problems w/latest parse_ulong() stuff

git-svn-id: svn://svn.berlios.de/openocd/trunk@2241 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Sat, 13 Jun 2009 08:38:57 +0000 (08:38 +0000)]
David Brownell <david-b@pacbell.net>:

OpenOCD doesn't actually *need* to be keeping all TCP ports
active ... creating security issues in some network configs.

Instead, let config file specify e.g. "tcl_port 0" (or gdb_port,
telnet_port) to disable that particular remote access method.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2240 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFactor load_image argument parsing to parse_load_image_command_args:
zwelch [Sat, 13 Jun 2009 00:34:31 +0000 (00:34 +0000)]
Factor load_image argument parsing to parse_load_image_command_args:
- Make fast_load_image use the helper coverage the standard load_image.
- Improve whitespace in the moved lines.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2239 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_profile_command argument parsing:
zwelch [Sat, 13 Jun 2009 00:34:24 +0000 (00:34 +0000)]
Improve handle_profile_command argument parsing:
- Use parse_uint to ensure timeout value parses properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2238 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_virt2phys_command argument parsing:
zwelch [Sat, 13 Jun 2009 00:34:17 +0000 (00:34 +0000)]
Improve handle_virt2phys_command argument parsing:
- Use parse_u32 to ensure virtual address parses properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2237 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoCleanup and improve handle_wp_command and handle_rwp_command:
zwelch [Sat, 13 Jun 2009 00:34:10 +0000 (00:34 +0000)]
Cleanup and improve handle_wp_command and handle_rwp_command:
- Simplify argument parsing logic using switch statement.
- Use parse_u32 to ensure all values parse properly.
- Return syntax error when mode argument fails to parse.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2236 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove and simplify handle_bp_command and handle_rbp_command:
zwelch [Sat, 13 Jun 2009 00:34:03 +0000 (00:34 +0000)]
Improve and simplify handle_bp_command and handle_rbp_command:
- Bug fix: return syntax error if remove called without one argument.
- Use parse_u32 to ensure address and length arguments parse properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2235 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_verify_image_command_internal command argument handling:
zwelch [Sat, 13 Jun 2009 00:33:55 +0000 (00:33 +0000)]
Improve handle_verify_image_command_internal command argument handling:
- Use parse_u32 to ensure address parses properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2234 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_dump_image_command argument parsing:
zwelch [Sat, 13 Jun 2009 00:33:48 +0000 (00:33 +0000)]
Improve handle_dump_image_command argument parsing:
- Use parse_u32 to ensure address and size parse properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2233 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_load_image_command argument parsing:
zwelch [Sat, 13 Jun 2009 00:33:42 +0000 (00:33 +0000)]
Improve handle_load_image_command argument parsing:
- Use parse_u32 to ensure base/min/max addresses parse properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2232 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_mw_command argument handling:
zwelch [Sat, 13 Jun 2009 00:33:34 +0000 (00:33 +0000)]
Improve handle_mw_command argument handling:
- Change: All local variable types are now unsigned.
- Use parse_u32 to ensure address and value parse properly.
- Use parse_uint to ensure count parses properly.
- Move variables to location of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2231 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_md_command argument handling:
zwelch [Sat, 13 Jun 2009 00:33:25 +0000 (00:33 +0000)]
Improve handle_md_command argument handling:
- Use parse_u32 and parse_uint for address and count, respectively.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2230 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoUse parse_u32 in handle_resume_command and handle_step_command.
zwelch [Sat, 13 Jun 2009 00:33:18 +0000 (00:33 +0000)]
Use parse_u32 in handle_resume_command and handle_step_command.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2229 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoCleanup and improve handle_halt_command:
zwelch [Sat, 13 Jun 2009 00:33:11 +0000 (00:33 +0000)]
Cleanup and improve handle_halt_command:
- Make argument check use parse_uint to ensure value parses properly.
- Move variable declarations to location of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2228 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoCleanup and fi handle_wait_halt_command:
zwelch [Sat, 13 Jun 2009 00:33:01 +0000 (00:33 +0000)]
Cleanup and fi handle_wait_halt_command:
- Use unsigned type for delay variable.
- Use parse_uint to ensure delay argument parses properly.
- Bug fix: Return syntax error if more than one argument is given.
- Bug fix: Return syntax error when argument fails to parse.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2227 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoUse parse_uint in handle_reg_command to ensure reg number parses properly.
zwelch [Sat, 13 Jun 2009 00:32:54 +0000 (00:32 +0000)]
Use parse_uint in handle_reg_command to ensure reg number parses properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2226 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoUse parse_uint in get_target to ensure target id is parsed properly.
zwelch [Sat, 13 Jun 2009 00:32:40 +0000 (00:32 +0000)]
Use parse_uint in get_target to ensure target id is parsed properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2225 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Fri, 12 Jun 2009 22:06:02 +0000 (22:06 +0000)]
David Brownell <david-b@pacbell.net>:

Currently the "debug_level 3" command tracing ignores commands
that could return values to TCL scripts (by plugging in to a
slightly lower level of the interpreter stack).

Fix that by abstracting the tracing command and starting to
make some of those previously-untraced commands use this new
mechanism.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2224 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Fri, 12 Jun 2009 21:53:17 +0000 (21:53 +0000)]
David Brownell <david-b@pacbell.net>:

Move the discussion of the "scan_chain" command up to go with
the presentation of that topic in the TAP declaration chapter.

This makes the presentation of the TAP and target lists be
parallel, which will be something of an aid to understanding
that they are different (and how).

git-svn-id: svn://svn.berlios.de/openocd/trunk@2223 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Fri, 12 Jun 2009 21:43:53 +0000 (21:43 +0000)]
David Brownell <david-b@pacbell.net>:

Partial fix to the "long IR length" problems.

 - Current code could handle up to 32 bit IR lengths with
   full functionality, if it didn't just reject may of them
   out of hand.  So only reject clear errors, where the IR
   mask (or capture instruction) needs more than IrLen bits.

 - Longer IR lengths can only be handled in BYPASS mode
   for now.  Example:  TI's DSPs use 38-bit IR lengths.
   So we can't issue their IDCODE instructions...

A more complete fix would be able to issue longer instructions;
or minimally, would fail cleanly for the non-BYPASS case.

Note that this *could* make some currently broken scripts fail,
since the previous code accepted garbage values so long as
they didn't use more than 16 bits.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2222 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agounsik Kim <donari75@gmail.com>:
zwelch [Fri, 12 Jun 2009 21:31:11 +0000 (21:31 +0000)]
unsik Kim <donari75@gmail.com>:

Improve error handling in mflash driver.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2221 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFurther cleanup to MIPS target read/write memory function:
zwelch [Fri, 12 Jun 2009 04:14:28 +0000 (04:14 +0000)]
Further cleanup to MIPS target read/write memory function:
- Move the mips32_..._read_mem calls to top-level of read_mem function.
- Change: Only perform mips_m4k_read_mem conversion when retval == ERROR_OK.
   - Prevents pointless conversions of bogus read values after failures.
- Eliminate retval variable from mips_m4k_write_mem; return directly.
- Move declaration of retval variable to point of first use.
- Remove the now redundant switch statements testing size:
  - argument sanitizing already covers these cases.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2220 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Claffey <dnclaffey@gmail.com>:
zwelch [Fri, 12 Jun 2009 04:14:18 +0000 (04:14 +0000)]
David Claffey <dnclaffey@gmail.com>:

This patch helps fix MIPS big endian (elf32-tradbigmips) targets.
If "-endian big" is not set in target create, the endianess defaults to
little.  mw and md commands will still work, but binary file loads will
have the incorrect word order loaded into memory.

The EJTAG processor access data register (PrAcc) is little endian
regardless of the CPU endianness; it is always loaded LSB first. This
is confirmed by the fact that mips_ejtag_drscan_32() uses buf_set_u32()
to load the scan field; buf_set_u32() is a little-endian formatter. For
big endian targets, data buffers have to be modified so the LSB of each
u32 or u16 is at the lower (first) memory location.  If the drscan
out_value word order is set using buf_set_u32() then it makes sense to
also fixup the in_value with buf_get_u32(); a symmetry argument. This
has no affect on little endian hosts.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2219 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFix unitialized use of cur_speed in handle_jtag_khz_command:
zwelch [Fri, 12 Jun 2009 01:41:07 +0000 (01:41 +0000)]
Fix unitialized use of cur_speed in handle_jtag_khz_command:
- Use the default KHz speed setting, in case interface is not initialized.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2218 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove vsllink command argument handling:
zwelch [Fri, 12 Jun 2009 01:41:00 +0000 (01:41 +0000)]
Improve vsllink command argument handling:
- Bug fix: Always clear high bit of USB bulk out endpoint.
- Use parse_ulong helpers to ensure numeric strings are parsed properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2217 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_runtest_command:
zwelch [Fri, 12 Jun 2009 01:40:54 +0000 (01:40 +0000)]
Improve handle_runtest_command:
- Use parse_uint helper to ensure argument is parsed properly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2216 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove VID/PID command argument handling in FTDI driver:
zwelch [Fri, 12 Jun 2009 01:40:48 +0000 (01:40 +0000)]
Improve VID/PID command argument handling in FTDI driver:
- Bug fix: Return a syntax error when less than two arguments are given.
- Bug fix: Use parse_u16 helper to ensure vales are parsed properly.
- Simplify loop termination logic by ensuring argc is always even.
- Move loop induction variable declaration to where it is used.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2215 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove handle_irscan_command:
zwelch [Fri, 12 Jun 2009 01:40:42 +0000 (01:40 +0000)]
Improve handle_irscan_command:
- Use parse_u32 helper to ensure scan values are parsed properly.
- Clear the fields buffer to ensure partial cleanup occur correctly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2214 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove JTAG reset, speed, and khz handlers to use parse_uint helper.
zwelch [Fri, 12 Jun 2009 01:40:35 +0000 (01:40 +0000)]
Improve JTAG reset, speed, and khz handlers to use parse_uint helper.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2213 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoUse parse_uint helper to replace strtoul call in jtag_tap_by_string.
zwelch [Fri, 12 Jun 2009 01:40:29 +0000 (01:40 +0000)]
Use parse_uint helper to replace strtoul call in jtag_tap_by_string.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2212 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and improve gw16012_handle_parport_command:
zwelch [Fri, 12 Jun 2009 01:40:23 +0000 (01:40 +0000)]
Simplify and improve gw16012_handle_parport_command:
- Show the port number to the user when asking for it or setting it.
- Print an error if the parport_port has already been set.
- Use parse_u16 helper to ensure the parport_port string parses correctly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2211 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and improve amt_jtagaccel_handle_parport_port_command:
zwelch [Fri, 12 Jun 2009 01:40:17 +0000 (01:40 +0000)]
Simplify and improve amt_jtagaccel_handle_parport_port_command:
- Show the port number to the user when asking for it or setting it.
- Print an error if the amt_jtagaccel_port has already been set.
- Use parse_u16 helper to ensure amt_jtagaccel_port string parses correctly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2210 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and improve parport_handle_parport_port_command:
zwelch [Fri, 12 Jun 2009 01:40:03 +0000 (01:40 +0000)]
Simplify and improve parport_handle_parport_port_command:
- Show the port number to the user when asking for it or setting it.
- Print an error if the parport_port has already been set.
- Use parse_u16 helper to ensure the parport_port string parses correctly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2209 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and improve handle_debug_level_comamnd:
zwelch [Fri, 12 Jun 2009 01:39:57 +0000 (01:39 +0000)]
Simplify and improve handle_debug_level_comamnd:
- Bug fix: Return a syntax error if more than one argument is given.
- Bug fix: Use new parse_uint helper ensure debug_level parses correctly.
- Change: Display the debug_level after it has been set.
- Simplify bounds checking of debug_level.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2208 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify handle_sleep_command:
zwelch [Fri, 12 Jun 2009 01:39:51 +0000 (01:39 +0000)]
Simplify handle_sleep_command:
- Use new parse_ulong to ensure duration parses as a valid number.
- Rework logic to improve readability and seliminate uperfluous braces.
- Change whitespace to improve style.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2207 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoAdd new parse_uinttype wrappers for strtoul in src/helper/command.[ch].
zwelch [Fri, 12 Jun 2009 01:39:44 +0000 (01:39 +0000)]
Add new parse_uinttype wrappers for strtoul in src/helper/command.[ch].
- Used to improve command argument parsing of unsigned integers values.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2206 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Thu, 11 Jun 2009 21:55:43 +0000 (21:55 +0000)]
David Brownell <david-b@pacbell.net>:

Minor bugfix:  command_print_sameline() is what the
headers declare; make the code match.

Minor improvement:  make the printf format params always be const.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2205 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Thu, 11 Jun 2009 21:48:36 +0000 (21:48 +0000)]
David Brownell <david-b@pacbell.net>:

Rework the "Simple Configuration Files" chapter so it's more
of a quick-start "how to set up your project" tutorial:

 - Say how to hook up the JTAG adapter.  This will help new
   users, and in any case is worth spelling out somewhere.

 - Streamline the previous rather haphazard presentation,
   filling in some missing holes along the way:

     * Suggest "project directory" structure
     * Introduce new term, "user config" file (openocd.cfg)
     * Talk about more options for openocd.cfg contents
     * ... and about creating new config files
     * Add new topic, project-specific utilities (+examples)

 - Remove too-short, yet duplicative, chapter 19

Nudge packagers a bit more strongly to send patches (including
config files) upstream.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2204 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Thu, 11 Jun 2009 21:23:24 +0000 (21:23 +0000)]
David Brownell <david-b@pacbell.net>:

Update "arm9tdmi vector_catch" command description to highlight both
use cases (display configuration, or first change that config) and
to explain a bit more about what this is:  an alternative to using
hardware breakpoint resources.

Note that I tried this on an arm920t, but it didn't work.  Set bits,
then examined them and they weren't set.  And it didn't seem to act
as if vector triggering was noticed, either.

Also some minor unrelated tweaks:  @ignore some unused or don't-use
event names; fix a few typos; tweak chip-specific reset descriptions.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2203 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years ago- fix bug introduced during r1962
ntfreak [Thu, 11 Jun 2009 19:32:10 +0000 (19:32 +0000)]
- fix bug introduced during r1962
- Original patch submitted by David Claffey [dnclaffey@gmail.com].

git-svn-id: svn://svn.berlios.de/openocd/trunk@2202 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoembedded host: launch telnet server even if configuration fails
oharboe [Thu, 11 Jun 2009 13:03:32 +0000 (13:03 +0000)]
embedded host: launch telnet server even if configuration fails

git-svn-id: svn://svn.berlios.de/openocd/trunk@2198 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agofix ordering of arguments to fwrite()
oharboe [Thu, 11 Jun 2009 13:00:08 +0000 (13:00 +0000)]
fix ordering of arguments to fwrite()

git-svn-id: svn://svn.berlios.de/openocd/trunk@2197 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFactor handle_bp_command into pieces:
zwelch [Thu, 11 Jun 2009 11:43:07 +0000 (11:43 +0000)]
Factor handle_bp_command into pieces:
- Bug fix: return a syntax error if the wrong number of arguments are given.
- Add handle_bp_command_list() and handle_bp_command_set().
- Use temporary addr variable to eliminate redundant strtoul() calls.
- Place variable declarations at their point of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2196 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFactor target_timer_callbacks_check_time into pieces:
zwelch [Thu, 11 Jun 2009 11:43:00 +0000 (11:43 +0000)]
Factor target_timer_callbacks_check_time into pieces:
- Add target_timer_callback_periodic_restart and target_call_timer_callback.
- Clean up and simplify logic that determines whether to call each callback.
- Move variable declarations to location of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2195 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and clean handle_virt2phys_command:
zwelch [Thu, 11 Jun 2009 11:42:54 +0000 (11:42 +0000)]
Simplify and clean handle_virt2phys_command:
- Add a doxygen block to simplify logic.
- Move declarations to point of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2194 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and fix target handle_rwp_command routine:
zwelch [Thu, 11 Jun 2009 11:42:47 +0000 (11:42 +0000)]
Simplify and fix target handle_rwp_command routine:
- Return syntax error unless exactly one argument is passed.
- Move variable declaration to point of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2193 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and fix handle_reset_command:
zwelch [Thu, 11 Jun 2009 11:42:40 +0000 (11:42 +0000)]
Simplify and fix handle_reset_command:
- Return syntax error if more than one argument is given.
- Move variables to location of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2192 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify handle_resume_command:
zwelch [Thu, 11 Jun 2009 11:42:33 +0000 (11:42 +0000)]
Simplify handle_resume_command:
- Eliminate redundant calls to target_resume with addr temp variable.
- Place variables at location of first use.
- Fix minor whitespace issues.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2191 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify and fix handle_step_command:
zwelch [Thu, 11 Jun 2009 11:42:26 +0000 (11:42 +0000)]
Simplify and fix handle_step_command:
- Bug fix: return syntax error when more than one argument is given.
- Eliminate redundant calls to step callback with addr temp variable.
- Place variables at location of first use.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2190 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoMove jtag_get_flush_queue_count near jtag_execute_queue (fix its docs).
zwelch [Thu, 11 Jun 2009 07:08:45 +0000 (07:08 +0000)]
Move jtag_get_flush_queue_count near jtag_execute_queue (fix its docs).

git-svn-id: svn://svn.berlios.de/openocd/trunk@2189 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove grouping of JTAG KHz and verification accessors in header file.
zwelch [Thu, 11 Jun 2009 07:08:34 +0000 (07:08 +0000)]
Improve grouping of JTAG KHz and verification accessors in header file.
Add some quick Doxygen comments for these routines.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2188 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoGroup JTAG reset configuration and accessor APIs together in header file.
zwelch [Thu, 11 Jun 2009 07:08:28 +0000 (07:08 +0000)]
Group JTAG reset configuration and accessor APIs together in header file.
Remove unused reset_line_mode enumerated type.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2187 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoMove jtag_error helper declarations to the end of the header.
zwelch [Thu, 11 Jun 2009 07:08:21 +0000 (07:08 +0000)]
Move jtag_error helper declarations to the end of the header.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2186 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoOut-of-line jtag_tap_next_enabled and simplify its logic.
zwelch [Thu, 11 Jun 2009 07:08:14 +0000 (07:08 +0000)]
Out-of-line jtag_tap_next_enabled and simplify its logic.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2185 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoMove jtag_add_statemove decl/body nearer jtag_add_pathmove.
zwelch [Thu, 11 Jun 2009 07:08:03 +0000 (07:08 +0000)]
Move jtag_add_statemove decl/body nearer jtag_add_pathmove.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2184 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agodisable polling continuous polling during reset
oharboe [Thu, 11 Jun 2009 06:19:37 +0000 (06:19 +0000)]
disable polling continuous polling during reset

git-svn-id: svn://svn.berlios.de/openocd/trunk@2183 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years ago- update openocd online doc url's
ntfreak [Wed, 10 Jun 2009 22:22:49 +0000 (22:22 +0000)]
- update openocd online doc url's

git-svn-id: svn://svn.berlios.de/openocd/trunk@2182 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years ago- fix texi/pdf issue created in svn r2039
ntfreak [Wed, 10 Jun 2009 21:30:48 +0000 (21:30 +0000)]
- fix texi/pdf issue created in svn r2039

git-svn-id: svn://svn.berlios.de/openocd/trunk@2181 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoadded pathmove command
oharboe [Wed, 10 Jun 2009 07:19:14 +0000 (07:19 +0000)]
added pathmove command

git-svn-id: svn://svn.berlios.de/openocd/trunk@2180 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoDavid Brownell <david-b@pacbell.net>:
zwelch [Wed, 10 Jun 2009 04:08:32 +0000 (04:08 +0000)]
David Brownell <david-b@pacbell.net>:

Tweak the csb337 code so that it doesn't enable alignment traps when
it completes the "reset init" sequence.  It turns out that the current
CFI code reliably triggers such traps.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2179 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoMove the documentation for the "poll" command up with
zwelch [Wed, 10 Jun 2009 04:06:25 +0000 (04:06 +0000)]
Move the documentation for the "poll" command up with
other server configuration.  Explain what it's about;
reference the related "$target_name curstate" method.

Update "poll" output to report whether background polling
is enabled or not.

Also fix a small typo; PC's have "complementary" tools.
Some have also "complimentary" ones; but not all.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2178 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoImprove use of automake conditionals for FTDI-based JTAG drivers:
zwelch [Tue, 9 Jun 2009 14:18:28 +0000 (14:18 +0000)]
Improve use of automake conditionals for FTDI-based JTAG drivers:
- Remove once-used XXX_FTD2XX symbols; replace with XXX_DRIVER symbols.
- Enabled when either libftdi or FTD2xx driver should be built.
- Eliminates redundant DRIVERSFILE assignment in JTAG automake input.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2177 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoSimplify JTAG automake input file:
zwelch [Tue, 9 Jun 2009 14:18:23 +0000 (14:18 +0000)]
Simplify JTAG automake input file:
- Consolidate all individual driver variables into DRIVERFILES.
  - Eliminates all empty 'else' conditional clauses.
- Move minidriver files to top of file.
- Use MINIDRIVER conditional to build only driver(s) that will be linked.
- Eliminate superfluous whitespace.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2176 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoRename jtag_driver.c as driver.c to remove duplicate name component.
zwelch [Tue, 9 Jun 2009 12:47:49 +0000 (12:47 +0000)]
Rename jtag_driver.c as driver.c to remove duplicate name component.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2175 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoAdd a rule to rebuild libtool if ltmain.sh changes (from libtool docs).
zwelch [Tue, 9 Jun 2009 12:01:56 +0000 (12:01 +0000)]
Add a rule to rebuild libtool if ltmain.sh changes (from libtool docs).

git-svn-id: svn://svn.berlios.de/openocd/trunk@2174 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoreset to eol native for now. guess-rev.sh was broken by eol native, but it was a...
oharboe [Tue, 9 Jun 2009 11:05:45 +0000 (11:05 +0000)]
reset to eol native for now. guess-rev.sh was broken by eol native, but it was a red herring that these two files were affected.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2173 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoFix make maintainer-clean for out-of-tree builds.
zwelch [Tue, 9 Jun 2009 10:28:16 +0000 (10:28 +0000)]
Fix make maintainer-clean for out-of-tree builds.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2172 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agoEncapsulate the core jtag interface pointer:
zwelch [Tue, 9 Jun 2009 10:07:07 +0000 (10:07 +0000)]
Encapsulate the core jtag interface pointer:
- Add new jtag_config_khz to increase encapsulation of jtag->khz call.
- Add new jtag_get_speed_readable to encapsulate of jtag->speed_div call.
- Make definition of jtag static in core.c, remove extern from tcl.c.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2171 b42882b7-edfa-0310-969c-e2dbd0fdcd60

11 years agodos2unix
oharboe [Tue, 9 Jun 2009 08:59:54 +0000 (08:59 +0000)]
dos2unix

git-svn-id: svn://svn.berlios.de/openocd/trunk@2170 b42882b7-edfa-0310-969c-e2dbd0fdcd60