[PATCH v4 0/9] Add IBM PPE42 CPU support

Glenn Miles posted 9 patches 2 weeks, 1 day ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250912164808.371944-1-milesg@linux.ibm.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Nicholas Piggin <npiggin@gmail.com>, Chinmay Rath <rathc@linux.ibm.com>, Glenn Miles <milesg@linux.ibm.com>
There is a newer version of this series
MAINTAINERS                         |   7 +
hw/ppc/Kconfig                      |   5 +
hw/ppc/meson.build                  |   2 +
hw/ppc/ppc_booke.c                  |   7 +-
hw/ppc/ppe42_machine.c              | 102 +++++
include/hw/ppc/ppc.h                |   1 +
target/ppc/cpu-models.c             |   7 +
target/ppc/cpu-models.h             |   4 +
target/ppc/cpu.h                    |  76 +++-
target/ppc/cpu_init.c               | 241 ++++++++--
target/ppc/excp_helper.c            | 163 +++++++
target/ppc/helper_regs.c            |  45 +-
target/ppc/insn32.decode            |  66 ++-
target/ppc/tcg-excp_helper.c        |  12 +
target/ppc/translate.c              |  35 +-
target/ppc/translate/ppe-impl.c.inc | 665 ++++++++++++++++++++++++++++
tests/functional/ppc/meson.build    |   1 +
tests/functional/ppc/test_ppe42.py  |  79 ++++
18 files changed, 1451 insertions(+), 67 deletions(-)
create mode 100644 hw/ppc/ppe42_machine.c
create mode 100644 target/ppc/translate/ppe-impl.c.inc
create mode 100644 tests/functional/ppc/test_ppe42.py
[PATCH v4 0/9] Add IBM PPE42 CPU support
Posted by Glenn Miles 2 weeks, 1 day ago
v4:
  Patch 6:
  - Removed copy of CHECK_VDR (Chinmay)
  - Refactored ld/st functions (Chinmay)

  Patch 8:
  - Removed unnecessary modules from Kconfig file (Cedric>
  - Perform ram size check earlier (Cedric)

  Patch 9:
  - Rebase required moving test into tests/functional/ppc

This patchset adds support for the IBM PPE42 processor,
including a simple machine providing a platform for
testing the PPE42 instructions.

The PPE42 processor is used as an embedded processor in
the IBM Power9, Power10 and Power12 processors for various
tasks.  It is basically a stripped down version of the
IBM PowerPC 405 processor, with some added instructions
for handling 64-bit loads and stores and some 64-bit
logical operations.
    
For more information on the PPE 42 processor please visit:
    
https://wiki.raptorcs.com/w/images/a/a3/PPE_42X_Core_Users_Manual.pdf

A functional test is included.  This test downloads a
prebuilt test image from:

https://github.com/milesg-github/ppe42-tests

Building the image rquires a forked version of an old
version of GCC, which can be found here:

https://github.com/open-power/ppe42-gcc

Thanks,

Glenn


Glenn Miles (9):
  target/ppc: IBM PPE42 general regs and flags
  target/ppc: Add IBM PPE42 family of processors
  target/ppc: IBM PPE42 exception flags and regs
  target/ppc: Add IBM PPE42 exception model
  target/ppc: Support for IBM PPE42 MMU
  target/ppc: Add IBM PPE42 special instructions
  hw/ppc: Support for an IBM PPE42 CPU decrementer
  hw/ppc: Add a test machine for the IBM PPE42 CPU
  tests/functional: Add test for IBM PPE42 instructions

 MAINTAINERS                         |   7 +
 hw/ppc/Kconfig                      |   5 +
 hw/ppc/meson.build                  |   2 +
 hw/ppc/ppc_booke.c                  |   7 +-
 hw/ppc/ppe42_machine.c              | 102 +++++
 include/hw/ppc/ppc.h                |   1 +
 target/ppc/cpu-models.c             |   7 +
 target/ppc/cpu-models.h             |   4 +
 target/ppc/cpu.h                    |  76 +++-
 target/ppc/cpu_init.c               | 241 ++++++++--
 target/ppc/excp_helper.c            | 163 +++++++
 target/ppc/helper_regs.c            |  45 +-
 target/ppc/insn32.decode            |  66 ++-
 target/ppc/tcg-excp_helper.c        |  12 +
 target/ppc/translate.c              |  35 +-
 target/ppc/translate/ppe-impl.c.inc | 665 ++++++++++++++++++++++++++++
 tests/functional/ppc/meson.build    |   1 +
 tests/functional/ppc/test_ppe42.py  |  79 ++++
 18 files changed, 1451 insertions(+), 67 deletions(-)
 create mode 100644 hw/ppc/ppe42_machine.c
 create mode 100644 target/ppc/translate/ppe-impl.c.inc
 create mode 100644 tests/functional/ppc/test_ppe42.py

-- 
2.43.0