cortex_a hybrid & context breakpoints
[fw/openocd] / src / target / arm920t.c
index 7cc228d06690e34a860b73a5a47ca997dc28c116..f057d7b9b485eb3e101cfb221a354127955d47ab 100644 (file)
@@ -1,3 +1,4 @@
+
 /***************************************************************************
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
@@ -88,38 +89,38 @@ static int arm920t_read_cp15_physical(struct target *target,
        uint8_t access_type_buf = 1;
        uint8_t reg_addr_buf = reg_addr & 0x3f;
        uint8_t nr_w_buf = 0;
+       int retval;
 
        jtag_info = &arm920t->arm7_9_common.jtag_info;
 
-       jtag_set_end_state(TAP_IDLE);
-       arm_jtag_scann(jtag_info, 0xf);
-       arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL);
+       retval = arm_jtag_scann(jtag_info, 0xf, TAP_IDLE);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL, TAP_IDLE);
+       if (retval != ERROR_OK)
+               return retval;
 
-       fields[0].tap = jtag_info->tap;
        fields[0].num_bits = 1;
        fields[0].out_value = &access_type_buf;
        fields[0].in_value = NULL;
 
-       fields[1].tap = jtag_info->tap;
        fields[1].num_bits = 32;
        fields[1].out_value = NULL;
        fields[1].in_value = NULL;
 
-       fields[2].tap = jtag_info->tap;
        fields[2].num_bits = 6;
        fields[2].out_value = &reg_addr_buf;
        fields[2].in_value = NULL;
 
-       fields[3].tap = jtag_info->tap;
        fields[3].num_bits = 1;
        fields[3].out_value = &nr_w_buf;
        fields[3].in_value = NULL;
 
-       jtag_add_dr_scan(4, fields, jtag_get_end_state());
+       jtag_add_dr_scan(jtag_info->tap, 4, fields, TAP_IDLE);
 
        fields[1].in_value = (uint8_t *)value;
 
-       jtag_add_dr_scan(4, fields, jtag_get_end_state());
+       jtag_add_dr_scan(jtag_info->tap, 4, fields, TAP_IDLE);
 
        jtag_add_callback(arm_le_to_h_u32, (jtag_callback_data_t)value);
 
@@ -141,36 +142,36 @@ static int arm920t_write_cp15_physical(struct target *target,
        uint8_t reg_addr_buf = reg_addr & 0x3f;
        uint8_t nr_w_buf = 1;
        uint8_t value_buf[4];
+       int retval;
 
        jtag_info = &arm920t->arm7_9_common.jtag_info;
 
        buf_set_u32(value_buf, 0, 32, value);
 
-       jtag_set_end_state(TAP_IDLE);
-       arm_jtag_scann(jtag_info, 0xf);
-       arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL);
+       retval = arm_jtag_scann(jtag_info, 0xf, TAP_IDLE);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL, TAP_IDLE);
+       if (retval != ERROR_OK)
+               return retval;
 
-       fields[0].tap = jtag_info->tap;
        fields[0].num_bits = 1;
        fields[0].out_value = &access_type_buf;
        fields[0].in_value = NULL;
 
-       fields[1].tap = jtag_info->tap;
        fields[1].num_bits = 32;
        fields[1].out_value = value_buf;
        fields[1].in_value = NULL;
 
-       fields[2].tap = jtag_info->tap;
        fields[2].num_bits = 6;
        fields[2].out_value = &reg_addr_buf;
        fields[2].in_value = NULL;
 
-       fields[3].tap = jtag_info->tap;
        fields[3].num_bits = 1;
        fields[3].out_value = &nr_w_buf;
        fields[3].in_value = NULL;
 
-       jtag_add_dr_scan(4, fields, jtag_get_end_state());
+       jtag_add_dr_scan(jtag_info->tap, 4, fields, TAP_IDLE);
 
 #ifdef _DEBUG_INSTRUCTION_EXECUTION_
        LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value);
@@ -200,33 +201,32 @@ static int arm920t_execute_cp15(struct target *target, uint32_t cp15_opcode,
 
        jtag_info = &arm920t->arm7_9_common.jtag_info;
 
-       jtag_set_end_state(TAP_IDLE);
-       arm_jtag_scann(jtag_info, 0xf);
-       arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL);
+       retval = arm_jtag_scann(jtag_info, 0xf, TAP_IDLE);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL, TAP_IDLE);
+       if (retval != ERROR_OK)
+               return retval;
 
        buf_set_u32(cp15_opcode_buf, 0, 32, cp15_opcode);
 
-       fields[0].tap = jtag_info->tap;
        fields[0].num_bits = 1;
        fields[0].out_value = &access_type_buf;
        fields[0].in_value = NULL;
 
-       fields[1].tap = jtag_info->tap;
        fields[1].num_bits = 32;
        fields[1].out_value = cp15_opcode_buf;
        fields[1].in_value = NULL;
 
-       fields[2].tap = jtag_info->tap;
        fields[2].num_bits = 6;
        fields[2].out_value = &reg_addr_buf;
        fields[2].in_value = NULL;
 
-       fields[3].tap = jtag_info->tap;
        fields[3].num_bits = 1;
        fields[3].out_value = &nr_w_buf;
        fields[3].in_value = NULL;
 
-       jtag_add_dr_scan(4, fields, jtag_get_end_state());
+       jtag_add_dr_scan(jtag_info->tap, 4, fields, TAP_IDLE);
 
        arm9tdmi_clock_out(jtag_info, arm_opcode, 0, NULL, 0);
        arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 1);
@@ -276,11 +276,15 @@ static int arm920t_read_cp15_interpreted(struct target *target,
        jtag_execute_queue();
 
 #ifdef _DEBUG_INSTRUCTION_EXECUTION_
-       LOG_DEBUG("cp15_opcode: %8.8x, address: %8.8x, value: %8.8x", cp15_opcode, address, *value);
+       LOG_DEBUG("cp15_opcode: %8.8x, address: %8.8x, value: %8.8x",
+                       cp15_opcode, address, *value);
 #endif
 
        if (!is_arm_mode(armv4_5->core_mode))
+       {
+               LOG_ERROR("not a valid arm core mode - communication failure?");
                return ERROR_FAIL;
+       }
 
        r[0].dirty = 1;
        r[1].dirty = 1;
@@ -317,11 +321,15 @@ int arm920t_write_cp15_interpreted(struct target *target,
        arm920t_write_cp15_physical(target, CP15PHYS_TESTSTATE, cp15c15);
 
 #ifdef _DEBUG_INSTRUCTION_EXECUTION_
-       LOG_DEBUG("cp15_opcode: %8.8x, value: %8.8x, address: %8.8x", cp15_opcode, value, address);
+       LOG_DEBUG("cp15_opcode: %8.8x, value: %8.8x, address: %8.8x",
+                       cp15_opcode, value, address);
 #endif
 
        if (!is_arm_mode(armv4_5->core_mode))
+       {
+               LOG_ERROR("not a valid arm core mode - communication failure?");
                return ERROR_FAIL;
+       }
 
        r[0].dirty = 1;
        r[1].dirty = 1;
@@ -330,25 +338,34 @@ int arm920t_write_cp15_interpreted(struct target *target,
 }
 
 // EXPORTED to FA256
-uint32_t arm920t_get_ttb(struct target *target)
+int arm920t_get_ttb(struct target *target, uint32_t *result)
 {
        int retval;
        uint32_t ttb = 0x0;
 
-       if ((retval = arm920t_read_cp15_interpreted(target, 0xeebf0f51, 0x0, &ttb)) != ERROR_OK)
+       if ((retval = arm920t_read_cp15_interpreted(target,
+                       /* FIXME use opcode macro */
+                       0xeebf0f51, 0x0, &ttb)) != ERROR_OK)
                return retval;
 
