X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fdsp563xx.h;h=4bb5aceaf1da0fb2cd7f3f7648e3fca24796cafd;hp=475e51657022e9c1d47f15eca004a32115b144db;hb=5be455a710c57bbbbd49c2d671b42098db7be5dc;hpb=4f9a9b8ebae8425eda3a71ccb782789cd3b8f6b7 diff --git a/src/target/dsp563xx.h b/src/target/dsp563xx.h index 475e516570..4bb5aceaf1 100644 --- a/src/target/dsp563xx.h +++ b/src/target/dsp563xx.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Mathias Kuester * + * Copyright (C) 2009-2011 by Mathias Kuester * * mkdorg@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -13,50 +13,54 @@ * 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 . * ***************************************************************************/ -#ifndef DSP563XX_H -#define DSP563XX_H + +#ifndef OPENOCD_TARGET_DSP563XX_H +#define OPENOCD_TARGET_DSP563XX_H #include +#include -#define DSP563XX_NUMCOREREGS 44 +#define DSP563XX_NUMCOREREGS 54 +#define DSP563XX_NUMONCEREGS 25 -struct mcu_jtag -{ +struct mcu_jtag { struct jtag_tap *tap; }; -struct dsp563xx_pipeline_context -{ - /* PIL Register */ - uint32_t once_opilr; - /* PDB Register */ - uint32_t once_opdbr; +enum breakpoint_usage { + BPU_NONE = 0, + BPU_BREAKPOINT, + BPU_WATCHPOINT }; -struct dsp563xx_common -{ +struct hardware_breakpoint { + enum breakpoint_usage used; +}; + +struct dsp563xx_common { struct mcu_jtag jtag_info; struct reg_cache *core_cache; uint32_t core_regs[DSP563XX_NUMCOREREGS]; - - struct dsp563xx_pipeline_context pipeline_context; + struct once_reg once_regs[DSP563XX_NUMONCEREGS]; /* register cache to processor synchronization */ - int (*read_core_reg) (struct target * target, int num); - int (*write_core_reg) (struct target * target, int num); + int (*read_core_reg) (struct target *target, int num); + int (*write_core_reg) (struct target *target, int num); + + struct hardware_breakpoint hardware_breakpoint[1]; + + /*Were the hardware breakpoints cleared on startup?*/ + int hardware_breakpoints_cleared; }; -struct dsp563xx_core_reg -{ +struct dsp563xx_core_reg { uint32_t num; const char *name; uint32_t size; - uint32_t r_cmd; - uint32_t w_cmd; + uint8_t eame; + uint32_t instr_mask; struct target *target; struct dsp563xx_common *dsp563xx_common; }; @@ -66,11 +70,4 @@ static inline struct dsp563xx_common *target_to_dsp563xx(struct target *target) return target->arch_info; } -int dsp563xx_write_dr_u8(struct jtag_tap *tap, uint8_t * ir_in, uint8_t ir_out, - int dr_len, int rti); -int dsp563xx_write_dr_u32(struct jtag_tap *tap, uint32_t * ir_in, uint32_t ir_out, - int dr_len, int rti); - -int dsp563xx_execute_queue(void); - -#endif /* DSP563XX_H */ +#endif /* OPENOCD_TARGET_DSP563XX_H */