Commit Graph

2346 Commits

Author SHA1 Message Date
zwelch 1af6b72fc1 Magnus Lundin <lundin@mlu.mine.nu>, Oyvind Harboe <oyvind.harboe@zylin.com>, David Brownell <david-b@pacbell.net>:
Move the dap command handler implementations to arm_adi_v5.c,
leaving just thin wrappers in armv7m.c.  There should be no
change in functionality here.  (From Magnus.)

Minor style cleanup:  whitespace, line length, etc.  Update spec
references to use docs which are currently available.  (From Dave.)


git-svn-id: svn://svn.berlios.de/openocd/trunk@2544 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-16 00:08:36 +00:00
zwelch 16e17ab1b3 Magnus Lundin <lundin@mlu.mine.nu>, Oyvind Harboe <oyvind.harboe@zylin.com>, David Brownell <david-b@pacbell.net>:
Some cleanup of the ARMv7-M support:

 - Reference the relevant ARMv7-M ARM doc (DDI 0405C to non-Vendors), and
   update the Cortex-M3 doc refs (DDI 0337C is no longer available).

 - Those registers aren't actually general, and some are incorrect (per all
   public docs anyway).  Update comments and code accordingly.

     * What the Core Debug facility exposes is *implementation-specific*
       not architectural.  These values aren't fully portable.  They match
       Cortex-M3 ... so no current implementation will make trouble, but
       the next v7m implementation might.

     * Four of the registers are actually not exposed that way.  Before
       Cortex-M3 r2p0 they are read/written through MRS/MSR instructions.
       In that newest silicon, they are four bytes in one register, not
       four separate registers.

 - Update the CM3 code to report when that one register is available,
   and not try to access it when it isn't.  Also declare the register
   numbers that an eventual MRS/MSR solution will need to be using.

 - Stop line wrapping the exception labels.

So for parts before r2p0 OpenOCD behavior is effectively unchanged, and
still buggy; but for those newer parts a few things might now be correct.

Most current Cortex-M3 parts use r1p1 (or earlier); this seems to include
most LM3S parts and all STM32 parts.  Parts using r2p0 are available, and
include fourth generation LM3S parts ("Tempest") plus AT91SAM3 and LPC17xx
parts which are now sampling.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2543 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-16 00:08:21 +00:00
zwelch 0c2ff267aa David Brownell <david-b@pacbell.net>:
More 32-bit Thumb2 instruction decoding:

	A5.3.7 Load word 


git-svn-id: svn://svn.berlios.de/openocd/trunk@2542 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:49:12 +00:00
zwelch fdfd434c24 David Brownell <david-b@pacbell.net>:
More 32-bit Thumb2 instruction decoding:

	A5.3.12 Data processing (register)


git-svn-id: svn://svn.berlios.de/openocd/trunk@2541 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:49:05 +00:00
zwelch 00adcc773a David Brownell <david-b@pacbell.net>:
More 32-bit instruction decoding:

	A5.3.11 Data processing (shifted register)


git-svn-id: svn://svn.berlios.de/openocd/trunk@2540 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:49:00 +00:00
zwelch 930269b483 David Brownell <david-b@pacbell.net>:
More instructions decoded:

	A5.3.5 Load/store multiple 

The preferred PUSH/POP syntax is shown when appropriate.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2539 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:54 +00:00
zwelch 421b8e133a David Brownell <david-b@pacbell.net>:
More instructions decoded:

	A5.3.14 Multiply, and multiply accumulate 
	A5.3.15 Long multiply, long multiply accumulate, divide

The EABI requires *adjacent* register pairs, but the long multiply
ops can use any pair of registers; interesting.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2538 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:43 +00:00
zwelch 889bd3e716 David Brownell <david-b@pacbell.net>:
More Thumb2 32-bit opcode support:

	 A5.3.10 Store single data item 

Byte, word, halfword.  Offset, pre-index, post-index.  And
a "make like you're unprivileged" option when using small
immediate offsets.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2537 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:37 +00:00
zwelch 84e86e9aee David Brownell <david-b@pacbell.net>:
Print old-style Thumb NOP instructions as such.  (GCC uses "mov r8, r8"
instead of the architected NOP which is new in Thumb2.)


git-svn-id: svn://svn.berlios.de/openocd/trunk@2536 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:32 +00:00
zwelch d2088f0d29 David Brownell <david-b@pacbell.net>:
Make disassembly of the Thumb load-literal instruction show the
address of the literal being loaded (so users can avoid doing
that math themselves).  Add and use an Align(PC,4) utility.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2535 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:27 +00:00
zwelch f163d0009d David Brownell <david-b@pacbell.net>:
Make the Thumb2 disassembler handle more 32-bit instructions:

  A5.3.3 Data processing (plain binary immediate)

