Separate address types from memory management.

This allows extracting some code from the architecture specific headers.

Change-Id: I37f7d9955a10025ef491c4e2ca76a6ffaf123a6b
diff --git a/src/fdt_handler.c b/src/fdt_handler.c
index 8121790..99ea4d4 100644
--- a/src/fdt_handler.c
+++ b/src/fdt_handler.c
@@ -174,14 +174,14 @@
 	bool ret = false;
 
 	/* Map the fdt header in. */
-	if (!mm_identity_map(mm_va_from_pa(fdt_addr),
-			     va_init(pa_addr(fdt_addr) + fdt_header_size()),
+	if (!mm_identity_map(va_from_pa(fdt_addr),
+			     va_add(va_from_pa(fdt_addr), fdt_header_size()),
 			     MM_MODE_R)) {
 		dlog("Unable to map FDT header.\n");
 		goto err_unmap_fdt_header;
 	}
 
-	fdt = mm_ptr_from_va(mm_va_from_pa(fdt_addr));
+	fdt = ptr_from_va(va_from_pa(fdt_addr));
 
 	if (!fdt_root_node(&n, fdt)) {
 		dlog("FDT failed validation.\n");
@@ -189,8 +189,8 @@
 	}
 
 	/* Map the rest of the fdt in. */
-	if (!mm_identity_map(mm_va_from_pa(fdt_addr),
-			     va_init(pa_addr(fdt_addr) + fdt_total_size(fdt)),
+	if (!mm_identity_map(va_from_pa(fdt_addr),
+			     va_add(va_from_pa(fdt_addr), fdt_total_size(fdt)),
 			     MM_MODE_R)) {
 		dlog("Unable to map full FDT.\n");
 		goto err_unmap_fdt_header;
@@ -213,13 +213,13 @@
 	ret = true;
 
 out_unmap_fdt:
-	mm_unmap(mm_va_from_pa(fdt_addr),
-		 va_init(pa_addr(fdt_addr) + fdt_total_size(fdt)), 0);
+	mm_unmap(va_from_pa(fdt_addr),
+		 va_add(va_from_pa(fdt_addr), fdt_total_size(fdt)), 0);
 	return ret;
 
 err_unmap_fdt_header:
-	mm_unmap(mm_va_from_pa(fdt_addr),
-		 va_init(pa_addr(fdt_addr) + fdt_header_size()), 0);
+	mm_unmap(va_from_pa(fdt_addr),
+		 va_add(va_from_pa(fdt_addr), fdt_header_size()), 0);
 	return false;
 }
 
@@ -230,14 +230,14 @@
 	bool ret = false;
 
 	/* Map the fdt header in. */
-	if (!mm_identity_map(mm_va_from_pa(fdt_addr),
-			     va_init(pa_addr(fdt_addr) + fdt_header_size()),
+	if (!mm_identity_map(va_from_pa(fdt_addr),
+			     va_add(va_from_pa(fdt_addr), fdt_header_size()),
 			     MM_MODE_R)) {
 		dlog("Unable to map FDT header.\n");
 		return false;
 	}
 
-	fdt = mm_ptr_from_va(mm_va_from_pa(fdt_addr));
+	fdt = ptr_from_va(va_from_pa(fdt_addr));
 
 	if (!fdt_root_node(&n, fdt)) {
 		dlog("FDT failed validation.\n");
@@ -245,9 +245,9 @@
 	}
 
 	/* Map the fdt (+ a page) in r/w mode in preparation for updating it. */
-	if (!mm_identity_map(mm_va_from_pa(fdt_addr),
-			     va_init(pa_addr(fdt_addr) + fdt_total_size(fdt) +
-				     PAGE_SIZE),
+	if (!mm_identity_map(va_from_pa(fdt_addr),
+			     va_add(va_from_pa(fdt_addr),
+				    fdt_total_size(fdt) + PAGE_SIZE),
 			     MM_MODE_R | MM_MODE_W)) {
 		dlog("Unable to map FDT in r/w mode.\n");
 		goto err_unmap_fdt_header;
@@ -291,9 +291,9 @@
 
 out_unmap_fdt:
 	/* Unmap FDT. */
-	if (!mm_unmap(mm_va_from_pa(fdt_addr),
-		      va_init(pa_addr(fdt_addr) + fdt_total_size(fdt) +
-			      PAGE_SIZE),
+	if (!mm_unmap(va_from_pa(fdt_addr),
+		      va_add(va_from_pa(fdt_addr),
+			     fdt_total_size(fdt) + PAGE_SIZE),
 		      0)) {
 		dlog("Unable to unmap writable FDT.\n");
 		return false;
@@ -301,7 +301,7 @@
 	return ret;
 
 err_unmap_fdt_header:
-	mm_unmap(mm_va_from_pa(fdt_addr),
-		 va_init(pa_addr(fdt_addr) + fdt_header_size()), 0);
+	mm_unmap(va_from_pa(fdt_addr),
+		 va_add(va_from_pa(fdt_addr), fdt_header_size()), 0);
 	return false;
 }