You need to sign in or sign up before continuing.
  1. 09 2月, 2009 1 次提交
  2. 30 1月, 2009 1 次提交
  3. 27 1月, 2009 1 次提交
    • A
      MTRR support on x86 (Carl-Daniel Hailfinger) · 165d9b82
      aliguori 提交于
      The current codebase ignores MTRR (Memory Type Range Register)
      configuration writes and reads because Qemu does not implement caching.
      All BIOS/firmware in know of for x86 do implement a mode called
      Cache-as-RAM (CAR) which locks down the CPU cache lines and uses the CPU
      cache like RAM before RAM is enabled. Qemu assumes RAM is accessible
      from the start, but it would be nice to be able to run real
      BIOS/firmware in Qemu. For that, we need CAR support and for CAR support
      we have to support MTRRs.
      
      This patch is a first step in that direction. MTRRs are MSRs supported
      by all recent x86 CPUs, even old i586. Besides influencing cache, the
      MTRRs can be written and read back, so discarding MTRR writes violates
      the expectations of existing code out there.
      
      An added benefit of this patch is that it fixes the following Linux
      kernel error message present in recent kernels (provided the BIOS has
      the recent MTRR patches applied):
       ------------[ cut here ]------------
      WARNING: at arch/x86/kernel/cpu/mtrr/main.c:1500 mtrr_trim_uncached_memory+0x382/0x384()
      WARNING: strange, CPU MTRRs all blank?
      Modules linked in:
      Supported: Yes
      Pid: 0, comm: swapper Not tainted 2.6.27.7-9-default #1
       [<c0106570>] dump_trace+0x6b/0x249
       [<c01070a5>] show_trace+0x20/0x39
       [<c0343c02>] dump_stack+0x71/0x76
       [<c012acb2>] warn_slowpath+0x6f/0x90
       [<c0542f8f>] mtrr_trim_uncached_memory+0x382/0x384
       [<c053f24d>] setup_arch+0x40d/0x639
       [<c053a6ac>] start_kernel+0x6b/0x31f
       =======================
       ---[ end trace 4eaa2a86a8e2da22 ]---
      
      Handle common x86 MTRR reads and writes, but don't act on them.
      Signed-off-by: NCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6449 c046a42c-6fe2-441c-8c8c-71466251a162
      165d9b82
  4. 05 1月, 2009 1 次提交
  5. 13 12月, 2008 1 次提交
    • B
      x86 cleanup · d9957a8b
      blueswir1 提交于
      Remove some unnecessary includes, add needed includes, move prototypes to
      cpu.h to suppress missing prototype warnings.
      
      Remove unused functions and prototypes (cpu_x86_flush_tlb, cpu_lock,
      cpu_unlock, restore_native_fp_state, save_native_fp_state).
      
      Make some functions and data static (f15rk, parity_table, rclw_table,
      rclb_table, raise_interrupt, fpu_raise_exception), they are not used
      outside op_helper.c anymore.
      
      Make some x86_64 and user only code conditional to avoid warnings.
      
      Document where each function is implemented in cpu.h and exec.h.
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6005 c046a42c-6fe2-441c-8c8c-71466251a162
      d9957a8b
  6. 19 11月, 2008 3 次提交
  7. 17 11月, 2008 1 次提交
  8. 06 11月, 2008 1 次提交
    • A
      Add KVM support to QEMU · 7ba1e619
      aliguori 提交于
      This patch adds very basic KVM support.  KVM is a kernel module for Linux that
      allows userspace programs to make use of hardware virtualization support.  It
      current supports x86 hardware virtualization using Intel VT-x or AMD-V.  It
      also supports IA64 VT-i, PPC 440, and S390.
      
      This patch only implements the bare minimum support to get a guest booting.  It
      has very little impact the rest of QEMU and attempts to integrate nicely with
      the rest of QEMU.
      
      Even though this implementation is basic, it is significantly faster than TCG.
      Booting and shutting down a Linux guest:
      
      w/TCG:  1:32.36 elapsed  84% CPU
      
      w/KVM:  0:31.14 elapsed  59% CPU
      
      Right now, KVM is disabled by default and must be explicitly enabled with
       -enable-kvm.  We can enable it by default later when we have had better
      testing.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5627 c046a42c-6fe2-441c-8c8c-71466251a162
      7ba1e619
  9. 05 11月, 2008 2 次提交
  10. 29 9月, 2008 1 次提交
    • P
      My core2duo patch introduced a vague statement of "missing features" in · 558fa836
      pbrook 提交于
      the CPUID specification. This patch addresses this by specifying exactly 
      what is missing.
      While going along the missing CPUID entries I also stumbled across 
      invalid and missing CPUID #defines while comparing them to the Intel 
      Documentation. This patch also addresses these. I found them too minor 
      to split them up in a separate patch.
      
      Furthermore I looked through CPUID functions > 5 and realized that it 
      should be safe to bump the level to 10. I tried booting Linux with that 
      and it worked fine.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5350 c046a42c-6fe2-441c-8c8c-71466251a162
      558fa836
  11. 27 9月, 2008 1 次提交
  12. 26 9月, 2008 3 次提交
  13. 02 7月, 2008 1 次提交
  14. 01 7月, 2008 1 次提交
  15. 29 6月, 2008 1 次提交
  16. 05 6月, 2008 3 次提交
  17. 04 6月, 2008 2 次提交
  18. 31 5月, 2008 2 次提交
  19. 29 5月, 2008 3 次提交
  20. 28 5月, 2008 1 次提交
  21. 26 5月, 2008 1 次提交
  22. 17 5月, 2008 1 次提交
  23. 13 5月, 2008 1 次提交
  24. 23 4月, 2008 1 次提交
    • A
      x86/x86-64 MMU PAE fixes · 0ba5f006
      aurel32 提交于
      This patch fixes MMU emulation in PAE mode for > 4GB physical addresses:
      - a20_mask should have the correct size to not clear the high part of
        the addresses.
      - PHYS_ADDR_MASK should not clear the high part of the addresses.
      - pdpe, pde and pte could be located anywhere in memory on x86-64, but
        only in the first 4GB on x86, define their pointer to as target_ulong.
      - pml4e_addr could be located anywhere in memory, define its pointer
        as uint64_t.
      - paddr represents a physical address and thus should be of type
        target_phys_addr_t.
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4239 c046a42c-6fe2-441c-8c8c-71466251a162
      0ba5f006
  25. 14 4月, 2008 1 次提交
  26. 09 4月, 2008 1 次提交
  27. 03 2月, 2008 1 次提交
  28. 15 11月, 2007 1 次提交
  29. 12 11月, 2007 1 次提交