-       return ttb;
+       *result = ttb;
+       return ERROR_OK;
 }
 
 // EXPORTED to FA256
-void arm920t_disable_mmu_caches(struct target *target, int mmu, int d_u_cache, int i_cache)
+int arm920t_disable_mmu_caches(struct target *target, int mmu,
+               int d_u_cache, int i_cache)
 {
        uint32_t cp15_control;
+       int retval;
 
        /* read cp15 control register */
-       arm920t_read_cp15_physical(target, CP15PHYS_CTRL, &cp15_control);
-       jtag_execute_queue();
+       retval = arm920t_read_cp15_physical(target, CP15PHYS_CTRL, &cp15_control);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = jtag_execute_queue();
+       if (retval != ERROR_OK)
+               return retval;
 
        if (mmu)
                cp15_control &= ~0x1U;
@@ -359,17 +376,24 @@ void arm920t_disable_mmu_caches(struct target *target, int mmu, int d_u_cache, i
        if (i_cache)
                cp15_control &= ~0x1000U;
 
-       arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_control);
+       retval = arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_control);
+       return retval;
 }
 
 // EXPORTED to FA256
-void arm920t_enable_mmu_caches(struct target *target, int mmu, int d_u_cache, int i_cache)
+int arm920t_enable_mmu_caches(struct target *target, int mmu,
+               int d_u_cache, int i_cache)
 {
        uint32_t cp15_control;
+       int retval;
 
        /* read cp15 control register */
-       arm920t_read_cp15_physical(target, CP15PHYS_CTRL, &cp15_control);
-       jtag_execute_queue();
+       retval = arm920t_read_cp15_physical(target, CP15PHYS_CTRL, &cp15_control);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = jtag_execute_queue();
+       if (retval != ERROR_OK)
+               return retval;
 
        if (mmu)
                cp15_control |= 0x1U;
@@ -380,55 +404,86 @@ void arm920t_enable_mmu_caches(struct target *target, int mmu, int d_u_cache, in
        if (i_cache)
                cp15_control |= 0x1000U;
 
-       arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_control);
+       retval = arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_control);
+       return retval;
 }
 
 // EXPORTED to FA256
