arm920: add virt2phys fn
authorMarc Pignat <marc.pignat@hevs.ch>
Fri, 12 Feb 2010 07:23:44 +0000 (08:23 +0100)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 12 Feb 2010 07:31:06 +0000 (08:31 +0100)
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>
src/target/arm920t.c

index e0b1c70ae2d61d44e7b0a55af876082787427de8..e04d9fcab88ca803240f368b560e455693f6cf77 100644 (file)
@@ -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. */