From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [RFC PATCH v2 10/16] hvmloader: Load OVMF from modules Date: Mon, 26 Oct 2015 16:03:11 +0000 Message-ID: <1445875397-2846-11-git-send-email-anthony.perard@citrix.com> References: <1445875397-2846-1-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1445875397-2846-1-git-send-email-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Anthony PERARD List-Id: xen-devel@lists.xenproject.org ... 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 0x000FFFFFULL -#define OVMF_BEGIN (0x100000000ULL - ((OVMF_SIZE + OVMF_MAXOFFSET) & ~OVMF_MAXOFFSET)) -#define OVMF_END (OVMF_BEGIN + OVMF_SIZE) #define LOWCHUNK_BEGIN 0x000F0000 #define LOWCHUNK_SIZE 0x00010000 #define LOWCHUNK_MAXOFFSET 0x0000FFFF -#define LOWCHUNK_END (OVMF_BEGIN + OVMF_SIZE) #define OVMF_INFO_PHYSICAL_ADDRESS 0x00001000 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 0x000FFFFFULL +#define OVMF_BEGIN (0x100000000ULL - ((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