From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH 1/3] Update BIOS INT15-E820 to allow a larger BIOS image Date: Tue, 28 Jul 2009 11:40:34 -0300 Message-ID: <20090728144034.GA5084@amt.cnet> References: <1248654233-29845-1-git-send-email-jordan.l.justen@intel.com> <1248654233-29845-2-git-send-email-jordan.l.justen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm-devel , "Yang, Sheng" To: Jordan Justen Return-path: Received: from mx2.redhat.com ([66.187.237.31]:33920 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751918AbZG1OlG (ORCPT ); Tue, 28 Jul 2009 10:41:06 -0400 Content-Disposition: inline In-Reply-To: <1248654233-29845-2-git-send-email-jordan.l.justen@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On Sun, Jul 26, 2009 at 05:23:51PM -0700, Jordan Justen wrote: > 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 > --- > kvm/bios/rombios.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/kvm/bios/rombios.c b/kvm/bios/rombios.c > index 6186199..2d0c153 100644 > --- a/kvm/bios/rombios.c > +++ b/kvm/bios/rombios.c > @@ -4596,14 +4596,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; So if you use an older kernel, and the kvm_set_identity_map_addr fails, you get the e820 entry wrong right? Perhaps you should use the hw/fw_cfg.c interface to communicate with the BIOS. > 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 > -- > 1.6.0.4 > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html