aboutsummaryrefslogtreecommitdiff
path: root/src/target/arm7_9_common.c
diff options
context:
space:
mode:
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>2013-03-11 22:21:13 +0100
committerSpencer Oliver <spen@spen-soft.co.uk>2013-09-13 19:33:28 +0000
commit5c2f920cc792d40f449cf596b5729671d0414fa1 (patch)
tree22b1e15e88202afdd15aac62de817814536601d8 /src/target/arm7_9_common.c
parent52eb82e893f058ef86e61b5a73334c8a44070100 (diff)
[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>
Diffstat (limited to 'src/target/arm7_9_common.c')
-rw-r--r--src/target/arm7_9_common.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c
index 587cb0ee..6eade96a 100644
--- a/src/target/arm7_9_common.c
+++ b/src/target/arm7_9_common.c
@@ -2469,6 +2469,20 @@ int arm7_9_write_memory(struct target *target,
return ERROR_OK;
}
+int arm7_9_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 arm7_9_write_memory(target, address, size, count, buffer);
+}
+
static int dcc_count;
static const uint8_t *dcc_buffer;