aboutsummaryrefslogtreecommitdiff
path: root/target-i386
diff options
context:
space:
mode:
authorJes Sorensen <Jes.Sorensen@redhat.com>2010-02-15 18:33:46 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2010-02-19 15:53:54 -0600
commit4c5b10b7b65eb613822b2ebbaf88b15edd2c3765 (patch)
treedf075e43d68ad693919770b122c4fce0c0074da3 /target-i386
parented487bb1d69040b9dac64a4fc076d8dd82b131d6 (diff)
QEMU e820 reservation patch
Hi, Kevin and I have agreed on the approach for this one now. So here is the latest version of the patch for QEMU, submitting e820 reservation entries via fw_cfg. Cheers, Jes Use qemu-cfg to provide the BIOS with an optional table of e820 entries. Notify the BIOS of the location of the TSS+EPT range to by reserving it via the e820 table. This matches a corresponding patch for Seabios, however older versions of Seabios will default to the hardcoded address range and stay compatible with current QEMU. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'target-i386')
-rw-r--r--target-i386/kvm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 0d08cd532e..ac8d985a14 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -24,6 +24,7 @@
#include "cpu.h"
#include "gdbstub.h"
#include "host-utils.h"
+#include "hw/pc.h"
#ifdef CONFIG_KVM_PARA
#include <linux/kvm_para.h>
@@ -362,6 +363,13 @@ int kvm_arch_init(KVMState *s, int smp_cpus)
* as unavaible memory. FIXME, need to ensure the e820 map deals with
* this?
*/
+ /*
+ * Tell fw_cfg to notify the BIOS to reserve the range.
+ */
+ if (e820_add_entry(0xfffbc000, 0x4000, E820_RESERVED) < 0) {
+ perror("e820_add_entry() table is full");
+ exit(1);
+ }
return kvm_vm_ioctl(s, KVM_SET_TSS_ADDR, 0xfffbd000);
}