aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware/hvmloader/rombios.c
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-07-25 13:57:49 +0100
committerKeir Fraser <keir@xen.org>2011-07-25 13:57:49 +0100
commit62d1e95e708bb750b405cd6c5406ed7dff15522c (patch)
treef52893bf1d728b927d847becfe584e7ed4397565 /tools/firmware/hvmloader/rombios.c
parent63b9bf301796cf0f592aa6e35fe3f62b373eac99 (diff)
downloadxen-62d1e95e708bb750b405cd6c5406ed7dff15522c.tar.gz
xen-62d1e95e708bb750b405cd6c5406ed7dff15522c.tar.bz2
xen-62d1e95e708bb750b405cd6c5406ed7dff15522c.zip
hvmloader: Replace bios_relocate hook with bios_load hook
Used by OVMF BIOS handler. Signed-off-by: Bei Guan <gbtju85@gmail.com> Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/firmware/hvmloader/rombios.c')
-rw-r--r--tools/firmware/hvmloader/rombios.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/firmware/hvmloader/rombios.c b/tools/firmware/hvmloader/rombios.c
index 96ba718f3f..632ab87c45 100644
--- a/tools/firmware/hvmloader/rombios.c
+++ b/tools/firmware/hvmloader/rombios.c
@@ -81,11 +81,15 @@ static void rombios_setup_bios_info(void)
memset(info, 0, sizeof(*info));
}
-static void rombios_relocate(void)
+static void rombios_load(const struct bios_config *config)
{
uint32_t bioshigh;
struct rombios_info *info;
+ printf("Loading %s ...\n", config->name);
+ memcpy((void *)config->bios_address, config->image,
+ config->image_size);
+
bioshigh = rombios_highbios_setup();
info = (struct rombios_info *)BIOS_INFO_PHYSICAL_ADDRESS;
@@ -169,11 +173,11 @@ struct bios_config rombios_config = {
.optionrom_start = OPTIONROM_PHYSICAL_ADDRESS,
.optionrom_end = OPTIONROM_PHYSICAL_END,
+ .bios_load = rombios_load,
+
.bios_info_setup = rombios_setup_bios_info,
.bios_info_finish = NULL,
- .bios_relocate = rombios_relocate,
-
.vm86_setup = rombios_init_vm86_tss,
.e820_setup = rombios_setup_e820,