1. 20 11月, 2014 1 次提交
  2. 05 11月, 2014 6 次提交
  3. 15 10月, 2014 2 次提交
  4. 26 9月, 2014 2 次提交
  5. 15 7月, 2014 1 次提交
    • A
      target-ppc: Fix number of threads per core limit · 063cac53
      Alexey Kardashevskiy 提交于
      The number of threads per core is different for POWER6/7/8 CPUs.
      Guest systems do not expect to see more threads per core than
      a specific CPU supports so we need to limit this number.
      This limit is implemented by ppc_get_compat_smt_threads().
      
      However it has a problem as it checks for PCR (Processor Compatibility
      Register) mask, 2.05 means 2 threads per core, 2.06 - 4 threads.
      For POWER8 one would expect PCR_COMPAT_2_07 bit set and
      ppc_get_compat_smt_threads() checking for it to return 8 threads
      per core. But the latest PowerISA spec now is 2.07 and there is
      no 2.07 compatibility mode defined, QEMU does not define it either
      (will be in PowerISA 2.08).
      
      Instead of relying on a PCR mask, this uses kvmppc_smt_threads()
      which returns the maximum supported threads number for KVM or
      1 for TCG.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      063cac53
  6. 08 7月, 2014 3 次提交
    • 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
    • R
      target-ppc: Change default cpu for ppc64le-linux-user · a74029f6
      Richard Henderson 提交于
      The default, 970fx, doesn't support MSR_LE.  So even though we set LE in
      ppc_cpu_reset, it gets cleared again in hreg_store_msr.  Error out if a
      user-selected cpu model doesn't support LE.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      [agraf: switch to POWER7 as default for BE and LE]
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      a74029f6
  7. 30 6月, 2014 1 次提交
  8. 27 6月, 2014 2 次提交
    • 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
    • A
      PPC: Add support for Apple gdb in gdbstub · b3cad3ab
      Alexander Graf 提交于
      The Apple gdbstub protocol is different from the normal gdbstub protocol
      used on PowerPC. Add support for the different variant, so that we can use
      Apple's gdb to debug guest code.
      
      Keep in mind that the switch is a compile time option. We can't detect
      during runtime whether a gdb connecting to us is an upstream gdb or an
      Apple gdb.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      b3cad3ab
  9. 16 6月, 2014 22 次提交