Rev | Date | Author | Note |
---|---|---|---|
1.0 |
2018-11-28 |
MH |
Initial version. |
1. Introduction
The PowerPC target in TEMU comes with support for the 32 bit PowerPC architecture. It currently implements the PPC750 CPU model. The target is in beta-state at time of writing.
2. Variants
2.1. PowerPC 750
The PPC 750 is a 32 bit PowerPC without AltiVec support.
3. Configuration
3.1. Arguments
3.2. Properties
3.2.1. Interface References
- memaccess
-
The interface reference to an object reacting to the emulator core’s memory accesses (whenever there is an ATC miss). This should normally refer to a memory space object or the MMU interface. Set this to memspace:MemAccessIface in case the CPU lacks an MMU or to cpu:MmuMemAccessIface in-case the CPU has an MMU. That is, in the case of an MMU, the iface reference refers to the object itself.
- memory
-
The interface reference to an object handling memory block read and writes, this should normally refer to a memory space object.
- irqctrl
-
The interface reference to an object implementing the IrqControl interface. This can be used to connect external interrupt controllers which need to have interrupts acknowledged.
3.2.2. Other Properties
- freq
-
Clock frequency in Hz. Defaults to 50000000 = 50 MHz.
- cpuid
-
CPU id for multiprocessor configurations, defaults to 0.
3.3. Interfaces
The SPARCv8 emulator cores implement the following interfaces:
- CpuIface
-
The common CPU interface. This contain functions like run and register access functions.
- PowerPCIface
-
Standard PowerPC interface. Exposes convenient functions for accessing SPRs.
- IrqIface
-
The interrupt controller interface for raising interrupts on the processor.
- InvalidMemAccessIface
-
Interface invoked on invalid memory accesses. This contain functions that will longjmp to the CPU trap handling logic. The interface can only be invoked from code invoked by the CPU core in one way or the other. Do not call the functions in this interface directly!
- EventIface
-
Interface for posting timed events on the CPU core’s event queue. Usually a reference to this event is installed in connected device models.
- MemoryIface
-
Proxy interface which forwards to the memory space object.
4. Limitations
Current known limitations of the PowerPC target include:
-
No static timing model is defined at this moment. That means that one instruction take one cycle to finish.
-
The built-in assemblers and disassemblers are not working at this have problems with split field instructions (e.g. SPR IDs).
-
Cache control interfaces are not implemented or supported, this can be addressed if needed.
-
AltiVec instructions are not implemented at this moment. These can be added if such a PowerPC model is requested.
-
MMU model is not yet validated against hardware.