From: Sheng Yang <sheng@linux.intel.com>
To: kvm@vger.kernel.org
Cc: Jordan Justen <jordan.l.justen@intel.com>
Subject: Re: [PATCH] Update qemu-kvm to allow a larger BIOS image.
Date: Thu, 16 Jul 2009 09:34:45 +0800 [thread overview]
Message-ID: <200907160934.46246.sheng@linux.intel.com> (raw)
In-Reply-To: <1247703135-27408-2-git-send-email-jordan.l.justen@intel.com>
On Thursday 16 July 2009 08:12:15 Jordan Justen wrote:
> Previously the KVM kernel module would allocate the address range
> of 0xfffbc000-0xfffbcfff for the EPT Indentity Page Tables.
> A separate patch is moving that to 0xfeffc000-0xfeffcfff.
Hi Jordan
You need one more patch for upstream kvm, to include the modification of
vmx.h.
>
> This patch updates qemu-kvm to move the VMX TSS Pages & update the
> KVM BIOS code to update the E820 BIOS call memory reservations.
>
> Previously, the VMC TSS Pages were located at 0xfffbd000-0xfffbffff.
> This change moved them to 0xfeffd000-0xfeffffff.
>
> This change also updates the KVM bios such that the E820 locations
> are returned properly for these two changes.
>
> From a high level, these are the effects of these two changes:
>
> Previously, the KVM would only accommodate a 256KB BIOS image. With
> these changes, the BIOS image may now grow to 16MB.
>
> Motivation for making these changes:
>
> A larger firmware image size allows alternative BIOS images to be
> used with KVM. Some possible uses are to enable UEFI firmware
> or coreboot firmware. Additionally, an alternative firmware might
> include a linux kernel+initrd payload, which would require several
> megabytes.
I think if you update bios to UEFI, the E820 should be represented by UEFI
rather than current bios?
--
regards
Yang, Sheng
> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
> ---
> kvm/bios/rombios.c | 8 ++++----
> kvm/include/x86/asm/vmx.h | 2 +-
> qemu-kvm-x86.c | 2 +-
> 3 files changed, 6 insertions(+), 6 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;
> 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
> diff --git a/kvm/include/x86/asm/vmx.h b/kvm/include/x86/asm/vmx.h
> index df8d4f9..99e2bb9 100644
> --- a/kvm/include/x86/asm/vmx.h
> +++ b/kvm/include/x86/asm/vmx.h
> @@ -403,7 +403,7 @@ enum vmcs_field {
> #define VMX_EPT_EXECUTABLE_MASK 0x4ull
> #define VMX_EPT_IGMT_BIT (1ull << 6)
>
> -#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul
> +#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfeffc000ul
>
>
> #define ASM_VMX_VMCLEAR_RAX ".byte 0x66, 0x0f, 0xc7, 0x30"
> diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
> index daf60b6..b5306aa 100644
> --- a/qemu-kvm-x86.c
> +++ b/qemu-kvm-x86.c
> @@ -63,7 +63,7 @@ static int kvm_init_tss(kvm_context_t kvm)
> * this address is 3 pages before the bios, and the bios should present
> * as unavaible memory
> */
> - r = kvm_set_tss_addr(kvm, 0xfffbd000);
> + r = kvm_set_tss_addr(kvm, 0xfeffd000);
> if (r < 0) {
> fprintf(stderr, "kvm_init_tss: unable to set tss addr\n");
> return r;
next prev parent reply other threads:[~2009-07-16 1:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-16 0:12 [PATCH] Update KVM kernel module to allow a larger BIOS image Jordan Justen
2009-07-16 0:12 ` [PATCH] Update qemu-kvm " Jordan Justen
2009-07-16 1:34 ` Sheng Yang [this message]
2009-07-16 2:58 ` Jordan Justen
2009-07-16 3:08 ` Sheng Yang
2009-07-16 4:57 ` Jordan Justen
2009-07-16 5:37 ` Sheng Yang
2009-07-16 17:57 ` Jordan Justen
2009-07-22 19:04 ` Cristi Magherusan
2009-07-23 1:42 ` Sheng Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200907160934.46246.sheng@linux.intel.com \
--to=sheng@linux.intel.com \
--cc=jordan.l.justen@intel.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.