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