X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fcortex_a.h;h=ebf79b88c745fba4d244d025ca9d365e58d65431;hb=90ae846fc4009f8e466566ee0371398e52beecca;hp=0d1ad417e367983cd1ec92647fab4b00bf1f5895;hpb=08d4411b59dd8bd0e7d8009003b71d23acbf6eee;p=openocd.git diff --git a/src/target/cortex_a.h b/src/target/cortex_a.h index 0d1ad417e3..ebf79b88c7 100644 --- a/src/target/cortex_a.h +++ b/src/target/cortex_a.h @@ -27,25 +27,35 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ***************************************************************************/ -#ifndef CORTEX_A8_H -#define CORTEX_A8_H +#ifndef CORTEX_A_H +#define CORTEX_A_H #include "armv7a.h" -#define CORTEX_A8_COMMON_MAGIC 0x411fc082 +#define CORTEX_A_COMMON_MAGIC 0x411fc082 +#define CORTEX_A15_COMMON_MAGIC 0x413fc0f1 + +#define CORTEX_A5_PARTNUM 0xc05 +#define CORTEX_A7_PARTNUM 0xc07 +#define CORTEX_A8_PARTNUM 0xc08 +#define CORTEX_A9_PARTNUM 0xc09 +#define CORTEX_A15_PARTNUM 0xc0f +#define CORTEX_A_MIDR_PARTNUM_MASK 0x0000fff0 +#define CORTEX_A_MIDR_PARTNUM_SHIFT 4 #define CPUDBG_CPUID 0xD00 #define CPUDBG_CTYPR 0xD04 #define CPUDBG_TTYPR 0xD0C #define CPUDBG_LOCKACCESS 0xFB0 #define CPUDBG_LOCKSTATUS 0xFB4 +#define CPUDBG_OSLAR_LK_MASK (1 << 1) #define BRP_NORMAL 0 #define BRP_CONTEXT 1 -#define CORTEX_A8_PADDRDBG_CPU_SHIFT 13 +#define CORTEX_A_PADDRDBG_CPU_SHIFT 13 -struct cortex_a8_brp { +struct cortex_a_brp { int used; int type; uint32_t value; @@ -53,7 +63,7 @@ struct cortex_a8_brp { uint8_t BRPn; }; -struct cortex_a8_common { +struct cortex_a_common { int common_magic; struct arm_jtag jtag_info; @@ -71,19 +81,24 @@ struct cortex_a8_common { int brp_num_context; int brp_num; int brp_num_available; - struct cortex_a8_brp *brp_list; + struct cortex_a_brp *brp_list; - /* Use cortex_a8_read_regs_through_mem for fast register reads */ + /* Use cortex_a_read_regs_through_mem for fast register reads */ int fast_reg_read; + uint32_t cpuid; + uint32_t ctypr; + uint32_t ttypr; + uint32_t didr; + struct armv7a_common armv7a_common; }; -static inline struct cortex_a8_common * -target_to_cortex_a8(struct target *target) +static inline struct cortex_a_common * +target_to_cortex_a(struct target *target) { - return container_of(target->arch_info, struct cortex_a8_common, armv7a_common.arm); + return container_of(target->arch_info, struct cortex_a_common, armv7a_common.arm); } -#endif /* CORTEX_A8_H */ +#endif /* CORTEX_A_H */