-void arm920t_post_debug_entry(struct target *target)
+int arm920t_post_debug_entry(struct target *target)
 {
        uint32_t cp15c15;
        struct arm920t_common *arm920t = target_to_arm920(target);
+       int retval;
 
        /* examine cp15 control reg */
-       arm920t_read_cp15_physical(target,
+       retval = arm920t_read_cp15_physical(target,
                        CP15PHYS_CTRL, &arm920t->cp15_control_reg);
-       jtag_execute_queue();
-       LOG_DEBUG("cp15_control_reg: %8.8" PRIx32 "", arm920t->cp15_control_reg);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = jtag_execute_queue();
+       if (retval != ERROR_OK)
+               return retval;
+       LOG_DEBUG("cp15_control_reg: %8.8" PRIx32, arm920t->cp15_control_reg);
 
        if (arm920t->armv4_5_mmu.armv4_5_cache.ctype == -1)
        {
                uint32_t cache_type_reg;
                /* identify caches */
-               arm920t_read_cp15_physical(target,
+               retval = arm920t_read_cp15_physical(target,
                                CP15PHYS_CACHETYPE, &cache_type_reg);
-               jtag_execute_queue();
-               armv4_5_identify_cache(cache_type_reg, &arm920t->armv4_5_mmu.armv4_5_cache);
+               if (retval != ERROR_OK)
+                       return retval;
+               retval = jtag_execute_queue();
+               if (retval != ERROR_OK)
+                       return retval;
+               armv4_5_identify_cache(cache_type_reg,
+                               &arm920t->armv4_5_mmu.armv4_5_cache);
        }
 
-       arm920t->armv4_5_mmu.mmu_enabled = (arm920t->cp15_control_reg & 0x1U) ? 1 : 0;
-       arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled = (arm920t->cp15_control_reg & 0x4U) ? 1 : 0;
-       arm920t->armv4_5_mmu.armv4_5_cache.i_cache_enabled = (arm920t->cp15_control_reg & 0x1000U) ? 1 : 0;
+       arm920t->armv4_5_mmu.mmu_enabled =
+                       (arm920t->cp15_control_reg & 0x1U) ? 1 : 0;
+       arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled =
+                       (arm920t->cp15_control_reg & 0x4U) ? 1 : 0;
+       arm920t->armv4_5_mmu.armv4_5_cache.i_cache_enabled =
+                       (arm920t->cp15_control_reg & 0x1000U) ? 1 : 0;
 
        /* save i/d fault status and address register */
-       arm920t_read_cp15_interpreted(target, 0xee150f10, 0x0, &arm920t->d_fsr);
-       arm920t_read_cp15_interpreted(target, 0xee150f30, 0x0, &arm920t->i_fsr);
-       arm920t_read_cp15_interpreted(target, 0xee160f10, 0x0, &arm920t->d_far);
-       arm920t_read_cp15_interpreted(target, 0xee160f30, 0x0, &arm920t->i_far);
+                       /* FIXME use opcode macros */
+       retval = arm920t_read_cp15_interpreted(target, 0xee150f10, 0x0, &arm920t->d_fsr);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = arm920t_read_cp15_interpreted(target, 0xee150f30, 0x0, &arm920t->i_fsr);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = arm920t_read_cp15_interpreted(target, 0xee160f10, 0x0, &arm920t->d_far);
+       if (retval != ERROR_OK)
+               return retval;
+       retval = arm920t_read_cp15_interpreted(target, 0xee160f30, 0x0, &arm920t->i_far);
+       if (retval != ERROR_OK)
+               return retval;
 
-       LOG_DEBUG("D FSR: 0x%8.8" PRIx32 ", D FAR: 0x%8.8" PRIx32 ", I FSR: 0x%8.8" PRIx32 ", I FAR: 0x%8.8" PRIx32 "",
+       LOG_DEBUG("D FSR: 0x%8.8" PRIx32 ", D FAR: 0x%8.8" PRIx32
+               ", I FSR: 0x%8.8" PRIx32 ", I FAR: 0x%8.8" PRIx32,
                arm920t->d_fsr, arm920t->d_far, arm920t->i_fsr, arm920t->i_far);
 
        if (arm920t->preserve_cache)
        {
                /* read-modify-write CP15 test state register
                 * to disable I/D-cache linefills */
-               arm920t_read_cp15_physical(target,
+               retval = arm920t_read_cp15_physical(target,
                                CP15PHYS_TESTSTATE, &cp15c15);
-               jtag_execute_queue();
+               if (retval != ERROR_OK)
+                       return retval;
+               retval = jtag_execute_queue();
+               if (retval != ERROR_OK)
+                       return retval;
                cp15c15 |= 0x600;
-               arm920t_write_cp15_physical(target,
+               retval = arm920t_write_cp15_physical(target,
                                CP15PHYS_TESTSTATE, cp15c15);
+               if (retval != ERROR_OK)
+                       return retval;
        }
+       return ERROR_OK;
 }
 
 // EXPORTED to FA256
@@ -478,7 +533,6 @@ int arm920t_arch_state(struct target *target)
        };
 
        struct arm920t_common *arm920t = target_to_arm920(target);
-       struct arm *armv4_5;
 
        if (arm920t->common_magic != ARM920T_COMMON_MAGIC)
        {
@@ -486,13 +540,11 @@ int arm920t_arch_state(struct target *target)
                return ERROR_TARGET_INVALID;
        }
 
-       armv4_5 = &arm920t->arm7_9_common.armv4_5_common;
-
        arm_arch_state(target);
        LOG_USER("MMU: %s, D-Cache: %s, I-Cache: %s",
-                        state[arm920t->armv4_5_mmu.mmu_enabled],
-                        state[arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled],
-                        state[arm920t->armv4_5_mmu.armv4_5_cache.i_cache_enabled]);
+                state[arm920t->armv4_5_mmu.mmu_enabled],
+                state[arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled],
+                state[arm920t->armv4_5_mmu.armv4_5_cache.i_cache_enabled]);
 
        return ERROR_OK;
 }
@@ -511,23 +563,21 @@ static int arm920_mmu(struct target *target, int *enabled)
 static int arm920_virt2phys(struct target *target,
                uint32_t virt, uint32_t *phys)
 {
-       int type;
        uint32_t cb;
-       int domain;
-       uint32_t ap;
        struct arm920t_common *arm920t = target_to_arm920(target);
 
-       uint32_t ret = armv4_5_mmu_translate_va(target, &arm920t->armv4_5_mmu, virt, &type, &cb, &domain, &ap);
-       if (type == -1)
-       {
-               return ret;
-       }
+       uint32_t ret;
+       int retval = armv4_5_mmu_translate_va(target,
+                       &arm920t->armv4_5_mmu, virt, &cb, &ret);
+       if (retval != ERROR_OK)
+               return retval;
        *phys = ret;
        return ERROR_OK;
 }
 
 /** Reads a buffer, in the specified word size, with current MMU settings. */
-int arm920t_read_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer)
+int arm920t_read_memory(struct target *target, uint32_t address,
+               uint32_t size, uint32_t count, uint8_t *buffer)
 {
        int retval;
 
@@ -549,7 +599,7 @@ static int arm920t_read_phys_memory(struct target *target,
 
 static int arm920t_write_phys_memory(struct target *target,
                uint32_t address, uint32_t size,
-               uint32_t count, uint8_t *buffer)
+               uint32_t count, const uint8_t *buffer)
 {
        struct arm920t_common *arm920t = target_to_arm920(target);
 
@@ -560,7 +610,7 @@ static int arm920t_write_phys_memory(struct target *target,
 
 /** Writes a buffer, in the specified word size, with current MMU settings. */
 int arm920t_write_memory(struct target *target, uint32_t address,
-               uint32_t size, uint32_t count, uint8_t *buffer)
+               uint32_t size, uint32_t count, const uint8_t *buffer)
 {
        int retval;
        const uint32_t cache_mask = ~0x1f; /* cache line size : 32 byte */
@@ -568,38 +618,44 @@ int arm920t_write_memory(struct target *target, uint32_t address,
 
        /* FIX!!!! this should be cleaned up and made much more general. The
         * plan is to write up and test on arm920t specifically and
-        * then generalize and clean up afterwards. */
-       if (arm920t->armv4_5_mmu.mmu_enabled && (count == 1) && ((size==2) || (size==4)))
+        * then generalize and clean up afterwards.
+        *
+        * Also it should be moved to the callbacks that handle breakpoints
+        * specifically and not the generic memory write fn's. See XScale code.
+        */
+       if (arm920t->armv4_5_mmu.mmu_enabled && (count == 1) &&
+                       ((size==2) || (size==4)))
        {
-               /* special case the handling of single word writes to bypass MMU
-                * to allow implementation of breakpoints in memory marked read only
-                * by MMU */
-               int type;
+               /* special case the handling of single word writes to
+                * bypass MMU, to allow implementation of breakpoints
+                * in memory marked read only
+                * by MMU
+                */
                uint32_t cb;
-               int domain;
-               uint32_t ap;
                uint32_t pa;
 
                /*
                 * We need physical address and cb
                 */
-               pa = armv4_5_mmu_translate_va(target, &arm920t->armv4_5_mmu, address, &type, &cb, &domain, &ap);
-               if (type == -1)
-               {
-                       return pa;
-               }
+               retval = armv4_5_mmu_translate_va(target, &arm920t->armv4_5_mmu,
+                               address, &cb, &pa);
+               if (retval != ERROR_OK)
+                       return retval;
 
                if (arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled)
                {
                        if (cb & 0x1)
                        {
-                               LOG_DEBUG("D-Cache buffered, drain write buffer");
+                               LOG_DEBUG("D-Cache buffered, "
+                                               "drain write buffer");
                                /*
                                 * Buffered ?
                                 * Drain write buffer - MCR p15,0,Rd,c7,c10,4
                                 */
 
-                               retval = arm920t_write_cp15_interpreted(target, ARMV4_5_MCR(15, 0, 0, 7, 10, 4), 0x0, 0);
+                               retval = arm920t_write_cp15_interpreted(target,
+                                       ARMV4_5_MCR(15, 0, 0, 7, 10, 4),
+                                       0x0, 0);
                                if (retval != ERROR_OK)
                                        return retval;
                        }
@@ -609,19 +665,25 @@ int arm920t_write_memory(struct target *target, uint32_t address,
                                /*
                                 * Write back memory ? -> clean cache
                                 *
-                                * There is no way for cleaning a data cache line using
-                                * cp15 scan chain, so copy the full cache line from
-                                * cache to physical memory.
+                                * There is no way to clean cache lines using
+                                * cp15 scan chain, so copy the full cache
+                                * line from cache to physical memory.
                                 */
                                uint8_t data[32];
 
-                               LOG_DEBUG("D-Cache in 'write back' mode, flush cache line");
+                               LOG_DEBUG("D-Cache in 'write back' mode, "
+                                               "flush cache line");
 
-                               retval = target_read_memory(target, address & cache_mask, 1, sizeof(data), &data[0]);
+                               retval = target_read_memory(target,
+                                               address & cache_mask, 1,
+                                               sizeof(data), &data[0]);
                                if (retval != ERROR_OK)
                                        return retval;
 
-                               retval = armv4_5_mmu_write_physical(target, &arm920t->armv4_5_mmu, pa & cache_mask, 1, sizeof(data), &data[0]);
+                               retval = armv4_5_mmu_write_physical(target,
+                                               &arm920t->armv4_5_mmu,
+                                               pa & cache_mask, 1,
+                                               sizeof(data), &data[0]);
                                if (retval != ERROR_OK)
                                        return retval;
                        }
@@ -634,51 +696,65 @@ int arm920t_write_memory(struct target *target, uint32_t address,
                                 *
                                 * MCR p15,0,Rd,c7,c6,1
                                 */
-                               LOG_DEBUG("D-Cache enabled, invalidate cache line");
+                               LOG_DEBUG("D-Cache enabled, "
+                                       "invalidate cache line");
 
-                               retval = arm920t_write_cp15_interpreted(target, ARMV4_5_MCR(15, 0, 0, 7, 6, 1), 0x0, address & cache_mask);
+                               retval = arm920t_write_cp15_interpreted(target,
+                                       ARMV4_5_MCR(15, 0, 0, 7, 6, 1), 0x0,
+                                       address & cache_mask);
                                if (retval != ERROR_OK)
                                        return retval;
                        }
                }
 
-               /* write directly to physical memory bypassing any read only MMU bits, etc. */
-               retval = armv4_5_mmu_write_physical(target, &arm920t->armv4_5_mmu, pa, size, count, buffer);
+               /* write directly to physical memory,
+                * bypassing any read only MMU bits, etc.
+                */
+               retval = armv4_5_mmu_write_physical(target,
+                               &arm920t->armv4_5_mmu, pa, size,
+                               count, buffer);
                if (retval != ERROR_OK)
                        return retval;
        } else
        {
-               if ((retval = arm7_9_write_memory(target, address, size, count, buffer)) != ERROR_OK)
+               if ((retval = arm7_9_write_memory(target, address,
+                                       size, count, buffer)) != ERROR_OK)
                        return retval;
        }
 
        /* If ICache is enabled, we have to invalidate affected ICache lines
-        * the DCache is forced to write-through, so we don't have to clean it here
+        * the DCache is forced to write-through,
+        * so we don't have to clean it here
         */
        if (arm920t->armv4_5_mmu.armv4_5_cache.i_cache_enabled)
        {
                if (count <= 1)
                {
                        /* invalidate ICache single entry with MVA
-                        *      ee070f35        mcr     15, 0, r0, cr7, cr5, {1}
+                        *   mcr        15, 0, r0, cr7, cr5, {1}
                         */
-                       LOG_DEBUG("I-Cache enabled, invalidating affected I-Cache line");
-                       retval = arm920t_write_cp15_interpreted(target, ARMV4_5_MCR(15, 0, 0, 7, 5, 1), 0x0, address & cache_mask);
+                       LOG_DEBUG("I-Cache enabled, "
+                               "invalidating affected I-Cache line");
+                       retval = arm920t_write_cp15_interpreted(target,
+                                       ARMV4_5_MCR(15, 0, 0, 7, 5, 1),
+                                       0x0, address & cache_mask);
                        if (retval != ERROR_OK)
                                return retval;
                }
                else
                {
                        /* invalidate ICache
-                        *   8: ee070f15        mcr     15, 0, r0, cr7, cr5, {0}
-                        * */
-                       retval = arm920t_write_cp15_interpreted(target, ARMV4_5_MCR(15, 0, 0, 7, 5, 0), 0x0, 0x0);
+                        *  mcr 15, 0, r0, cr7, cr5, {0}
+                        */
+                       retval = arm920t_write_cp15_interpreted(target,
+                                       ARMV4_5_MCR(15, 0, 0, 7, 5, 0),
+                                       0x0, 0x0);
                        if (retval != ERROR_OK)
                                return retval;
                }
        }
 
-       return retval;
+       return ERROR_OK;
 }
 
 // EXPORTED to FA256
@@ -699,7 +775,8 @@ int arm920t_soft_reset_halt(struct target *target)
        int timeout;
        while (!(timeout = ((timeval_ms()-then) > 1000)))
        {
-               if (buf_get_u32(dbg_stat->value, EICE_DBG_STATUS_DBGACK, 1) == 0)
+               if (buf_get_u32(dbg_stat->value, EICE_DBG_STATUS_DBGACK, 1)
+                               == 0)
                {
                        embeddedice_read_reg(dbg_stat);
                        if ((retval = jtag_execute_queue()) != ERROR_OK)
@@ -737,21 +814,16 @@ int arm920t_soft_reset_halt(struct target *target)
        armv4_5->cpsr->dirty = 1;
 
        /* start fetching from 0x0 */
-       buf_set_u32(armv4_5->core_cache->reg_list[15].value, 0, 32, 0x0);
-       armv4_5->core_cache->reg_list[15].dirty = 1;
-       armv4_5->core_cache->reg_list[15].valid = 1;
+       buf_set_u32(armv4_5->pc->value, 0, 32, 0x0);
+       armv4_5->pc->dirty = 1;
+       armv4_5->pc->valid = 1;
 
        arm920t_disable_mmu_caches(target, 1, 1, 1);
        arm920t->armv4_5_mmu.mmu_enabled = 0;
        arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled = 0;
        arm920t->armv4_5_mmu.armv4_5_cache.i_cache_enabled = 0;
 
-       if ((retval = target_call_event_callbacks(target, TARGET_EVENT_HALTED)) != ERROR_OK)
-       {
-               return retval;
-       }
-
-       return ERROR_OK;
+       return target_call_event_callbacks(target, TARGET_EVENT_HALTED);
 }
 
 /* FIXME remove forward decls */
@@ -764,7 +836,8 @@ static int arm920t_mcr(struct target *target, int cpnum,
                uint32_t CRn, uint32_t CRm,
                uint32_t value);
 
-int arm920t_init_arch_info(struct target *target, struct arm920t_common *arm920t, struct jtag_tap *tap)
+static int arm920t_init_arch_info(struct target *target,
+               struct arm920t_common *arm920t, struct jtag_tap *tap)
 {
        struct arm7_9_common *arm7_9 = &arm920t->arm7_9_common;
 
@@ -802,8 +875,9 @@ int arm920t_init_arch_info(struct target *target, struct arm920t_common *arm920t
 
 static int arm920t_target_create(struct target *target, Jim_Interp *interp)
 {
-       struct arm920t_common *arm920t = calloc(1,sizeof(struct arm920t_common));
+       struct arm920t_common *arm920t;
 
+       arm920t = calloc(1,sizeof(struct arm920t_common));
        return arm920t_init_arch_info(target, arm920t, target->tap);
 }
 
@@ -821,8 +895,7 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
        uint32_t C15_C_D_Ind, C15_C_I_Ind;
        int i;
        FILE *output;
-       struct arm920t_cache_line d_cache[8][64], i_cache[8][64];
-       int segment, index;
+       int segment, index_t;
        struct reg *r;
 
        retval = arm920t_verify_pointer(CMD_CTX, arm920t);
@@ -851,7 +924,8 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                return retval;
        }
        cp15_ctrl_saved = cp15_ctrl;
-       cp15_ctrl &= ~(ARMV4_5_MMU_ENABLED | ARMV4_5_D_U_CACHE_ENABLED | ARMV4_5_I_CACHE_ENABLED);
+       cp15_ctrl &= ~(ARMV4_5_MMU_ENABLED
+               | ARMV4_5_D_U_CACHE_ENABLED | ARMV4_5_I_CACHE_ENABLED);
        arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_ctrl);
 
        /* read CP15 test state register */
@@ -862,7 +936,9 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
        fprintf(output, "DCache:\n");
 
        /* go through segments 0 to nsets (8 on ARM920T, 4 on ARM922T) */
-       for (segment = 0; segment < arm920t->armv4_5_mmu.armv4_5_cache.d_u_size.nsets; segment++)
+       for (segment = 0;
+               segment < arm920t->armv4_5_mmu.armv4_5_cache.d_u_size.nsets;
+               segment++)
        {
                fprintf(output, "\nsegment: %i\n----------", segment);
 
@@ -876,7 +952,8 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* D CAM Read, loads current victim into C15.C.D.Ind */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,2,0,15,6,2), ARMV4_5_LDR(1, 0));
+               arm920t_execute_cp15(target,
+                       ARMV4_5_MCR(15,2,0,15,6,2), ARMV4_5_LDR(1, 0));
 
                /* read current victim */
                arm920t_read_cp15_physical(target,
@@ -887,10 +964,12 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                arm920t_write_cp15_physical(target,
                                CP15PHYS_TESTSTATE, cp15c15);
 
-               for (index = 0; index < 64; index++)
+               for (index_t = 0; index_t < 64; index_t++)
                {
-                       /* Ra: r0 = index(31:26):SBZ(25:8):segment(7:5):SBZ(4:0) */
-                       regs[0] = 0x0 | (segment << 5) | (index << 26);
+                       /* Ra:
+                        * r0 = index(31:26):SBZ(25:8):segment(7:5):SBZ(4:0)
+                        */
+                       regs[0] = 0x0 | (segment << 5) | (index_t << 26);
                        arm9tdmi_write_core_regs(target, 0x1, regs);
 
                        /* set interpret mode */
@@ -899,13 +978,18 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                        CP15PHYS_TESTSTATE, cp15c15);
 
                        /* Write DCache victim */
-                       arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,9,1,0), ARMV4_5_LDR(1, 0));
+                       arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,9,1,0), ARMV4_5_LDR(1, 0));
 
                        /* Read D RAM */
-                       arm920t_execute_cp15(target, ARMV4_5_MCR(15,2,0,15,10,2), ARMV4_5_LDMIA(0, 0x1fe, 0, 0));
+                       arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,2,0,15,10,2),
+                               ARMV4_5_LDMIA(0, 0x1fe, 0, 0));
 
                        /* Read D CAM */