These use mostly twelve bit literals, but there are also bitfield
and saturated add primitives.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2534 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:21 +00:00
zwelch 0165ae4405 David Brownell <david-b@pacbell.net>:
Make the Thumb2 disassembler handle more 32-bit instructions:

  A5.3.1 Data processing (modified immediate)

My small sample shows GCC likes to use many of these instructions.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2533 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:16 +00:00
zwelch 8b89224c6e David Brownell <david-b@pacbell.net>:
Make the Thumb2 disassembler handle a bunch of 32-bit instructions:

  A5.3.4 Branches and miscellaneous control
 
Note that this shifts some responsabililty out of helper functions,
making the code and layout simpler for 32-bit decoders:  they only
need to know how to format the instruction and its parameters.

Also, technical note:  with this patch, Thumb1 decoders could now
call the Thumb2 decoder if they wanted to get nicer treatment of
the exiting 32-bit B/BLX instructions.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2532 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:48:11 +00:00
zwelch b71e3aff6d David Brownell <david-b@pacbell.net>:
Change layout of Thumb disassembly to work better with Thumb2:

 - Move opcode to the left, allowing space for four hex bytes:
    * after address, two spaces not one tab (taking 6 spaces)
    * after 2-byte opcode, four spaces before tab
 - Also, after opcode mnemonic use a tab not a space, to make
   operands line up

Sample output (after some patches decoding a few 32-bit instructions):

0x00003e5a  0xf4423200	ORR	r2, r2, #131072	; 0x20000
0x00003e5e  0x601a    	STR 	r2, [r3, #0x0]
0x00003e60  0x2800    	CMP	r0, #0x00
0x00003e62  0xd1f3    	BNE	0x00003e4c
0x00003e64  0xf008fa38	BL	0x0000c2d8

The affected lines of code now wrap at sane margins too.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2531 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:39:48 +00:00
zwelch 309870e414 David Brownell <david-b@pacbell.net>:
Initial support for disassembling Thumb2 code.  This works only for
Cortex-M3 cores so far.  Eventually other cores will also need Thumb2
support ... but they don't yet support any kind of disassembly.

 - Update the 16-bit Thumb decoder:
 
     * Understand CPS, REV*, SETEND, {U,S}XT{B,H} opcodes added
       by ARMv6.  (It already seems to treat CPY as MOV.)

     * Understand CB, CBNZ, WFI, IT, and other opcodes added by
       in Thumb2.

 - A new Thumb2 instruction decode routine is provided.
 
     * This has a different signature:  pass the target, not the
       instruction, so it can fetch a second halfword when needed.  
       The instruction size is likewise returned to the caller.

     * 32-bit instructions are recognized but not yet decoded.
   
 - Start using the current "UAL" syntax in some cases.  "SWI" is
   renamed as "SVC"; "LDMIA" as "LDM"; "STMIA" as "STM".

 - Define a new "cortex_m3 disassemble addr count" command to give
   access to this disassembly.

Sanity checked against "objdump -d" output; a bunch of the new
instructions checked out fine.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2530 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 23:39:37 +00:00
oharboe 2ff59c9aaf print errno when parport fails to open.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2529 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 12:30:06 +00:00
oharboe e76fe13a95 retire Eclipse settings, charset will be set elsewhere.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2528 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-15 06:43:28 +00:00
oharboe d78d79aff6 Eclipse settings include charset.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2527 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 18:30:00 +00:00
oharboe 8b82de60c7 David Brownell <david-b@pacbell.net> mention udev, and correct D2XX speed mentions
git-svn-id: svn://svn.berlios.de/openocd/trunk@2526 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 18:24:59 +00:00
ntfreak 1df358855a - fix small typo in documentation
git-svn-id: svn://svn.berlios.de/openocd/trunk@2525 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 11:57:59 +00:00
oharboe 197a195191 1.54 snapshot
git-svn-id: svn://svn.berlios.de/openocd/trunk@2523 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 10:38:26 +00:00
zwelch 4eb2e50e4d Archive released NEWS file: NEWS -> NEWS-0.2.0
Create new NEWS file from release script template.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2522 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 09:02:00 +00:00
zwelch f9c65b5cd5 Bump minor version and add tag:
Bump minor package version number: 0.2.0 -> 0.3.0
Add '-in-development' version tag: 0.3.0 -> 0.3.0-in-development

git-svn-id: svn://svn.berlios.de/openocd/trunk@2521 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 08:54:36 +00:00
zwelch 64d998e584 Remove '-in-development' version tag: 0.2.0-in-development -> 0.2.0
git-svn-id: svn://svn.berlios.de/openocd/trunk@2517 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 08:53:40 +00:00
zwelch e057491d3c Improve the release script before 0.2.0:
1) Only archive NEWS file on major and minor relesae, not bug-fixes.
2) Switch back to correct development branch during final release step.
3) Add do_svn_switch helper to ensure package variables are reloaded.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2516 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 08:52:28 +00:00
zwelch ff5170a979 Split Windows README instructions into new file, with a few fixes.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2515 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 07:35:29 +00:00
zwelch 6d20e27f9a Make the parport-ppdev option enabled by default. This may require
giving --disable-parport-ppdev to configure on some platform(s).


