aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-04-25 13:33:29 +0100
committerKeir Fraser <keir@xen.org>2011-04-25 13:33:29 +0100
commita8bb2c6ec1ea9239b7b65ac40d549b057e6b8aa2 (patch)
treee6c710fe7787745461c11da37ce1f25bd08e7af2
parent95bb935cc1f995a609a6c793b3f09ab8eed6afaa (diff)
downloadxen-a8bb2c6ec1ea9239b7b65ac40d549b057e6b8aa2.tar.gz
xen-a8bb2c6ec1ea9239b7b65ac40d549b057e6b8aa2.tar.bz2
xen-a8bb2c6ec1ea9239b7b65ac40d549b057e6b8aa2.zip
hvmloader: Fix _start-relative calculation of hypercall page address.
We got away with it because _start-HYPERCALL_PHYSICAL_ADDRESS happens to equal HYPERCALL_PHYSICAL_ADDRESS. Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 23244:024b06de81ca xen-unstable date: Mon Apr 18 18:08:47 2011 +0100
-rw-r--r--tools/firmware/hvmloader/config.h1
-rw-r--r--tools/firmware/hvmloader/hypercall.h3
2 files changed, 3 insertions, 1 deletions
diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmloader/config.h
index 57e6117b01..18b27e2fc2 100644
--- a/tools/firmware/hvmloader/config.h
+++ b/tools/firmware/hvmloader/config.h
@@ -41,6 +41,7 @@ extern unsigned long pci_mem_start, pci_mem_end;
#define SMBIOS_PHYSICAL_ADDRESS 0x000EB000
#define SMBIOS_MAXIMUM_SIZE 0x00005000
#define ROMBIOS_PHYSICAL_ADDRESS 0x000F0000
+#define HVMLOADER_PHYSICAL_ADDRESS 0x00100000
/* Offsets from E820_PHYSICAL_ADDRESS. */
#define E820_NR_OFFSET 0x0
diff --git a/tools/firmware/hvmloader/hypercall.h b/tools/firmware/hvmloader/hypercall.h
index 2df7247359..2de0d828e1 100644
--- a/tools/firmware/hvmloader/hypercall.h
+++ b/tools/firmware/hvmloader/hypercall.h
@@ -39,7 +39,8 @@
* NB. Hypercall address needs to be relative to a linkage symbol for
* some version of ld to relocate the relative calls properly.
*/
-#define hypercall_pa "_start - " STR(HYPERCALL_PHYSICAL_ADDRESS)
+#define hypercall_pa "_start - " STR(HVMLOADER_PHYSICAL_ADDRESS) \
+ " + " STR(HYPERCALL_PHYSICAL_ADDRESS)
#define _hypercall0(type, name) \
({ \