-                       arm920t_execute_cp15(target, ARMV4_5_MCR(15,2,0,15,6,2), ARMV4_5_LDR(9, 0));
+                       arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,2,0,15,6,2),
+                               ARMV4_5_LDR(9, 0));
 
                        /* clear interpret mode */
                        cp15c15 &= ~0x1;
@@ -919,16 +1003,17 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                return retval;
                        }
 
-                       d_cache[segment][index].cam = regs[9];
-
                        /* mask LFSR[6] */
                        regs[9] &= 0xfffffffe;
-                       fprintf(output, "\nsegment: %i, index: %i, CAM: 0x%8.8" PRIx32 ", content (%s):\n", segment, index, regs[9], (regs[9] & 0x10) ? "valid" : "invalid");
+                       fprintf(output, "\nsegment: %i, index: %i, CAM: 0x%8.8"
+                               PRIx32 ", content (%s):\n",
+                               segment, index_t, regs[9],
+                               (regs[9] & 0x10) ? "valid" : "invalid");
 
                        for (i = 1; i < 9; i++)
                        {
-                                d_cache[segment][index].data[i] = regs[i];
-                                fprintf(output, "%i: 0x%8.8" PRIx32 "\n", i-1, regs[i]);
+                                fprintf(output, "%i: 0x%8.8" PRIx32 "\n",
+                                               i-1, regs[i]);
                        }
 
                }
