1. 19 4月, 2009 1 次提交
  2. 18 4月, 2009 1 次提交
    • A
      x86: Enhanced dump of segment registers (Jan Kiszka) · a3867ed2
      aliguori 提交于
      Parse the descriptor flags that segment registers refer to and show the
      result in a more human-friendly format. The output of info registers eg.
      then looks like this:
      
      [...]
      ES =007b 00000000 ffffffff 00cff300 DPL=3 DS   [-WA]
      CS =0060 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
      SS =0068 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
      DS =007b 00000000 ffffffff 00cff300 DPL=3 DS   [-WA]
      FS =0000 00000000 00000000 00000000
      GS =0033 b7dd66c0 ffffffff b7dff3dd DPL=3 DS   [-WA]
      LDT=0000 00000000 00000000 00008200 DPL=0 LDT
      TR =0080 c06da700 0000206b 00008900 DPL=0 TSS32-avl
      [...]
      
      Changes in this version:
       - refactoring so that only a single helper is used for dumping the
         segment descriptor cache
       - tiny typo fixed that broke 64-bit segment type names
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7179 c046a42c-6fe2-441c-8c8c-71466251a162
      a3867ed2
  3. 07 3月, 2009 1 次提交
  4. 09 2月, 2009 1 次提交
  5. 30 1月, 2009 1 次提交
  6. 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
  7. 05 1月, 2009 1 次提交
  8. 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
  9. 19 11月, 2008 3 次提交
  10. 17 11月, 2008 1 次提交
  11. 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
  12. 05 11月, 2008 2 次提交
  13. 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
  14. 27 9月, 2008 1 次提交
  15. 26 9月, 2008 3 次提交
  16. 02 7月, 2008 1 次提交
  17. 01 7月, 2008 1 次提交
  18. 29 6月, 2008 1 次提交
  19. 05 6月, 2008 3 次提交
  20. 04 6月, 2008 2 次提交
  21. 31 5月, 2008 2 次提交
  22. 29 5月, 2008 3 次提交
  23. 28 5月, 2008 1 次提交
  24. 26 5月, 2008 1 次提交
  25. 17 5月, 2008 1 次提交
  26. 13 5月, 2008 1 次提交
  27. 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
  28. 14 4月, 2008 1 次提交
  29. 09 4月, 2008 1 次提交