X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fcortex_a8.h;h=8216ffbb52386b240016871a25bde426f4e5e0f9;hp=a1efe66719ca64d9a2f01ed0dc9edfb094d13e82;hb=94f5ed90f1832e81803713f4364de586a69247d4;hpb=51be978b4329008ece5a501563ffcc4059baef8f diff --git a/src/target/cortex_a8.h b/src/target/cortex_a8.h index a1efe66719..8216ffbb52 100644 --- a/src/target/cortex_a8.h +++ b/src/target/cortex_a8.h @@ -43,6 +43,7 @@ extern char* cortex_a8_state_strings[]; #define CPUDBG_DIDR 0x000 #define CPUDBG_WFAR 0x018 #define CPUDBG_VCR 0x01C +#define CPUDBG_ECR 0x024 #define CPUDBG_DSCCR 0x028 #define CPUDBG_DTRRX 0x080 #define CPUDBG_ITR 0x084 @@ -52,6 +53,7 @@ extern char* cortex_a8_state_strings[]; #define CPUDBG_BVR_BASE 0x100 #define CPUDBG_BCR_BASE 0x140 #define CPUDBG_WVR_BASE 0x180 +#define CPUDBG_WCR_BASE 0x1C0 #define CPUDBG_OSLAR 0x300 #define CPUDBG_OSLSR 0x304 @@ -63,6 +65,9 @@ extern char* cortex_a8_state_strings[]; #define CPUDBG_CPUID 0xD00 #define CPUDBG_CTYPR 0xD04 #define CPUDBG_TTYPR 0xD0C +#define CPUDBG_LOCKACCESS 0xFB0 +#define CPUDBG_LOCKSTATUS 0xFB4 +#define CPUDBG_AUTHSTATUS 0xFB8 #define BRP_NORMAL 0 #define BRP_CONTEXT 1 @@ -75,6 +80,7 @@ extern char* cortex_a8_state_strings[]; #define DSCR_MON_DBG_MODE 15 #define DSCR_INSTR_COMP 24 #define DSCR_DTR_TX_FULL 29 +#define DSCR_DTR_RX_FULL 30 typedef struct cortex_a8_brp_s { @@ -97,12 +103,7 @@ typedef struct cortex_a8_wrp_s typedef struct cortex_a8_common_s { int common_magic; - arm_jtag_t jtag_info; - - /* Core Debug Unit */ - uint32_t debug_base; - uint8_t debug_ap; - uint8_t memory_ap; + struct arm_jtag jtag_info; /* Context information */ uint32_t cpudbg_dscr; @@ -132,12 +133,17 @@ typedef struct cortex_a8_common_s /* Use cortex_a8_read_regs_through_mem for fast register reads */ int fast_reg_read; - armv7a_common_t armv7a_common; - void *arch_info; + struct armv7a_common armv7a_common; } cortex_a8_common_t; -extern int cortex_a8_init_arch_info(target_t *target, cortex_a8_common_t *cortex_a8, jtag_tap_t *tap); -int cortex_a8_read_memory(struct target_s *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer); -int cortex_a8_write_memory(struct target_s *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer); +static inline struct cortex_a8_common_s * +target_to_cortex_a8(struct target_s *target) +{ + return container_of(target->arch_info, struct cortex_a8_common_s, + armv7a_common.armv4_5_common); +} + +int cortex_a8_init_arch_info(target_t *target, + cortex_a8_common_t *cortex_a8, struct jtag_tap *tap); #endif /* CORTEX_A8_H */