@@ -943,7 +1028,8 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* Write DCache victim */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,9,1,0), ARMV4_5_LDR(1, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,9,1,0), ARMV4_5_LDR(1, 0));
 
                /* clear interpret mode */
                cp15c15 &= ~0x1;
@@ -955,7 +1041,9 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
        fprintf(output, "ICache:\n");
 
        /* go through segments 0 to nsets (8 on ARM920T, 4 on ARM922T) */
-       for (segment = 0; segment < arm920t->armv4_5_mmu.armv4_5_cache.d_u_size.nsets; segment++)
+       for (segment = 0;
+               segment < arm920t->armv4_5_mmu.armv4_5_cache.d_u_size.nsets;
+               segment++)
        {
                fprintf(output, "segment: %i\n----------", segment);
 
@@ -969,7 +1057,8 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* I CAM Read, loads current victim into C15.C.I.Ind */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,2,0,15,5,2), ARMV4_5_LDR(1, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,2,0,15,5,2), ARMV4_5_LDR(1, 0));
 
                /* read current victim */
                arm920t_read_cp15_physical(target, CP15PHYS_ICACHE_IDX,
@@ -980,10 +1069,12 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                arm920t_write_cp15_physical(target,
                                CP15PHYS_TESTSTATE, cp15c15);
 
-               for (index = 0; index < 64; index++)
+               for (index_t = 0; index_t < 64; index_t++)
                {
-                       /* Ra: r0 = index(31:26):SBZ(25:8):segment(7:5):SBZ(4:0) */
-                       regs[0] = 0x0 | (segment << 5) | (index << 26);
+                       /* Ra:
+                        * r0 = index(31:26):SBZ(25:8):segment(7:5):SBZ(4:0)
+                        */
+                       regs[0] = 0x0 | (segment << 5) | (index_t << 26);
                        arm9tdmi_write_core_regs(target, 0x1, regs);
 
                        /* set interpret mode */
@@ -992,13 +1083,18 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                        CP15PHYS_TESTSTATE, cp15c15);
 
                        /* Write ICache victim */
-                       arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,9,1,1), ARMV4_5_LDR(1, 0));
+                       arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,9,1,1), ARMV4_5_LDR(1, 0));
 
                        /* Read I RAM */
