]> git.sur5r.net Git - openocd/blobdiff - src/target/dsp563xx_once.h
target/mem_ap: generic mem-ap target
[openocd] / src / target / dsp563xx_once.h
index 942cd65dbf8bafb5a3b3f937a363777c52e71650..da7f5e9b864986aee147ec77a224e81d7a10f39c 100644 (file)
  *   GNU General Public License for more details.                          *
  *                                                                         *
  *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
-#ifndef DSP563XX_ONCE_H
-#define DSP563XX_ONCE_H
+
+#ifndef OPENOCD_TARGET_DSP563XX_ONCE_H
+#define OPENOCD_TARGET_DSP563XX_ONCE_H
 
 #include <jtag/jtag.h>
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #define DSP563XX_ONCE_OCR_EX   (1<<5)
 #define DSP563XX_ONCE_OCR_GO   (1<<6)
 #define DSP563XX_ONCE_OCR_RW   (1<<7)
 #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 {
+       const uint8_t num;
+       const uint8_t addr;
+       const 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, int flush, struct once_reg *regs, int len);
 /** once read register */
-int dsp563xx_once_reg_read(struct jtag_tap *tap, uint8_t reg, uint32_t * data);
+int dsp563xx_once_reg_read_ex(struct jtag_tap *tap, int flush, uint8_t reg, uint8_t len, uint32_t * data);
+/** once read register */
+int dsp563xx_once_reg_read(struct jtag_tap *tap, int flush, uint8_t reg, uint32_t * data);
 /** once write register */
-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_reg_write(struct jtag_tap *tap, int flush, uint8_t reg, uint32_t data);
 /** single word instruction */
-int dsp563xx_once_execute_sw_ir_nq(struct jtag_tap *tap, uint32_t opcode);
+int dsp563xx_once_execute_sw_ir(struct jtag_tap *tap, int flush, 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(struct jtag_tap *tap, int flush, uint32_t opcode, uint32_t operand);
 
-#endif /* DSP563XX_ONCE_H */
+#endif /* OPENOCD_TARGET_DSP563XX_ONCE_H */