summaryrefslogtreecommitdiff
path: root/src/target/dsp563xx_once.h
diff options
context:
space:
mode:
authorMathias K <kesmtp@freenet.de>2011-02-01 13:00:59 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2011-02-03 12:28:17 +0100
commit75cdbff5aa93d93e414cb22d413f41fb38a076bb (patch)
tree25817d46794af4eea88f3b2c72944a7ece3a2638 /src/target/dsp563xx_once.h
parentb0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556 (diff)
downloadopenocd+libswd-75cdbff5aa93d93e414cb22d413f41fb38a076bb.tar.gz
openocd+libswd-75cdbff5aa93d93e414cb22d413f41fb38a076bb.tar.bz2
openocd+libswd-75cdbff5aa93d93e414cb22d413f41fb38a076bb.tar.xz
openocd+libswd-75cdbff5aa93d93e414cb22d413f41fb38a076bb.zip
more changes to dsp563xx code
Hello, this patch adds the missing cpu registers and the correct read/write register functions and fixed most of the halt/step/resume issues. The complete missing error propagation was added. + fix tab/spaces Regards, Mathias
Diffstat (limited to 'src/target/dsp563xx_once.h')
-rw-r--r--src/target/dsp563xx_once.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/target/dsp563xx_once.h b/src/target/dsp563xx_once.h
index 942cd65d..6b27694a 100644
--- a/src/target/dsp563xx_once.h
+++ b/src/target/dsp563xx_once.h
@@ -54,9 +54,29 @@
#define DSP563XX_ONCE_OPABFR 0x00F /* pab fetch reg */
#define DSP563XX_ONCE_OPABDR 0x010 /* pab decode reg */
#define DSP563XX_ONCE_OPABEX 0x011 /* pab exec reg */
-#define DSP563XX_ONCE_OPABEX 0x011 /* trace buffer/inc ptr */
+#define DSP563XX_ONCE_OPABF11 0x012 /* trace buffer/inc ptr */
#define DSP563XX_ONCE_NOREG 0x01F /* no register selected */
+struct once_reg
+{
+ uint8_t num;
+ uint8_t addr;
+ uint8_t len;
+ const char *name;
+ uint32_t reg;
+};
+
+/** */
+int dsp563xx_once_request_debug(struct jtag_tap *tap, int reset_state);
+/** */
+int dsp563xx_once_target_status(struct jtag_tap *tap);
+
+/** once read registers */
+int dsp563xx_once_read_register(struct jtag_tap *tap, struct once_reg *regs, int len);
+/** once read register */
+int dsp563xx_once_reg_read_ex_nq(struct jtag_tap *tap, uint8_t reg, uint8_t len, uint32_t * data);
+/** once read register */
+int dsp563xx_once_reg_read_ex(struct jtag_tap *tap, uint8_t reg, uint8_t len, uint32_t * data);
/** once read register */
int dsp563xx_once_reg_read(struct jtag_tap *tap, uint8_t reg, uint32_t * data);
/** once write register */
@@ -64,12 +84,10 @@ int dsp563xx_once_reg_write(struct jtag_tap *tap, uint8_t reg, uint32_t data);
/** single word instruction */
int dsp563xx_once_execute_sw_ir(struct jtag_tap *tap, uint32_t opcode);
/** double word instruction */
-int dsp563xx_once_execute_dw_ir(struct jtag_tap *tap, uint32_t opcode,
- uint32_t operand);
+int dsp563xx_once_execute_dw_ir(struct jtag_tap *tap, uint32_t opcode, uint32_t operand);
/** single word instruction */
int dsp563xx_once_execute_sw_ir_nq(struct jtag_tap *tap, uint32_t opcode);
/** double word instruction */
-int dsp563xx_once_execute_dw_ir_nq(struct jtag_tap *tap, uint32_t opcode,
- uint32_t operand);
+int dsp563xx_once_execute_dw_ir_nq(struct jtag_tap *tap, uint32_t opcode, uint32_t operand);
#endif /* DSP563XX_ONCE_H */