-                       arm920t_execute_cp15(target, ARMV4_5_MCR(15,2,0,15,9,2), ARMV4_5_LDMIA(0, 0x1fe, 0, 0));
+                       arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,2,0,15,9,2),
+                               ARMV4_5_LDMIA(0, 0x1fe, 0, 0));
 
                        /* Read I CAM */
-                       arm920t_execute_cp15(target, ARMV4_5_MCR(15,2,0,15,5,2), ARMV4_5_LDR(9, 0));
+                       arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,2,0,15,5,2),
+                               ARMV4_5_LDR(9, 0));
 
                        /* clear interpret mode */
                        cp15c15 &= ~0x1;
@@ -1012,16 +1108,17 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                return retval;
                        }
 
-                       i_cache[segment][index].cam = regs[9];
-
                        /* mask LFSR[6] */
                        regs[9] &= 0xfffffffe;
-                       fprintf(output, "\nsegment: %i, index: %i, CAM: 0x%8.8" PRIx32 ", content (%s):\n", segment, index, regs[9], (regs[9] & 0x10) ? "valid" : "invalid");
+                       fprintf(output, "\nsegment: %i, index: %i, "
+                               "CAM: 0x%8.8" PRIx32 ", content (%s):\n",
+                               segment, index_t, regs[9],
+                               (regs[9] & 0x10) ? "valid" : "invalid");
 
                        for (i = 1; i < 9; i++)
                        {
-                                i_cache[segment][index].data[i] = regs[i];
-                                fprintf(output, "%i: 0x%8.8" PRIx32 "\n", i-1, regs[i]);
+                                fprintf(output, "%i: 0x%8.8" PRIx32 "\n",
+                                               i-1, regs[i]);
                        }
                }
 
@@ -1035,7 +1132,8 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* Write ICache victim */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,9,1,1), ARMV4_5_LDR(1, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,9,1,1), ARMV4_5_LDR(1, 0));
 
                /* clear interpret mode */
                cp15c15 &= ~0x1;
@@ -1046,12 +1144,16 @@ COMMAND_HANDLER(arm920t_handle_read_cache_command)
        /* restore CP15 MMU and Cache settings */
        arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_ctrl_saved);
 
-       command_print(CMD_CTX, "cache content successfully output to %s", CMD_ARGV[0]);
+       command_print(CMD_CTX, "cache content successfully output to %s",
+                       CMD_ARGV[0]);
 
        fclose(output);
 
        if (!is_arm_mode(armv4_5->core_mode))
+       {
+               LOG_ERROR("not a valid arm core mode - communication failure?");
                return ERROR_FAIL;
+       }
 
        /* force writeback of the valid data */
        r = armv4_5->core_cache->reg_list;
@@ -1117,7 +1219,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
                return retval;
        }
        cp15_ctrl_saved = cp15_ctrl;
-       cp15_ctrl &= ~(ARMV4_5_MMU_ENABLED | ARMV4_5_D_U_CACHE_ENABLED | ARMV4_5_I_CACHE_ENABLED);
+       cp15_ctrl &= ~(ARMV4_5_MMU_ENABLED
+                       | ARMV4_5_D_U_CACHE_ENABLED | ARMV4_5_I_CACHE_ENABLED);
        arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_ctrl);
 
        /* read CP15 test state register */
@@ -1135,7 +1238,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        arm920t_write_cp15_physical(target, CP15PHYS_TESTSTATE, cp15c15);
 
        /* Read D TLB lockdown */
-       arm920t_execute_cp15(target, ARMV4_5_MRC(15,0,0,10,0,0), ARMV4_5_LDR(1, 0));
+       arm920t_execute_cp15(target,
+                       ARMV4_5_MRC(15,0,0,10,0,0), ARMV4_5_LDR(1, 0));
 
        /* clear interpret mode */
        cp15c15 &= ~0x1;
@@ -1152,7 +1256,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        for (victim = 0; victim < 64; victim += 8)
        {
                /* new lockdown value: base[31:26]:victim[25:20]:SBZ[19:1]:p[0]
-                * base remains unchanged, victim goes through entries 0 to 63 */
+                * base remains unchanged, victim goes through entries 0 to 63
+                */
                regs[1] = (Dlockdown & 0xfc000000) | (victim << 20);
                arm9tdmi_write_core_regs(target, 0x2, regs);
 
@@ -1162,10 +1267,14 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* Write D TLB lockdown */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,10,0,0), ARMV4_5_STR(1, 0));
+               arm920t_execute_cp15(target,
+                       ARMV4_5_MCR(15,0,0,10,0,0),
+                       ARMV4_5_STR(1, 0));
 
                /* Read D TLB CAM */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,4,0,15,6,4), ARMV4_5_LDMIA(0, 0x3fc, 0, 0));
+               arm920t_execute_cp15(target,
+                       ARMV4_5_MCR(15,4,0,15,6,4),
+                       ARMV4_5_LDMIA(0, 0x3fc, 0, 0));
 
                /* clear interpret mode */
                cp15c15 &= ~0x1;
@@ -1186,7 +1295,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        for (victim = 0; victim < 64; victim++)
        {
                /* new lockdown value: base[31:26]:victim[25:20]:SBZ[19:1]:p[0]
-                * base remains unchanged, victim goes through entries 0 to 63 */
+                * base remains unchanged, victim goes through entries 0 to 63
+                */
                regs[1] = (Dlockdown & 0xfc000000) | (victim << 20);
                arm9tdmi_write_core_regs(target, 0x2, regs);
 
@@ -1196,13 +1306,16 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* Write D TLB lockdown */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,10,0,0), ARMV4_5_STR(1, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,10,0,0), ARMV4_5_STR(1, 0));
 
                /* Read D TLB RAM1 */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,4,0,15,10,4), ARMV4_5_LDR(2,0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,4,0,15,10,4), ARMV4_5_LDR(2,0));
 
                /* Read D TLB RAM2 */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,4,0,15,2,5), ARMV4_5_LDR(3,0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,4,0,15,2,5), ARMV4_5_LDR(3,0));
 
                /* clear interpret mode */
                cp15c15 &= ~0x1;
