X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fdsp563xx.h;h=446ad3f53746f13eb2c239d865cf27d439bb60dd;hp=73050b6d3aed6319b747dee574676c9377729d24;hb=bbb0896cffe0f7643e8cc17328a62b54934f2e8b;hpb=646ce814b4fb678b7d8d341afe0694c266112426 diff --git a/src/target/dsp563xx.h b/src/target/dsp563xx.h index 73050b6d3a..446ad3f537 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 * @@ -15,48 +15,54 @@ * 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_H #define 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; - char *name; + 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,23 +72,4 @@ static inline struct dsp563xx_common *target_to_dsp563xx(struct target *target) return target->arch_info; } -int dsp563xx_write_ir(struct jtag_tap *tap, uint8_t * ir_in, uint8_t * ir_out, - int ir_len, int rti); -int dsp563xx_write_dr(struct jtag_tap *tap, uint8_t * dr_in, uint8_t * dr_out, - int dr_len, int rti); -int dsp563xx_write_ir_u8(struct jtag_tap *tap, uint8_t * ir_in, uint8_t ir_out, - int ir_len, int rti); -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_ir_u16(struct jtag_tap *tap, uint16_t * ir_in, uint16_t ir_out, - int ir_len, int rti); -int dsp563xx_write_dr_u16(struct jtag_tap *tap, uint16_t * ir_in, uint16_t ir_out, - int dr_len, int rti); -int dsp563xx_write_ir_u32(struct jtag_tap *tap, uint32_t * ir_in, uint32_t ir_out, - int ir_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 */