Re: [edk2] Using QEMU with CSM-enabled OVMF

Subject: Re: [edk2] Using QEMU with CSM-enabled OVMF

From: Laszlo Ersek <>

To:, Rod Smith <>

Date: 2013-09-04 01:19:59

On 09/03/13 16:11, Laszlo Ersek wrote:

> I'll try two workarounds (the same two that came up in the EPT thread):
> - reverting the qemu commit that enables the r/o mapping,


  commit 235e8982ad393e5611cb892df54881c872eea9e1
  Author: Jordan Justen 
  Date:   Wed May 29 01:27:26 2013 -0700

      kvm: support using KVM_MEM_READONLY flag for regions

on top of current master (545825d4) makes the problem go away. (Some
conflict resolution is necessary, but not very hard.) I can legacy-boot
the x86_64 F19 XFCE LiveCD.

> - applying Jordan's experimental patches for OVMF that build the initial
> page tables in RAM, as early as in the reset vector code.

Independently from the above workaround, I tried Jordan's patches from
, branch "ovmf-vm-vtf0":

  eba88df UefiCpuPkg/ResetVector/Vtf0: Move Page Table/CR3 setting to a
          new file
  888da6b OvmfPkg: Add platform specific reset vector code for X64
  6dddeab OvmfPkg: For OvmfPkgX64, use OvmfPkg/ResetVector
  5701ac1 OvmfPkg X64: Convert 24KB from uncompressed to compressed
  f953776 OvmfPkg/Sec: Stop building identity mapped pages in SEC
  5c42c6c OvmfPkg: Remove IndustryStandard/X64Paging.h

With these, OVMF logs:

  SecCoreStartupWithStack(0xFFFCC000, 0x80000)
  File->Type: 0xB
  Section->Type: 0x2

but then the virtual machine becomes stuck for a minute or so (*).
Ultimately it "recovers" though, and these OVMF patches too allow both
the pure-efi and the legacy boot to succeed, on SVM.

(*) I cursorily peeked at this temporary spinning with trace-cmd -- it
consists of a huge number of

    reason EXIT_INTR rip 0xfffcee4d info 0 0

entries. The rip varies between 0xfffcXXXX and 0xfffdXXXX.

Rod, considering your AMD machine a given, I think it should be easiest
to test:
- with qemu v1.5.3 (which doesn't have 235e8982), and
- with KVM enabled (since TCG seems broken for OVMF+CSM since qemu-1.4
  minimally), and
- with Gerd's RPMs.

I tested this configuration as well and it works.


Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
edk2-devel mailing list