From: Glenn Miles <milesg@linux.ibm.com>
To: qemu-devel@nongnu.org
Cc: Glenn Miles <milesg@linux.ibm.com>,
qemu-ppc@nongnu.org, clg@redhat.com, npiggin@gmail.com,
harshpb@linux.ibm.com, thuth@redhat.com, rathc@linux.ibm.com,
richard.henderson@linaro.org
Subject: [PATCH v3 0/9] Add IBM PPE42 CPU support
Date: Mon, 8 Sep 2025 15:00:10 -0500 [thread overview]
Message-ID: <20250908200028.115789-1-milesg@linux.ibm.com> (raw)
v3:
- Split v2 patch 1 into smaller patches 1 through 5 (Cedric)
- Moved special PPE42 decrementer support into distinct patch (Cedric)
- Introduced a specific MachineState for the ppe42 Machine (Cedric)
- Use qdev_realize to create the machine (Cedric)
- Use valid_cpu_types to determine validity of CPU (Cedric)
- Changed machine ram limit from 2GB to 512KB (Cedric)
- Utilize the TRANS macro to reduce TCG code (Chinmay)
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 | 9 +
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 | 663 ++++++++++++++++++++++++++++
tests/functional/meson.build | 1 +
tests/functional/test_ppc_ppe42.py | 79 ++++
18 files changed, 1453 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/test_ppc_ppe42.py
--
2.43.0
next reply other threads:[~2025-09-08 20:02 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-08 20:00 Glenn Miles [this message]
2025-09-08 20:00 ` [PATCH v3 1/9] target/ppc: IBM PPE42 general regs and flags Glenn Miles
2025-09-08 20:00 ` [PATCH v3 2/9] target/ppc: Add IBM PPE42 family of processors Glenn Miles
2025-09-08 20:00 ` [PATCH v3 3/9] target/ppc: IBM PPE42 exception flags and regs Glenn Miles
2025-09-08 20:00 ` [PATCH v3 4/9] target/ppc: Add IBM PPE42 exception model Glenn Miles
2025-09-08 20:00 ` [PATCH v3 5/9] target/ppc: Support for IBM PPE42 MMU Glenn Miles
2025-09-08 20:00 ` [PATCH v3 6/9] target/ppc: Add IBM PPE42 special instructions Glenn Miles
2025-09-12 10:50 ` Chinmay Rath
2025-09-12 15:59 ` Miles Glenn
2025-09-08 20:00 ` [PATCH v3 7/9] hw/ppc: Support for an IBM PPE42 CPU decrementer Glenn Miles
2025-09-08 20:00 ` [PATCH v3 8/9] hw/ppc: Add a test machine for the IBM PPE42 CPU Glenn Miles
2025-09-10 7:10 ` Cédric Le Goater
2025-09-10 14:21 ` Miles Glenn
2025-09-08 20:00 ` [PATCH v3 9/9] tests/functional: Add test for IBM PPE42 instructions Glenn Miles
2025-09-08 21:17 ` Miles Glenn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250908200028.115789-1-milesg@linux.ibm.com \
--to=milesg@linux.ibm.com \
--cc=clg@redhat.com \
--cc=harshpb@linux.ibm.com \
--cc=npiggin@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=rathc@linux.ibm.com \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.