summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2009-07-26 17:23:51 -0700
committerAvi Kivity <avi@redhat.com>2009-08-03 18:08:23 +0300
commit5af5abe885f7f6a4442504017fbe642fb8d3b323 (patch)
tree2cd0b4f4931c6b3e4db0d92675b1e2cb7e12355a
parentReformat qemu-kvm.[ch] according to qemu coding style (diff)
downloadqemu-kvm-5af5abe885f7f6a4442504017fbe642fb8d3b323.tar.gz
qemu-kvm-5af5abe885f7f6a4442504017fbe642fb8d3b323.tar.bz2
qemu-kvm-5af5abe885f7f6a4442504017fbe642fb8d3b323.zip
Update BIOS INT15-E820 to allow a larger BIOS image
The bios will now reserve more memory via the E820 functions. Note that the standard KVM BIOS will most likely not make use of this expanded BIOS region. This change will synchronize the BIOS INT15-E820 reservations to match other changes that will allow alternate BIOS images to be larger in size. Previously the BIOS reserved: 0xfffbc000-0xfffbcfff - 4KB - EPT identity mapping pages 0xfffbd000-0xfffbffff - 12KB - TSS pages 0xfffc0000-0xffffffff - 256KB - Max bios.bin (usually top 128KB is used) Now the BIOS will reserve: 0xfeffc000-0xfeffcfff - 4KB - EPT identity mapping pages 0xfeffd000-0xfeffffff - 12KB - TSS Pages 0xff000000-0xffffffff - 16MB - Max bios.bin Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r--kvm/bios/rombios.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/kvm/bios/rombios.c b/kvm/bios/rombios.c
index 6e1d446dc..ba270a2ce 100644
--- a/kvm/bios/rombios.c
+++ b/kvm/bios/rombios.c
@@ -4615,14 +4615,14 @@ ASM_END
case 5:
/* 4 pages before the bios, 3 pages for vmx tss pages,
* the other page for EPT real mode pagetable */
- set_e820_range(ES, regs.u.r16.di, 0xfffbc000L,
- 0xfffc0000L, 0, 0, 2);
+ set_e820_range(ES, regs.u.r16.di, 0xfeffc000L,
+ 0xff000000L, 0, 0, 2);
regs.u.r32.ebx = 6;
break;
case 6:
- /* 256KB BIOS area at the end of 4 GB */
+ /* 16MB BIOS area at the end of 4 GB */
set_e820_range(ES, regs.u.r16.di,
- 0xfffc0000L, 0x00000000L ,0, 0, 2);
+ 0xff000000L, 0x00000000L ,0, 0, 2);
if (extra_highbits_memory_size || extra_lowbits_memory_size)
regs.u.r32.ebx = 7;
else