X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fmips32.h;h=7ffe95fc0ff5a72e0871afac54882f0cd4839ac3;hb=4cc359794420dbe0aedba38bde0ee4d871cdb354;hp=9ad5293808f753a8f2f918866a1c901bfef809e0;hpb=03e8649bc699053ccdbbd4a3c2eaf05241e22a5b;p=openocd.git diff --git a/src/target/mips32.h b/src/target/mips32.h index 9ad5293808..7ffe95fc0f 100644 --- a/src/target/mips32.h +++ b/src/target/mips32.h @@ -26,7 +26,6 @@ #include "target.h" #include "mips32_pracc.h" - #define MIPS32_COMMON_MAGIC 0xB320B320 /* offsets into mips32 core register cache */ @@ -36,10 +35,15 @@ enum MIPS32NUMCOREREGS }; +enum mips32_isa_mode +{ + MIPS32_ISA_MIPS32 = 0, + MIPS32_ISA_MIPS16E = 1, +}; + struct mips32_comparator { int used; - //int type; uint32_t bp_value; uint32_t reg_address; }; @@ -51,6 +55,7 @@ struct mips32_common struct reg_cache *core_cache; struct mips_ejtag ejtag_info; uint32_t core_regs[MIPS32NUMCOREREGS]; + enum mips32_isa_mode isa_mode; int bp_scanned; int num_inst_bpoints; @@ -65,6 +70,12 @@ struct mips32_common int (*write_core_reg)(struct target *target, int num); }; +static inline struct mips32_common * +target_to_mips32(struct target *target) +{ + return target->arch_info; +} + struct mips32_core_reg { uint32_t num; @@ -72,6 +83,12 @@ struct mips32_core_reg struct mips32_common *mips32_common; }; +struct mips32_algorithm +{ + int common_magic; + enum mips32_isa_mode isa_mode; +}; + #define MIPS32_OP_BEQ 0x04 #define MIPS32_OP_BNE 0x05 #define MIPS32_OP_ADDI 0x08 @@ -123,7 +140,7 @@ struct mips32_core_reg /* ejtag specific instructions */ #define MIPS32_DRET 0x4200001F #define MIPS32_SDBBP 0x7000003F -#define MIPS16_SDBBP 0xE801 +#define MIPS16_SDBBP 0xE801 int mips32_arch_state(struct target *target); @@ -151,5 +168,9 @@ int mips32_register_commands(struct command_context *cmd_ctx); int mips32_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size); +int mips32_checksum_memory(struct target *target, uint32_t address, + uint32_t count, uint32_t* checksum); +int mips32_blank_check_memory(struct target *target, + uint32_t address, uint32_t count, uint32_t* blank); #endif /*MIPS32_H*/