diff options
author | Marc 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 |
commit | ff404da1558f0dcc5d92b18caa1706b9edf067d1 (patch) | |
tree | 71c14c52c28d00bca00bed4f522e7379ad78f941 | |
parent | 32188c500468c117d2a79106ba9ae41d61ce1897 (diff) | |
download | openocd_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.c | 16 |
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. */ |