arm_adi_v5: mem_ap_write error propagation
[fw/openocd] / src / target / armv7m.c
index 1216a45fbe2564e3af9f5dd16dce8d43566e53d3..bd5aa147afc2f5560d579df5f874d0dab02683ed 100644 (file)
@@ -139,9 +139,6 @@ int armv7m_restore_context(struct target *target)
                }
        }
 
-       if (armv7m->post_restore_context)
-               armv7m->post_restore_context(target);
-
        return ERROR_OK;
 }
 
@@ -530,7 +527,7 @@ struct reg_cache *armv7m_build_reg_cache(struct target *target)
        return cache;
 }
 
-int armv7m_setup_semihosting(struct target *target, int enable)
+static int armv7m_setup_semihosting(struct target *target, int enable)
 {
        /* nothing todo for armv7m */
        return ERROR_OK;
@@ -618,8 +615,10 @@ int armv7m_checksum_memory(struct target *target,
        buf_set_u32(reg_params[0].value, 0, 32, address);
        buf_set_u32(reg_params[1].value, 0, 32, count);
 
+       int timeout = 20000 * (1 + (count / (1024 * 1024)));
+
        if ((retval = target_run_algorithm(target, 0, NULL, 2, reg_params,
-               crc_algorithm->address, crc_algorithm->address + (sizeof(cortex_m3_crc_code)-6), 20000, &armv7m_info)) != ERROR_OK)
+               crc_algorithm->address, crc_algorithm->address + (sizeof(cortex_m3_crc_code)-6), timeout, &armv7m_info)) != ERROR_OK)
        {
                LOG_ERROR("error executing cortex_m3 crc algorithm");
                destroy_reg_param(&reg_params[0]);