diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2010-02-15 18:33:46 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2010-02-19 15:53:54 -0600 |
commit | 4c5b10b7b65eb613822b2ebbaf88b15edd2c3765 (patch) | |
tree | df075e43d68ad693919770b122c4fce0c0074da3 /target-i386 | |
parent | ed487bb1d69040b9dac64a4fc076d8dd82b131d6 (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.c | 8 |
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); } |