arm920t_common_t -> struct arm920t_common
[openocd.git] / src / target / arm7tdmi.c
index 27a8337fcfc79c3b647b5a5cd9220883aa7ee2a3..90e75262755f194be1983b9c239bad93fa0d06cd 100644 (file)
 static int arm7tdmi_examine_debug_reason(target_t *target)
 {
        int retval = ERROR_OK;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
 
        /* only check the debug reason if we don't know it already */
        if ((target->debug_reason != DBG_REASON_DBGRQ)
                        && (target->debug_reason != DBG_REASON_SINGLESTEP))
        {
-               scan_field_t fields[2];
+               struct scan_field fields[2];
                uint8_t databus[4];
                uint8_t breakpoint;
 
@@ -132,7 +130,7 @@ static __inline int arm7tdmi_clock_out(arm_jtag_t *jtag_info,
 static int arm7tdmi_clock_data_in(arm_jtag_t *jtag_info, uint32_t *in)
 {
        int retval = ERROR_OK;
-       scan_field_t fields[2];
+       struct scan_field fields[2];
 
        jtag_set_end_state(TAP_DRPAUSE);
        if ((retval = arm_jtag_scann(jtag_info, 0x1)) != ERROR_OK)
@@ -219,7 +217,7 @@ static int arm7tdmi_clock_data_in_endianness(arm_jtag_t *jtag_info,
                void *in, int size, int be)
 {
        int retval = ERROR_OK;
-       scan_field_t fields[2];
+       struct scan_field fields[2];
 
        jtag_set_end_state(TAP_DRPAUSE);
        if ((retval = arm_jtag_scann(jtag_info, 0x1)) != ERROR_OK)
@@ -268,9 +266,7 @@ static int arm7tdmi_clock_data_in_endianness(arm_jtag_t *jtag_info,
 static void arm7tdmi_change_to_arm(target_t *target,
                uint32_t *r0, uint32_t *pc)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* save r0 before using it and put system in ARM state
@@ -327,9 +323,7 @@ static void arm7tdmi_read_core_regs(target_t *target,
                uint32_t mask, uint32_t* core_regs[16])
 {
        int i;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* STMIA r0-15, [r0] at debug speed
@@ -354,9 +348,7 @@ static void arm7tdmi_read_core_regs_target_buffer(target_t *target,
                uint32_t mask, void* buffer, int size)
 {
        int i;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
        int be = (target->endianness == TARGET_BIG_ENDIAN) ? 1 : 0;
        uint32_t *buf_u32 = buffer;
@@ -396,9 +388,7 @@ static void arm7tdmi_read_core_regs_target_buffer(target_t *target,
 
 static void arm7tdmi_read_xpsr(target_t *target, uint32_t *xpsr, int spsr)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* MRS r0, cpsr */
@@ -416,9 +406,7 @@ static void arm7tdmi_read_xpsr(target_t *target, uint32_t *xpsr, int spsr)
 
 static void arm7tdmi_write_xpsr(target_t *target, uint32_t xpsr, int spsr)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        LOG_DEBUG("xpsr: %8.8" PRIx32 ", spsr: %i", xpsr, spsr);
@@ -448,9 +436,7 @@ static void arm7tdmi_write_xpsr(target_t *target, uint32_t xpsr, int spsr)
 static void arm7tdmi_write_xpsr_im8(target_t *target,
                uint8_t xpsr_im, int rot, int spsr)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        LOG_DEBUG("xpsr_im: %2.2x, rot: %i, spsr: %i", xpsr_im, rot, spsr);
@@ -469,9 +455,7 @@ static void arm7tdmi_write_core_regs(target_t *target,
                uint32_t mask, uint32_t core_regs[16])
 {
        int i;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* LDMIA r0-15, [r0] at debug speed
@@ -495,9 +479,7 @@ static void arm7tdmi_write_core_regs(target_t *target,
 
 static void arm7tdmi_load_word_regs(target_t *target, uint32_t mask)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* put system-speed load-multiple into the pipeline */
@@ -508,9 +490,7 @@ static void arm7tdmi_load_word_regs(target_t *target, uint32_t mask)
 
 static void arm7tdmi_load_hword_reg(target_t *target, int num)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* put system-speed load half-word into the pipeline */
@@ -521,9 +501,7 @@ static void arm7tdmi_load_hword_reg(target_t *target, int num)
 
 static void arm7tdmi_load_byte_reg(target_t *target, int num)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* put system-speed load byte into the pipeline */
@@ -534,9 +512,7 @@ static void arm7tdmi_load_byte_reg(target_t *target, int num)
 
 static void arm7tdmi_store_word_regs(target_t *target, uint32_t mask)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* put system-speed store-multiple into the pipeline */
@@ -547,9 +523,7 @@ static void arm7tdmi_store_word_regs(target_t *target, uint32_t mask)
 
 static void arm7tdmi_store_hword_reg(target_t *target, int num)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* put system-speed store half-word into the pipeline */
@@ -560,9 +534,7 @@ static void arm7tdmi_store_hword_reg(target_t *target, int num)
 
 static void arm7tdmi_store_byte_reg(target_t *target, int num)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* put system-speed store byte into the pipeline */
@@ -573,9 +545,7 @@ static void arm7tdmi_store_byte_reg(target_t *target, int num)
 
 static void arm7tdmi_write_pc(target_t *target, uint32_t pc)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* LDMIA r0-15, [r0] at debug speed
@@ -600,9 +570,7 @@ static void arm7tdmi_write_pc(target_t *target, uint32_t pc)
 
 static void arm7tdmi_branch_resume(target_t *target)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        arm7tdmi_clock_out(jtag_info, ARMV4_5_NOP, NULL, 1);
@@ -611,14 +579,13 @@ static void arm7tdmi_branch_resume(target_t *target)
 
 static void arm7tdmi_branch_resume_thumb(target_t *target)
 {
-       LOG_DEBUG("-");
-
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
+       struct armv4_5_common_s *armv4_5 = &arm7_9->armv4_5_common;
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
        reg_t *dbg_stat = &arm7_9->eice_cache->reg_list[EICE_DBG_STAT];
 
+       LOG_DEBUG("-");
+
        /* LDMIA r0, [r0] at debug speed
         * register values will start to appear on 4th DCLK
         */
@@ -673,8 +640,7 @@ static void arm7tdmi_branch_resume_thumb(target_t *target)
 static void arm7tdmi_build_reg_cache(target_t *target)
 {
        reg_cache_t **cache_p = register_get_last_cache_p(&target->reg_cache);
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
+       struct armv4_5_common_s *armv4_5 = target_to_armv4_5(target);
 
        (*cache_p) = armv4_5_build_reg_cache(target, armv4_5);
        armv4_5->core_cache = (*cache_p);
@@ -682,9 +648,10 @@ static void arm7tdmi_build_reg_cache(target_t *target)
 
 int arm7tdmi_examine(struct target_s *target)
 {
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        int retval;
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+
+
        if (!target_was_examined(target))
        {
                /* get pointers to arch-specific information */
@@ -696,11 +663,12 @@ int arm7tdmi_examine(struct target_s *target)
                (*cache_p) = t;
                arm7_9->eice_cache = (*cache_p);
 
-               if (arm7_9->etm_ctx)
+               if (arm7_9->armv4_5_common.etm)
                {
                        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
-                       (*cache_p)->next = etm_build_reg_cache(target, jtag_info, arm7_9->etm_ctx);
-                       arm7_9->etm_ctx->reg_cache = (*cache_p)->next;
+                       (*cache_p)->next = etm_build_reg_cache(target,
+                                       jtag_info, arm7_9->armv4_5_common.etm);
+                       arm7_9->armv4_5_common.etm->reg_cache = (*cache_p)->next;
                }
                target_set_examined(target);
        }
@@ -708,7 +676,7 @@ int arm7tdmi_examine(struct target_s *target)
                return retval;
        if ((retval = arm7_9_setup(target)) != ERROR_OK)
                return retval;
-       if (arm7_9->etm_ctx)
+       if (arm7_9->armv4_5_common.etm)
        {
                if ((retval = etm_setup(target)) != ERROR_OK)
                        return retval;
@@ -723,13 +691,9 @@ int arm7tdmi_init_target(struct command_context_s *cmd_ctx, struct target_s *tar
        return ERROR_OK;
 }
 
-int arm7tdmi_init_arch_info(target_t *target, arm7tdmi_common_t *arm7tdmi, jtag_tap_t *tap)
+int arm7tdmi_init_arch_info(target_t *target, arm7tdmi_common_t *arm7tdmi, struct jtag_tap *tap)
 {
-       armv4_5_common_t *armv4_5;
-       arm7_9_common_t *arm7_9;
-
-       arm7_9 = &arm7tdmi->arm7_9_common;
-       armv4_5 = &arm7_9->armv4_5_common;
+       struct arm7_9_common_s *arm7_9 = &arm7tdmi->arm7_9_common;
 
        /* prepare JTAG information for the new target */
        arm7_9->jtag_info.tap = tap;
@@ -771,10 +735,6 @@ int arm7tdmi_init_arch_info(target_t *target, arm7tdmi_common_t *arm7tdmi, jtag_
        arm7_9->thumb_bkpt = 0xdeee;
 
        arm7_9->dbgreq_adjust_pc = 2;
-       arm7_9->arch_info = arm7tdmi;
-
-       arm7tdmi->arch_info = NULL;
-       arm7tdmi->common_magic = ARM7TDMI_COMMON_MAGIC;
 
        arm7_9_init_arch_info(target, arm7_9);
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)