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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).