@@ -1225,7 +1338,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        arm9tdmi_write_core_regs(target, 0x2, regs);
 
        /* Write D TLB lockdown */
-       arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,10,0,0), ARMV4_5_STR(1, 0));
+       arm920t_execute_cp15(target,
+                       ARMV4_5_MCR(15,0,0,10,0,0), ARMV4_5_STR(1, 0));
 
        /* prepare reading I TLB content
         * */
@@ -1235,7 +1349,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        arm920t_write_cp15_physical(target, CP15PHYS_TESTSTATE, cp15c15);
 
        /* Read I TLB lockdown */
-       arm920t_execute_cp15(target, ARMV4_5_MRC(15,0,0,10,0,1), ARMV4_5_LDR(1, 0));
+       arm920t_execute_cp15(target,
+                       ARMV4_5_MRC(15,0,0,10,0,1), ARMV4_5_LDR(1, 0));
 
        /* clear interpret mode */
        cp15c15 &= ~0x1;
@@ -1252,7 +1367,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        for (victim = 0; victim < 64; victim += 8)
        {
                /* new lockdown value: base[31:26]:victim[25:20]:SBZ[19:1]:p[0]
-                * base remains unchanged, victim goes through entries 0 to 63 */
+                * base remains unchanged, victim goes through entries 0 to 63
+                */
                regs[1] = (Ilockdown & 0xfc000000) | (victim << 20);
                arm9tdmi_write_core_regs(target, 0x2, regs);
 
@@ -1262,10 +1378,14 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* Write I TLB lockdown */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,10,0,1), ARMV4_5_STR(1, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,10,0,1),
+                               ARMV4_5_STR(1, 0));
 
                /* Read I TLB CAM */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,4,0,15,5,4), ARMV4_5_LDMIA(0, 0x3fc, 0, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,4,0,15,5,4),
+                               ARMV4_5_LDMIA(0, 0x3fc, 0, 0));
 
                /* clear interpret mode */
                cp15c15 &= ~0x1;
@@ -1286,7 +1406,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        for (victim = 0; victim < 64; victim++)
        {
                /* new lockdown value: base[31:26]:victim[25:20]:SBZ[19:1]:p[0]
-                * base remains unchanged, victim goes through entries 0 to 63 */
+                * base remains unchanged, victim goes through entries 0 to 63
+                */
                regs[1] = (Dlockdown & 0xfc000000) | (victim << 20);
                arm9tdmi_write_core_regs(target, 0x2, regs);
 
@@ -1296,13 +1417,16 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
                                CP15PHYS_TESTSTATE, cp15c15);
 
                /* Write I TLB lockdown */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,10,0,1), ARMV4_5_STR(1, 0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,0,0,10,0,1), ARMV4_5_STR(1, 0));
 
                /* Read I TLB RAM1 */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,4,0,15,9,4), ARMV4_5_LDR(2,0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,4,0,15,9,4), ARMV4_5_LDR(2,0));
 
                /* Read I TLB RAM2 */
-               arm920t_execute_cp15(target, ARMV4_5_MCR(15,4,0,15,1,5), ARMV4_5_LDR(3,0));
+               arm920t_execute_cp15(target,
+                               ARMV4_5_MCR(15,4,0,15,1,5), ARMV4_5_LDR(3,0));
 
                /* clear interpret mode */
                cp15c15 &= ~0x1;
@@ -1325,7 +1449,8 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        arm9tdmi_write_core_regs(target, 0x2, regs);
 
        /* Write I TLB lockdown */
-       arm920t_execute_cp15(target, ARMV4_5_MCR(15,0,0,10,0,1), ARMV4_5_STR(1, 0));
+       arm920t_execute_cp15(target,
+                       ARMV4_5_MCR(15,0,0,10,0,1), ARMV4_5_STR(1, 0));
 
        /* restore CP15 MMU and Cache settings */
        arm920t_write_cp15_physical(target, CP15PHYS_CTRL, cp15_ctrl_saved);
@@ -1334,21 +1459,31 @@ COMMAND_HANDLER(arm920t_handle_read_mmu_command)
        fprintf(output, "D TLB content:\n");
        for (i = 0; i < 64; i++)
        {
-               fprintf(output, "%i: 0x%8.8" PRIx32 " 0x%8.8" PRIx32 " 0x%8.8" PRIx32 " %s\n", i, d_tlb[i].cam, d_tlb[i].ram1, d_tlb[i].ram2, (d_tlb[i].cam & 0x20) ? "(valid)" : "(invalid)");
+               fprintf(output, "%i: 0x%8.8" PRIx32 " 0x%8.8" PRIx32
+                       " 0x%8.8" PRIx32 " %s\n",
+                       i, d_tlb[i].cam, d_tlb[i].ram1, d_tlb[i].ram2,
+                       (d_tlb[i].cam & 0x20) ? "(valid)" : "(invalid)");
        }
 
        fprintf(output, "\n\nI TLB content:\n");
        for (i = 0; i < 64; i++)
        {
-               fprintf(output, "%i: 0x%8.8" PRIx32 " 0x%8.8" PRIx32 " 0x%8.8" PRIx32 " %s\n", i, i_tlb[i].cam, i_tlb[i].ram1, i_tlb[i].ram2, (i_tlb[i].cam & 0x20) ? "(valid)" : "(invalid)");
+               fprintf(output, "%i: 0x%8.8" PRIx32 " 0x%8.8" PRIx32
+                       " 0x%8.8" PRIx32 " %s\n",
+                       i, i_tlb[i].cam, i_tlb[i].ram1, i_tlb[i].ram2,
+                       (i_tlb[i].cam & 0x20) ? "(valid)" : "(invalid)");
        }
 
-       command_print(CMD_CTX, "mmu content successfully output to %s", CMD_ARGV[0]);
+       command_print(CMD_CTX, "mmu content successfully output to %s",
+                       CMD_ARGV[0]);
 
        fclose(output);
 
        if (!is_arm_mode(armv4_5->core_mode))
+       {
+               LOG_ERROR("not a valid arm core mode - communication failure?");
                return ERROR_FAIL;
+       }
 
        /* force writeback of the valid data */
        r = armv4_5->core_cache->reg_list;
