Support custom boot address for primary VMs

A VM may be preloaded to a different address than the bottom of its
address space. Support providing a custom address to ERET to after
initialization. This is supported only for primary VMs for now.

Change-Id: I81bb43bf11a626d5fe8b5cdea6361b91d9eb5e46
diff --git a/inc/hf/manifest.h b/inc/hf/manifest.h
index 2609973..2c736e7 100644
--- a/inc/hf/manifest.h
+++ b/inc/hf/manifest.h
@@ -21,6 +21,8 @@
 #include "hf/string.h"
 #include "hf/vm.h"
 
+#define MANIFEST_INVALID_ADDRESS UINT64_MAX
+
 /**
  * Holds information about one of the VMs described in the manifest.
  */
@@ -33,6 +35,7 @@
 	union {
 		/* Properties specific to the primary VM. */
 		struct {
+			uint64_t boot_address;
 			struct string ramdisk_filename;
 		} primary;
 		/* Properties specific to secondary VMs. */