1. 25 1月, 2017 1 次提交
  2. 21 12月, 2016 1 次提交
    • T
      Move target-* CPU file into a target/ folder · fcf5ef2a
      Thomas Huth 提交于
      We've currently got 18 architectures in QEMU, and thus 18 target-xxx
      folders in the root folder of the QEMU source tree. More architectures
      (e.g. RISC-V, AVR) are likely to be included soon, too, so the main
      folder of the QEMU sources slowly gets quite overcrowded with the
      target-xxx folders.
      To disburden the main folder a little bit, let's move the target-xxx
      folders into a dedicated target/ folder, so that target-xxx/ simply
      becomes target/xxx/ instead.
      
      Acked-by: Laurent Vivier <laurent@vivier.eu> [m68k part]
      Acked-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> [tricore part]
      Acked-by: Michael Walle <michael@walle.cc> [lm32 part]
      Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> [s390x part]
      Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> [s390x part]
      Acked-by: Eduardo Habkost <ehabkost@redhat.com> [i386 part]
      Acked-by: Artyom Tarasenko <atar4qemu@gmail.com> [sparc part]
      Acked-by: Richard Henderson <rth@twiddle.net> [alpha part]
      Acked-by: Max Filippov <jcmvbkbc@gmail.com> [xtensa part]
      Reviewed-by: David Gibson <david@gibson.dropbear.id.au> [ppc part]
      Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> [cris&microblaze part]
      Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn> [unicore32 part]
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      fcf5ef2a
  3. 23 11月, 2016 2 次提交
    • D
      target-ppc: Allow eventual removal of old migration mistakes · 146c11f1
      David Gibson 提交于
      Until very recently, the vmstate for ppc cpus included some poorly
      thought out VMSTATE_EQUAL() components, that can easily break
      migration compatibility, and did so between qemu-2.6 and later
      versions.  A hack was recently added which fixes this migration
      breakage, but it leaves the unhelpful cruft of these fields in the
      migration stream.
      
      This patch adds a new cpu property allowing these fields to be removed
      from the stream entirely.  For the pseries-2.8 machine type - which
      comes after the fix - and for all non-pseries machine types - which
      aren't mature enough to care about cross-version migration - we remove
      the fields from the stream.
      
      For pseries-2.7 and earlier, The migration hack remains in place,
      allowing backwards and forwards migration with the older machine
      types.
      
      This restricts the migration compatibility cruft to older machine
      types, and at least opens the possibility of eventually deprecating
      and removing it entirely.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NGreg Kurz <groug@kaod.org>
      Reviewed-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      146c11f1
    • D
      target-ppc: Fix CPU migration from qemu-2.6 <-> later versions · 16a2497b
      David Gibson 提交于
      When migration for target-ppc was converted to vmstate, several
      VMSTATE_EQUAL() checks were foolishly included of things that really
      should be internal state.  Specifically we verified equality of the
      insns_flags and insns_flags2 fields, which are used within TCG to
      determine which groups of instructions are available on this cpu
      model.  Between qemu-2.6 and qemu-2.7 we made some changes to these
      classes which broke migration.
      
      This path fixes migration both forwards and backwards.  On migration
      from 2.6 to later versions we import the fields into teporary
      variables, which we then ignore.  In migration backwards, we populate
      the temporary fields from the runtime fields, but mask out the bits
      which were added after qemu-2.6, allowing the VMSTATE_EQUAL in
      qemu-2.6 to accept the stream.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NGreg Kurz <groug@kaod.org>
      16a2497b
  4. 28 10月, 2016 1 次提交
  5. 30 5月, 2016 1 次提交
  6. 19 5月, 2016 3 次提交
  7. 18 4月, 2016 1 次提交
  8. 30 1月, 2016 2 次提交
  9. 29 1月, 2016 1 次提交
    • P
      ppc: Clean up includes · 0d75590d
      Peter Maydell 提交于
      Clean up includes so that osdep.h is included first and headers
      which it implies are not included manually.
      
      This commit was created with scripts/clean-includes.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1453832250-766-6-git-send-email-peter.maydell@linaro.org
      0d75590d
  10. 12 6月, 2015 1 次提交
    • J
      migration: Use normal VMStateDescriptions for Subsections · 5cd8cada
      Juan Quintela 提交于
      We create optional sections with this patch.  But we already have
      optional subsections.  Instead of having two mechanism that do the
      same, we can just generalize it.
      
      For subsections we just change:
      
      - Add a needed function to VMStateDescription
      - Remove VMStateSubsection (after removal of the needed function
        it is just a VMStateDescription)
      - Adjust the whole tree, moving the needed function to the corresponding
        VMStateDescription
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      5cd8cada
  11. 17 4月, 2015 1 次提交
  12. 09 3月, 2015 1 次提交
  13. 16 6月, 2014 3 次提交
  14. 20 3月, 2014 1 次提交
  15. 05 3月, 2014 1 次提交
  16. 26 10月, 2013 1 次提交
  17. 29 7月, 2013 1 次提交
  18. 27 4月, 2013 1 次提交
    • F
      PPC: Remove env->hreset_excp_prefix · 2cf3eb6d
      Fabien Chouteau 提交于
      This value is not needed if we use correctly the MSR[IP] bit.
      
      excp_prefix is always 0x00000000, except when the MSR[IP] bit is
      implemented and set to 1, in that case excp_prefix is 0xfff00000.
      
      The handling of MSR[IP] was already implemented but not used at reset
      because the value of env->msr was changed "manually".
      
      The patch uses the function hreg_store_msr() to set env->msr, this
      ensures a good handling of MSR[IP] at reset, and therefore a good value
      for excp_prefix.
      Signed-off-by: NFabien Chouteau <chouteau@adacore.com>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      2cf3eb6d
  19. 22 3月, 2013 1 次提交
    • D
      target-ppc: Remove vestigial PowerPC 620 support · 9baea4a3
      David Gibson 提交于
      The PowerPC 620 was the very first 64-bit PowerPC implementation, but
      hardly anyone ever actually used the chips.  qemu notionally supports the
      620, but since we don't actually have code to implement the segment table,
      the support is broken (quite likely in other ways too).
      
      This patch, therefore, removes all remaining pieces of 620 support, to
      stop it cluttering up the platforms we actually care about.  This includes
      removing support for the ASR register, used only on segment table based
      machines.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      9baea4a3
  20. 24 2月, 2013 1 次提交
  21. 19 12月, 2012 1 次提交
  22. 01 11月, 2012 1 次提交
    • D
      target-ppc: Extend FPU state for newer POWER CPUs · 30304420
      David Gibson 提交于
      This patch adds some extra FPU state to CPUPPCState.  Specifically,
      fpscr is extended to a target_ulong bits, since some recent (64 bit)
      CPUs now have more status bits than fit inside 32 bits.  Also, we add
      the 32 VSR registers present on CPUs with VSX (these extend the
      standard FP regs, which together with the Altivec/VMX registers form a
      64 x 128bit register file for VSX).
      
      We don't actually support the instructions using these extra registers
      in TCG yet, but we still need a place to store the state so we can
      sync it with KVM and savevm/loadvm it.  This patch updates the savevm
      code to not fail on the extended state, but also does not actually
      save it - that's a project for another patch.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      30304420
  23. 04 10月, 2012 1 次提交
  24. 16 4月, 2012 1 次提交
  25. 15 3月, 2012 1 次提交
  26. 17 6月, 2011 1 次提交
    • A
      PPC: move TLBs to their own arrays · 1c53accc
      Alexander Graf 提交于
      Until now, we've created a union over multiple different TLB types and
      allocated that union. While it's a waste of memory (and cache) to allocate
      TLB information for a TLB type with much information when you only need
      little, it also inflicts another issue.
      
      With the new KVM API, we can now share the TLB between KVM and qemu, but
      for that to work we need to have both be in the same layout. We can't just
      stretch it over to fit some internal different TLB representation.
      
      Hence this patch moves all TLB types to their own array, allowing us to only
      address and allocate exactly the boundaries required for the specific TLB
      type at hand.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      1c53accc
  27. 02 4月, 2011 1 次提交
    • D
      Parse SDR1 on mtspr instead of at translate time · bb593904
      David Gibson 提交于
      On ppc machines with hash table MMUs, the special purpose register SDR1
      contains both the base address of the encoded size (hashed) page tables.
      
      At present, we interpret the SDR1 value within the address translation
      path.  But because the encodings of the size for 32-bit and 64-bit are
      different this makes for a confusing branch on the MMU type with a bunch
      of curly shifts and masks in the middle of the translate path.
      
      This patch cleans things up by moving the interpretation on SDR1 into the
      helper function handling the write to the register.  This leaves a simple
      pre-sanitized base address and mask for the hash table in the CPUState
      structure which is easier to work with in the translation path.
      
      This makes the translation path more readable.  It addresses the FIXME
      comment currently in the mtsdr1 helper, by validating the SDR1 value during
      interpretation.  Finally it opens the way for emulating a pSeries-style
      partition where the hash table used for translation is not mapped into
      the guests's RAM.
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      bb593904
  28. 04 3月, 2010 1 次提交
    • J
      KVM: Rework VCPU state writeback API · ea375f9a
      Jan Kiszka 提交于
      This grand cleanup drops all reset and vmsave/load related
      synchronization points in favor of four(!) generic hooks:
      
      - cpu_synchronize_all_states in qemu_savevm_state_complete
        (initial sync from kernel before vmsave)
      - cpu_synchronize_all_post_init in qemu_loadvm_state
        (writeback after vmload)
      - cpu_synchronize_all_post_init in main after machine init
      - cpu_synchronize_all_post_reset in qemu_system_reset
        (writeback after system reset)
      
      These writeback points + the existing one of VCPU exec after
      cpu_synchronize_state map on three levels of writeback:
      
      - KVM_PUT_RUNTIME_STATE (during runtime, other VCPUs continue to run)
      - KVM_PUT_RESET_STATE   (on synchronous system reset, all VCPUs stopped)
      - KVM_PUT_FULL_STATE    (on init or vmload, all VCPUs stopped as well)
      
      This level is passed to the arch-specific VCPU state writing function
      that will decide which concrete substates need to be written. That way,
      no writer of load, save or reset functions that interact with in-kernel
      KVM states will ever have to worry about synchronization again. That
      also means that a lot of reasons for races, segfaults and deadlocks are
      eliminated.
      
      cpu_synchronize_state remains untouched, just as Anthony suggested. We
      continue to need it before reading or writing of VCPU states that are
      also tracked by in-kernel KVM subsystems.
      
      Consequently, this patch removes many cpu_synchronize_state calls that
      are now redundant, just like remaining explicit register syncs.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      ea375f9a
  29. 28 8月, 2009 1 次提交
  30. 04 8月, 2009 1 次提交
  31. 22 5月, 2009 1 次提交
  32. 21 5月, 2009 1 次提交
  33. 29 4月, 2009 1 次提交
  34. 03 3月, 2009 1 次提交