[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] hvmloader: Replace bios_relocate hook with bios_load hook



# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1311598669 -3600
# Node ID 360b31a5263cf60081cd6dd41c1c7858fcaccbc6
# Parent  50ddc200a60cad3929a79a992f09145fd39af49d
hvmloader: Replace bios_relocate hook with bios_load hook

Used by OVMF BIOS handler.

Signed-off-by: Bei Guan <gbtju85@xxxxxxxxx>
Signed-off-by: Keir Fraser <keir@xxxxxxx>
---


diff -r 50ddc200a60c -r 360b31a5263c tools/firmware/hvmloader/config.h
--- a/tools/firmware/hvmloader/config.h Mon Jul 25 13:48:08 2011 +0100
+++ b/tools/firmware/hvmloader/config.h Mon Jul 25 13:57:49 2011 +0100
@@ -20,11 +20,11 @@
     int load_roms;
     unsigned int optionrom_start, optionrom_end;
 
+    void (*bios_load)(const struct bios_config *config);
+
     void (*bios_info_setup)(void);
     void (*bios_info_finish)(void);
 
-    void (*bios_relocate)(void);
-
     void (*vm86_setup)(void);
     void (*e820_setup)(void);
 
diff -r 50ddc200a60c -r 360b31a5263c tools/firmware/hvmloader/hvmloader.c
--- a/tools/firmware/hvmloader/hvmloader.c      Mon Jul 25 13:48:08 2011 +0100
+++ b/tools/firmware/hvmloader/hvmloader.c      Mon Jul 25 13:57:49 2011 +0100
@@ -416,12 +416,13 @@
         bios->create_smbios_tables();
     }
 
-    printf("Loading %s ...\n", bios->name);
-    memcpy((void *)bios->bios_address, bios->image,
-           bios->image_size);
-
-    if (bios->bios_relocate)
-        bios->bios_relocate();
+    if (bios->bios_load) {
+        bios->bios_load(bios);
+    } else {
+        printf("Loading %s ...\n", bios->name);
+        memcpy((void *)bios->bios_address, bios->image,
+               bios->image_size);
+    }
 
     if ( (hvm_info->nr_vcpus > 1) || hvm_info->apic_mode ) {
         if ( bios->create_mp_tables )
diff -r 50ddc200a60c -r 360b31a5263c tools/firmware/hvmloader/rombios.c
--- a/tools/firmware/hvmloader/rombios.c        Mon Jul 25 13:48:08 2011 +0100
+++ b/tools/firmware/hvmloader/rombios.c        Mon Jul 25 13:57:49 2011 +0100
@@ -81,11 +81,15 @@
     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 @@
     .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,
 
diff -r 50ddc200a60c -r 360b31a5263c tools/firmware/hvmloader/seabios.c
--- a/tools/firmware/hvmloader/seabios.c        Mon Jul 25 13:48:08 2011 +0100
+++ b/tools/firmware/hvmloader/seabios.c        Mon Jul 25 13:57:49 2011 +0100
@@ -138,11 +138,11 @@
     .optionrom_start = 0,
     .optionrom_end = 0,
 
+    .bios_load = NULL,
+
     .bios_info_setup = seabios_setup_bios_info,
     .bios_info_finish = seabios_finish_bios_info,
 
-    .bios_relocate = NULL,
-
     .vm86_setup = NULL,
     .e820_setup = seabios_setup_e820,
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.