Configuration
Arguments
When creating the processor, the temu_create()
function accepts a number of arguments
(which can be given as args=key0:value0,key1:value1`
in the command line interface).
These arguments are:
- cpuid
-
CPUId, this is a numeric identifier of the core in multi-core/smp systems. Defaults to 0, ignore if you want a single core machine.
- freq
-
Clock frequency in Hz.
- cputype
-
For the Leon4 class only. The cputype argument can be set to the string 'ngmp'. This enables NGMP reset values.
Properties
The following properties are important for configuration of a virtual system.
Interface References
- memaccess
-
The interface reference 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. Set tocpu:MmuMemAccessIface
in-case the CPU has an MMU. That is, in the case of an MMU, the iface reference refers to the object itself. - memAccessL2
-
The interface reference to an object reacting to the memory accesses. In case the system has an MMU, set this to
memspace:MemAccessIface
. - 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. - devices
-
Array of interface references to device models. The objects in this array will have a CPU reset call propagated to themselves. If your device model handles reset messages, it must be put into the devices array (in either the CPU or the machine object).
- dCache
-
Data cache model. For high performance, omit the cache model. This property is only available in processor cores that support cache.
- iCache
-
Data cache model. For high performance, omit the cache model. This property is only available in processor cores that support cache.
Interfaces
The SPARCv8 emulator cores implement the following interfaces:
- CpuIface
-
The common CPU interface. This contain functions like run and register access functions.
- SparcIface
-
Standard SPARCv8 interface. Contains among other things functions for accessing windowed registers. One capability of the SPARC interface is the registration of ASI handlers.
- 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.
- MmuMemAccessIface
-
The memory interface provided by the CPU to do accesses through the MMU.
- ICacheCtrlIface
-
Instruction cache control interface. Only available in LEON3 and LEON4.
- DCacheCtrlIface
-
Data cache control interface. Only available in LEON3 and LEON4.