acpi: Write pointers to tables instead of addresses

Sandbox uses an API to map between addresses and pointers. This allows
it to have (emulated) memory at zero and avoid arch-specific addressing
details. It also allows memory-mapped peripherals to work.

As an example, on many machines sandbox maps address 100 to pointer
value 10000000.

However this is not correct for ACPI, if sandbox starts another program
(e.g EFI app) and passes it the tables. That app has no knowledge of
sandbox's address mapping. So to make this work we want to store
10000000 as the value in the table.

Add two new 'nomap' functions which clearly make this exeption to how
sandbox works.

This should allow EFI apps to access ACPI tables with sandbox, e.g. for
testing purposes.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
diff --git a/lib/acpi/acpi.c b/lib/acpi/acpi.c
index 939a638..bcafd77 100644
--- a/lib/acpi/acpi.c
+++ b/lib/acpi/acpi.c
@@ -22,13 +22,13 @@
 	if (!rsdp)
 		return NULL;
 	if (rsdp->xsdt_address) {
-		xsdt = map_sysmem(rsdp->xsdt_address, 0);
+		xsdt = nomap_sysmem(rsdp->xsdt_address, 0);
 		len = xsdt->header.length - sizeof(xsdt->header);
 		count = len / sizeof(u64);
 	} else {
 		if (!rsdp->rsdt_address)
 			return NULL;
-		rsdt = map_sysmem(rsdp->rsdt_address, 0);
+		rsdt = nomap_sysmem(rsdp->rsdt_address, 0);
 		len = rsdt->header.length - sizeof(rsdt->header);
 		count = len / sizeof(u32);
 	}
@@ -36,19 +36,19 @@
 		struct acpi_table_header *hdr;
 
 		if (rsdp->xsdt_address)
-			hdr = map_sysmem(xsdt->entry[i], 0);
+			hdr = nomap_sysmem(xsdt->entry[i], 0);
 		else
-			hdr = map_sysmem(rsdt->entry[i], 0);
+			hdr = nomap_sysmem(rsdt->entry[i], 0);
 		if (!memcmp(hdr->signature, sig, ACPI_NAME_LEN))
 			return hdr;
 		if (!memcmp(hdr->signature, "FACP", ACPI_NAME_LEN)) {
 			struct acpi_fadt *fadt = (struct acpi_fadt *)hdr;
 
 			if (!memcmp(sig, "DSDT", ACPI_NAME_LEN) && fadt->dsdt)
-				return map_sysmem(fadt->dsdt, 0);
+				return nomap_sysmem(fadt->dsdt, 0);
 			if (!memcmp(sig, "FACS", ACPI_NAME_LEN) &&
 			    fadt->firmware_ctrl)
-				return map_sysmem(fadt->firmware_ctrl, 0);
+				return nomap_sysmem(fadt->firmware_ctrl, 0);
 		}
 	}