X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fdsp563xx_once.h;h=8835d553dc2ac3e48668d738d0a61816e489b2a3;hb=b6c4a5db3e306b317308bab1e872b4a66eb65487;hp=942cd65dbf8bafb5a3b3f937a363777c52e71650;hpb=11fd673f0c315346ef065289b164da58dd1fd4c6;p=openocd.git diff --git a/src/target/dsp563xx_once.h b/src/target/dsp563xx_once.h index 942cd65dbf..8835d553dc 100644 --- a/src/target/dsp563xx_once.h +++ b/src/target/dsp563xx_once.h @@ -15,13 +15,18 @@ * 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. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ***************************************************************************/ + #ifndef DSP563XX_ONCE_H #define DSP563XX_ONCE_H #include +#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) @@ -54,22 +59,33 @@ #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 */