git-svn-id: svn://svn.berlios.de/openocd/trunk@2514 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-14 06:39:55 +00:00
ntfreak ebd46e23b3 Gary Carlson <gcarlson@carlson-minot.com>
Spencer Oliver <spen@spen-soft.co.uk>

- fix jlink win32/linux/darwin startup issues
- see https://lists.berlios.de/pipermail/openocd-development/2009-July/009438.html

git-svn-id: svn://svn.berlios.de/openocd/trunk@2513 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-13 06:36:51 +00:00
oharboe b1ccc35323 Xiaofan Chen <xiaofanc@gmail.com> document my experiment
with MinGW cross build.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2512 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-12 19:32:22 +00:00
oharboe baa63aa608 Xiaofan Chen <xiaofanc@gmail.com> retire obsolete patch. OpenOCD only supports 0.14 and newer and the patch was for 0.14.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2511 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-12 19:31:13 +00:00
oharboe 5198968116 Magnus Lundin Thc cortex_m3_poll function does not identify that a target is running unless we transition from RESET.
This patch correctly identifies a running target.

Patch made a tad more palatable by David Brownell <david-b@pacbell.net>


git-svn-id: svn://svn.berlios.de/openocd/trunk@2510 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-12 19:29:08 +00:00
oharboe 14ed84fdbe Peter Denison <openwrt@marshadder.org> workaround for broken USBprog w/short tms sequences
git-svn-id: svn://svn.berlios.de/openocd/trunk@2509 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-12 14:11:43 +00:00
oharboe 6996e628f8 David Brownell <david-b@pacbell.net> Mention how parallel clock voting implementations of RTCK work,
and reference TI's free VHDL code.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2508 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-12 14:08:16 +00:00
duane 5627e841e3 Simple warning fix
git-svn-id: svn://svn.berlios.de/openocd/trunk@2507 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-11 02:01:22 +00:00
oharboe c05cb61b32 wrote up workaround for xscale/debug_handler.bin bug
git-svn-id: svn://svn.berlios.de/openocd/trunk@2506 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-10 08:47:10 +00:00
oharboe ef7722e6af noted XScale (or USBProg) problem
git-svn-id: svn://svn.berlios.de/openocd/trunk@2505 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-10 08:46:12 +00:00
oharboe e4cff09137 David Brownell <david-b@pacbell.net> split EK board support out
from the target CPU support .

git-svn-id: svn://svn.berlios.de/openocd/trunk@2504 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-10 07:21:12 +00:00
zwelch 3cf4717a2a Add style rule to avoid combining assignment and logical tests.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2503 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 22:26:42 +00:00
zwelch eaa895a0b2 Add section to provide some documentation for cross-compiling.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2502 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 22:26:36 +00:00
zwelch adae530eb7 Add microscopic style guide at the end of the PATCH primer.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2501 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 22:26:29 +00:00
zwelch deda6ea509 Add comments to top-level files to "excuse" their Doxygen markup.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2500 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 22:26:20 +00:00
oharboe 1ee66e0ce7 Fix SEGFAULTs and broken error handling for flash programming w/working area
git-svn-id: svn://svn.berlios.de/openocd/trunk@2499 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 18:29:03 +00:00
oharboe 13e6aa6e03 fix formatting of xscale bug entry(learning every day)
git-svn-id: svn://svn.berlios.de/openocd/trunk@2498 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 10:38:50 +00:00
oharboe f19565b226 Xscale installation regression entered
git-svn-id: svn://svn.berlios.de/openocd/trunk@2497 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 10:25:39 +00:00
oharboe d68096dcf2 typo in comment
git-svn-id: svn://svn.berlios.de/openocd/trunk@2496 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 10:25:23 +00:00
oharboe 51c0ef94d1 some TODO notes on aduc702x which clearly needs more work & testing
git-svn-id: svn://svn.berlios.de/openocd/trunk@2495 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 08:05:21 +00:00
oharboe 5c1ae65f8e i.MX27 reset problems fixed & update remaining reset problems notes
git-svn-id: svn://svn.berlios.de/openocd/trunk@2494 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 06:49:15 +00:00
oharboe 3ce038baa3 sharpen reset_config for imx27 - use both trst & srst. srst pulls trst.
git-svn-id: svn://svn.berlios.de/openocd/trunk@2493 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-08 06:32:27 +00:00
oharboe b80f6f96d3 srst pulls trst according to Freescale docs for i.mx27
git-svn-id: svn://svn.berlios.de/openocd/trunk@2492 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-07 16:50:28 +00:00
oharboe 561502ae31 Zach Welch: move bugs into the right section
git-svn-id: svn://svn.berlios.de/openocd/trunk@2491 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-07-07 11:39:04 +00:00