1. 07 9月, 2016 1 次提交
  2. 16 3月, 2016 1 次提交
  3. 30 1月, 2016 1 次提交
  4. 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
  5. 26 3月, 2015 1 次提交
  6. 09 3月, 2015 1 次提交
    • A
      target-ppc: Add versions to server CPU descriptions · d7586dc4
      Alexey Kardashevskiy 提交于
      5b79b1ca "target-ppc: Create versionless CPU class per family if KVM" added
      a dynamic CPU class registration with the name of the CPU family which
      QEMU is running on. For example, this allowed specifying "-cpu POWER7"
      on every version of POWER7 machine, not just the one which POWER7 was
      an alias of. I.e. before 5b79b1ca, "-cpu POWER7" would not work on real
      POWER7 2.1 and would work on POWER7 2.3 only. The same story for POWER8.
      
      However that patch broke POWER5+ support as POWER5+ CPU uses the same
      name as the CPU class so dynamic registering of the POWER5+ class failed.
      
      This redefines POWER5+ server CPUs by adding a version to them and adding
      an alias for TCG case. KVM will use dynamically registered CPUs.
      
      While we are here, do the same for 970 CPU.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      d7586dc4
  7. 05 11月, 2014 1 次提交
  8. 08 7月, 2014 2 次提交
    • A
      target-ppc: Remove POWER7+ and POWER8E families · b60c6007
      Alexey Kardashevskiy 提交于
      POWER8E is architecturally equal to POWER8 and POWER7+ is equal to
      POWER7. Also no user space tool makes any difference for CPU node name
      in the device tree (such as PowerPC,POWER7@0 vs. PowerPC,POWER7+@0).
      So there is no point in emulating POWER7+ and POWER8E apart from POWER7
      and POWER8. Also, the previos patch implemented multiple PVR mask support
      per CPU class so POWER7 class now covers both POWER7 and POWER7+ CPUs,
      same is valid for POWER8/8E.
      
      This removes POWER7+ and POWER8E classes. This replaces references
      to POWER7P/POWER8E families with POWER7/POWER8 families.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      b60c6007
    • A
      target-ppc: Add pvr_match() callback · 03ae4133
      Alexey Kardashevskiy 提交于
      So far it was enough to have a base PVR value and mask per CPU
      family such as POWER7 or POWER8. However there CPUs which are
      completely architecturally compatible but have different PVRs such
      as POWER7/POWER7+ and POWER8/POWER8E. For these CPUs, top 16 bits
      are CPU family and low 16 bits are the version. The families have
      PVR base values different enough so defining a mask which
      would cover both (or potentially more) CPUs within the family is
      not possible.
      
      This adds a pvr_match() callback to PowerPCCPUClass. The default
      handler simply compares PVR defined in the class.
      
      This implements ppc_pvr_match_power7/ppc_pvr_match_power8 callbacks
      for POWER7/8 families. These check for POWER7/POWER7+ and POWER8/POWER8E.
      
      This changes ppc_cpu_compare_class_pvr_mask() not to check masks but
      use the pvr_match() callback.
      
      Since all server CPUs use the same mask, this defines one mask
      value - CPU_POWERPC_POWER_SERVER_MASK - which is used everywhere now.
      This removes other mask definitions.
      
      This removes pvr_mask from PowerPCCPUClass as it is not used anymore.
      This removes pvr initialization for POWER7/8 families as it is not used
      to find the class, the pvr_match() callback is used instead.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      03ae4133
  9. 27 6月, 2014 1 次提交
    • A
      target-ppc: Add support for POWER8 pvr 0x4D0000 · f6c3ebcc
      Alexey Kardashevskiy 提交于
      At the moment QEMU knows about one version of POWER8 CPU with
      PVR 0x4B.0000. This CPU class is defined as "POWER8". The linux
      kernel names it as "POWER8E" which is different from the name QEMU uses.
      
      Now we get another version of POWER8 which is architecturally equivalent
      to POWER8E but has different PVR 0x4D.0000 so QEMU fails to find
      a PPC CPU class on these machines. The linux kernel names these CPUs as
      "POWER8".
      
      This renames the existing "POWER8" to "POWER8E" to be more precise and
      stay in sync with the linux kernel.
      
      This adds a new "POWER8" family which calls POWER8E class init function
      and defines own PVR mask (used to match a CPU class) and desc (used to
      create dynamic version-less CPU class).
      
      This does not change CPU class fw_name attribute as the host POWER8
      firmware keeps using "PowerPC,POWER8" on both POWER8 and POWER8E.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f6c3ebcc
  10. 16 6月, 2014 3 次提交
    • A
      target-ppc: Merge 970FX and 970MP into a single 970 class · bbc01ca7
      Alexey Kardashevskiy 提交于
      The differences between classes were:
      1. SLB size, was 32 for 970 and 64 for others, should be 64 for all;
      2. check_pow() callback, HID0 format is the same so should be the same
      0x01C00000 which means "deep nap", "doze" and "nap" bits set;
      3. LPCR - 970 does not have it but 970MP had one (by mistake).
      
      This fixes wrong differences and makes one 970 class.
      
      This fixes wrong registration of LPCR which is not present on 970.
      
      This defines HID0 bits and uses them in check_pow_970().
      
      This does not copy MSR_SHV (Hypervisor State, HV) bit from 970FX to
      970 class as we do not emulate hypervisor in QEMU anyway.
      
      This does not remove check_pow_970FX now as it is still used by POWER5+
      class, this will be addressed later.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      bbc01ca7
    • A
      PPC: Make all e500 CPUs SVR aware · f1d9ec8b
      Alexander Graf 提交于
      Our pre-e500mc e500 CPU types didn't get instanciated with SVR information,
      even though those systems do support the SVR register.
      
      Spawn them with the SVR tag so that they don't get confused when someone tries
      to read SPR_SVR.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f1d9ec8b
    • A
      target-ppc: Remove redundant POWER7 declarations · 70d246c3
      Alexey Kardashevskiy 提交于
      At the moment there are 3 versions of POWER7 CPUs defined. However
      we do not emulate these CPUs diffent and it does not make much
      sense to keep them all.
      
      This removes POWER7_v2.0 and POWER7_v2.1 and leaves just one versioned
      CPU per family which is POWER7_v2.3 with POWER7 alias.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      70d246c3
  11. 05 3月, 2014 1 次提交
  12. 20 12月, 2013 2 次提交
    • A
      target-ppc: move POWER7+ to a separate family · b650d6a2
      Alexey Kardashevskiy 提交于
      So far POWER7+ was a part of POWER7 family. However it has a different
      PVR base value so in order to support PVR masks, it needs a separate
      family class.
      
      This adds a new family class, PVR base and mask values and moves
      Power7+ v2.1 CPU to a new family. The class init function is copied
      from the POWER7 family.
      
      This defines a firmware name for the new family as "PowerPC,POWER7+"
      instead of previously used "PowerPC,POWER7" from the POWER7 family.
      The reason for that is that the Sapphire firmware (a h0st firmware)
      uses "PowerPC,POWER7+" already and since no specification defines
      exactly the CPU nodes naming in the device tree, we better stay
      in sync with the host firmware.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      b650d6a2
    • A
      powerpc: add PVR mask support · 3bc9ccc0
      Alexey Kardashevskiy 提交于
      IBM POWERPC processors encode PVR as a CPU family in higher 16 bits and
      a CPU version in lower 16 bits. Since there is no significant change
      in behavior between versions, there is no point to add every single CPU
      version in QEMU's CPU list. Also, new CPU versions of already supported
      CPU won't break the existing code.
      
      This adds PVR value/mask support for KVM, i.e. for -cpu host option.
      
      As CPU family class name for POWER7 is "POWER7-family", there is no need
      to touch aliases.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Reviewed-by: NAndreas Färber <afaerber@suse.de>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      3bc9ccc0
  13. 08 8月, 2013 5 次提交
  14. 06 8月, 2013 1 次提交
  15. 12 7月, 2013 2 次提交
  16. 01 7月, 2013 1 次提交
    • A
      PPC: Introduce an alias cache for faster lookups · 9761ad75
      Alexander Graf 提交于
      When running QEMU with "-cpu ?" we walk through every alias for every
      target CPU we know about. This takes several seconds on my very fast
      host system.
      
      Let's introduce a class object cache in the alias table. Using that we
      don't have to go through the tedious work of finding our target class.
      Instead, we can just go directly from the alias name to the target class
      pointer.
      
      This patch brings -cpu "?" to reasonable times again.
      
      Before:
        real    0m4.716s
      
      After:
        real    0m0.025s
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      9761ad75
  17. 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
  18. 09 3月, 2013 3 次提交