summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Pignat <marc.pignat@hevs.ch>2010-02-12 08:23:44 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-02-12 08:31:06 +0100
commitff404da1558f0dcc5d92b18caa1706b9edf067d1 (patch)
tree71c14c52c28d00bca00bed4f522e7379ad78f941
parent32188c500468c117d2a79106ba9ae41d61ce1897 (diff)
downloadopenocd_libswd-ff404da1558f0dcc5d92b18caa1706b9edf067d1.tar.gz
openocd_libswd-ff404da1558f0dcc5d92b18caa1706b9edf067d1.tar.bz2
openocd_libswd-ff404da1558f0dcc5d92b18caa1706b9edf067d1.tar.xz
openocd_libswd-ff404da1558f0dcc5d92b18caa1706b9edf067d1.zip
arm920: add virt2phys fn
Copy of the 926ejs function. I have tested it only using my rtems application (where virtual address mapping == physical). Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
-rw-r--r--src/target/arm920t.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/target/arm920t.c b/src/target/arm920t.c
index e0b1c70a..e04d9fca 100644
--- a/src/target/arm920t.c
+++ b/src/target/arm920t.c
@@ -472,9 +472,19 @@ static int arm920_mmu(struct target *target, int *enabled)
static int arm920_virt2phys(struct target *target,
uint32_t virt, uint32_t *phys)
{
- /** @todo Implement this! */
- LOG_ERROR("%s: not implemented", __func__);
- return ERROR_FAIL;
+ 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;
+ }
+ *phys = ret;
+ return ERROR_OK;
}
/** Reads a buffer, in the specified word size, with current MMU settings. */