[RFC] target: Move bulk_write_memory to arm7_9

The only remaining user is arm7_9 so remove it from the target API and add
it to struct arm7_9_common to support all its variants with minimal
changes. Many of the variants are likely not correct in the cache/mmu
handling when the bulk write is triggered. This patch does nothing to
change that, except for arm946e, where it was easier to do what might be
the right thing.

Change-Id: Ie73ac07507ff0936fefdb90760046cc8810ed182
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1220
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Andreas Fritiofson
2013-03-11 22:21:13 +01:00
committed by Spencer Oliver
parent 52eb82e893
commit 5c2f920cc7
15 changed files with 70 additions and 50 deletions

View File

@@ -656,6 +656,17 @@ int arm926ejs_write_memory(struct target *target, uint32_t address,
return retval;
}
int arm926ejs_write_memory_opt(struct target *target, uint32_t address,
uint32_t size, uint32_t count, const uint8_t *buffer)
{
struct arm7_9_common *arm7_9 = target_to_arm7_9(target);
if (size == 4 && count > 32 && arm7_9->bulk_write_memory)
return arm7_9->bulk_write_memory(target, address, count, buffer);
else
return arm926ejs_write_memory(target, address, size, count, buffer);
}
static int arm926ejs_write_phys_memory(struct target *target,
uint32_t address, uint32_t size,
uint32_t count, const uint8_t *buffer)
@@ -808,8 +819,7 @@ struct target_type arm926ejs_target = {
.get_gdb_reg_list = arm_get_gdb_reg_list,
.read_memory = arm7_9_read_memory,
.write_memory = arm926ejs_write_memory,
.bulk_write_memory = arm7_9_bulk_write_memory,
.write_memory = arm926ejs_write_memory_opt,
.checksum_memory = arm_checksum_memory,
.blank_check_memory = arm_blank_check_memory,