@@ -1382,11 +1517,14 @@ COMMAND_HANDLER(arm920t_handle_cp15_command)
 
        if (target->state != TARGET_HALTED)
        {
-               command_print(CMD_CTX, "target must be stopped for \"%s\" command", CMD_NAME);
+               command_print(CMD_CTX, "target must be stopped for "
+                       "\"%s\" command", CMD_NAME);
                return ERROR_OK;
        }
 
-       /* one or more argument, access a single register (write if second argument is given */
+       /* one argument, read a register.
+        * two arguments, write it.
+        */
        if (CMD_ARGC >= 1)
        {
                int address;
@@ -1395,9 +1533,11 @@ COMMAND_HANDLER(arm920t_handle_cp15_command)
                if (CMD_ARGC == 1)
                {
                        uint32_t value;
-                       if ((retval = arm920t_read_cp15_physical(target, address, &value)) != ERROR_OK)
+                       if ((retval = arm920t_read_cp15_physical(target,
+                                       address, &value)) != ERROR_OK)
                        {
-                               command_print(CMD_CTX, "couldn't access reg %i", address);
+                               command_print(CMD_CTX,
+                                       "couldn't access reg %i", address);
                                return ERROR_OK;
                        }
                        if ((retval = jtag_execute_queue()) != ERROR_OK)
@@ -1405,18 +1545,24 @@ COMMAND_HANDLER(arm920t_handle_cp15_command)
                                return retval;
                        }
 
-                       command_print(CMD_CTX, "%i: %8.8" PRIx32 "", address, value);
+                       command_print(CMD_CTX, "%i: %8.8" PRIx32,
+                                       address, value);
                }
                else if (CMD_ARGC == 2)
                {
                        uint32_t value;
                        COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], value);
-                       if ((retval = arm920t_write_cp15_physical(target, address, value)) != ERROR_OK)
+                       retval = arm920t_write_cp15_physical(target,
+                                       address, value);
+                       if (retval != ERROR_OK)
                        {
-                               command_print(CMD_CTX, "couldn't access reg %i", address);
+                               command_print(CMD_CTX,
+                                       "couldn't access reg %i", address);
+                               /* REVISIT why lie? "return retval"? */
                                return ERROR_OK;
                        }
-                       command_print(CMD_CTX, "%i: %8.8" PRIx32 "", address, value);
+                       command_print(CMD_CTX, "%i: %8.8" PRIx32,
+                                       address, value);
                }
        }
 
@@ -1436,11 +1582,14 @@ COMMAND_HANDLER(arm920t_handle_cp15i_command)
 
        if (target->state != TARGET_HALTED)
        {
-               command_print(CMD_CTX, "target must be stopped for \"%s\" command", CMD_NAME);
+               command_print(CMD_CTX, "target must be stopped for "
+                               "\"%s\" command", CMD_NAME);
                return ERROR_OK;
        }
 
-       /* one or more argument, access a single register (write if second argument is given */
+       /* one argument, read a register.
+        * two arguments, write it.
+        */
        if (CMD_ARGC >= 1)
        {
                uint32_t opcode;
@@ -1449,24 +1598,36 @@ COMMAND_HANDLER(arm920t_handle_cp15i_command)
                if (CMD_ARGC == 1)
                {
                        uint32_t value;
-                       if ((retval = arm920t_read_cp15_interpreted(target, opcode, 0x0, &value)) != ERROR_OK)
+                       retval = arm920t_read_cp15_interpreted(target,
+                                       opcode, 0x0, &value);
+                       if (retval != ERROR_OK)
                        {
-                               command_print(CMD_CTX, "couldn't execute %8.8" PRIx32 "", opcode);
+                               command_print(CMD_CTX,
+                                       "couldn't execute %8.8" PRIx32,
+                                       opcode);
+                               /* REVISIT why lie? "return retval"? */
                                return ERROR_OK;
                        }
 
-                       command_print(CMD_CTX, "%8.8" PRIx32 ": %8.8" PRIx32 "", opcode, value);
+                       command_print(CMD_CTX, "%8.8" PRIx32 ": %8.8" PRIx32,
+                                       opcode, value);
                }
                else if (CMD_ARGC == 2)
                {
                        uint32_t value;
                        COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], value);
-                       if ((retval = arm920t_write_cp15_interpreted(target, opcode, value, 0)) != ERROR_OK)
+                       retval = arm920t_write_cp15_interpreted(target,
+                                       opcode, value, 0);
+                       if (retval != ERROR_OK)
                        {
-                               command_print(CMD_CTX, "couldn't execute %8.8" PRIx32 "", opcode);
+                               command_print(CMD_CTX,
+                                       "couldn't execute %8.8" PRIx32,
+                                       opcode);
+                               /* REVISIT why lie? "return retval"? */
                                return ERROR_OK;
                        }
-                       command_print(CMD_CTX, "%8.8" PRIx32 ": %8.8" PRIx32 "", opcode, value);
+                       command_print(CMD_CTX, "%8.8" PRIx32 ": %8.8" PRIx32,
+                                       opcode, value);
                }
                else if (CMD_ARGC == 3)
                {
@@ -1474,17 +1635,23 @@ COMMAND_HANDLER(arm920t_handle_cp15i_command)
                        COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], value);
                        uint32_t address;
                        COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], address);
-                       if ((retval = arm920t_write_cp15_interpreted(target, opcode, value, address)) != ERROR_OK)
+                       retval = arm920t_write_cp15_interpreted(target,
+                                       opcode, value, address);
+                       if (retval != ERROR_OK)
                        {
-                               command_print(CMD_CTX, "couldn't execute %8.8" PRIx32 "", opcode);
+                               command_print(CMD_CTX,
+                                       "couldn't execute %8.8" PRIx32, opcode);
+                               /* REVISIT why lie? "return retval"? */
                                return ERROR_OK;
                        }
-                       command_print(CMD_CTX, "%8.8" PRIx32 ": %8.8" PRIx32 " %8.8" PRIx32 "", opcode, value, address);
+                       command_print(CMD_CTX, "%8.8" PRIx32 ": %8.8" PRIx32
+                                       " %8.8" PRIx32, opcode, value, address);
                }
        }
        else
        {
-               command_print(CMD_CTX, "usage: arm920t cp15i <opcode> [value] [address]");
+               command_print(CMD_CTX,
+                       "usage: arm920t cp15i <opcode> [value] [address]");
        }
 
        return ERROR_OK;
@@ -1500,7 +1667,8 @@ COMMAND_HANDLER(arm920t_handle_cache_info_command)
        if (retval != ERROR_OK)
                return retval;
 
-       return armv4_5_handle_cache_info_command(CMD_CTX, &arm920t->armv4_5_mmu.armv4_5_cache);
+       return armv4_5_handle_cache_info_command(CMD_CTX,
+                       &arm920t->armv4_5_mmu.armv4_5_cache);
 }