... and do not include the OVMF ROM into hvmloader anymore.
Signed-off-by: Anthony PERARD
---
tools/firmware/hvmloader/ovmf.c | 22 +++---
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c
index 2be9752..3c0ec91 100644
--- a/tools/firmware/hvmloader/ovmf.c
+++ b/tools/firmware/hvmloader/ovmf.c
@@ -34,17 +34,9 @@
#include
#include
-#define ROM_INCLUDE_OVMF
-#include "roms.inc"
-
-#define OVMF_SIZE (sizeof(ovmf))
-#define OVMF_MAXOFFSET 0x000FULL
-#define OVMF_BEGIN (0x1ULL - ((OVMF_SIZE +
OVMF_MAXOFFSET) & ~OVMF_MAXOFFSET))
-#define OVMF_END(OVMF_BEGIN + OVMF_SIZE)
#define LOWCHUNK_BEGIN 0x000F
#define LOWCHUNK_SIZE 0x0001
#define LOWCHUNK_MAXOFFSET 0x
-#define LOWCHUNK_END(OVMF_BEGIN + OVMF_SIZE)
#define OVMF_INFO_PHYSICAL_ADDRESS 0x1000
extern unsigned char dsdt_anycpu[];
@@ -96,12 +88,16 @@ static void ovmf_finish_bios_info(void)
static void ovmf_load(const struct bios_config *config,
void *bios_addr, uint32_t bios_length)
{
+#define OVMF_MAXOFFSET 0x000FULL
+#define OVMF_BEGIN (0x1ULL - ((bios_length + OVMF_MAXOFFSET) &
~OVMF_MAXOFFSET))
+#define OVMF_END(OVMF_BEGIN + bios_length)
xen_pfn_t mfn;
uint64_t addr = OVMF_BEGIN;
+unsigned int dest = OVMF_BEGIN;
/* Copy low-reset vector portion. */
-memcpy((void *) LOWCHUNK_BEGIN, (uint8_t *) config->image
- + OVMF_SIZE
+memcpy((void *) LOWCHUNK_BEGIN, (uint8_t *) bios_addr
+ + bios_length
- LOWCHUNK_SIZE,
LOWCHUNK_SIZE);
@@ -114,7 +110,7 @@ static void ovmf_load(const struct bios_config *config,
}
/* Copy FD. */
-memcpy((void *) OVMF_BEGIN, config->image, OVMF_SIZE);
+memcpy((void *) dest, bios_addr, bios_length);
}
static void ovmf_acpi_build_tables(void)
@@ -151,10 +147,6 @@ static void ovmf_setup_e820(void)
struct bios_config ovmf_config = {
.name = "OVMF",
-.image = ovmf,
-.image_size = sizeof(ovmf),
-
-.bios_address = OVMF_BEGIN,
.bios_load = ovmf_load,
.load_roms = 0,
--
Anthony PERARD
___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel