summaryrefslogtreecommitdiff
path: root/src/target/arm920t.c
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-06-10 16:18:14 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-06-11 15:53:23 +0200
commit0538081246fafbfb74d554bb1b758412534aa254 (patch)
treec845abc278fa7483617669557d53b034aa17b90f /src/target/arm920t.c
parentecc8041c0f4c30a7310c0f8414a5261ee7a090ca (diff)
downloadopenocd+libswd-0538081246fafbfb74d554bb1b758412534aa254.tar.gz
openocd+libswd-0538081246fafbfb74d554bb1b758412534aa254.tar.bz2
openocd+libswd-0538081246fafbfb74d554bb1b758412534aa254.tar.xz
openocd+libswd-0538081246fafbfb74d554bb1b758412534aa254.zip
arm mmu: error propagation added for address translation
The return value for MMU translation was a mess, either error or value. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/target/arm920t.c')
-rw-r--r--src/target/arm920t.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/target/arm920t.c b/src/target/arm920t.c
index 658315b2..31751960 100644
--- a/src/target/arm920t.c
+++ b/src/target/arm920t.c
@@ -514,8 +514,11 @@ static int arm920_virt2phys(struct target *target,
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);
+ uint32_t ret;
+ int retval = armv4_5_mmu_translate_va(target,
+ &arm920t->armv4_5_mmu, virt, &type, &cb, &domain, &ap, &ret);
+ if (retval != ERROR_OK)
+ return retval;
if (type == -1)
{
return ret;
@@ -589,8 +592,10 @@ int arm920t_write_memory(struct target *target, uint32_t address,
/*
* We need physical address and cb
*/
- pa = armv4_5_mmu_translate_va(target, &arm920t->armv4_5_mmu,
- address, &type, &cb, &domain, &ap);
+ int retval = armv4_5_mmu_translate_va(target, &arm920t->armv4_5_mmu,
+ address, &type, &cb, &domain, &ap, &pa);
+ if (retval != ERROR_OK)
+ return retval;
if (type == -1)
return pa;