ArmPMU.py (12851:a20820ba854c) ArmPMU.py (12973:78a7bbc23c29)
1# -*- mode:python -*-
2# Copyright (c) 2009-2014, 2017 ARM Limited
3# All rights reserved.
4#
5# The license below extends only to copyright in the software and shall
6# not be construed as granting a license to any other intellectual
7# property including but not limited to intellectual property relating
8# to a hardware implementation of the functionality of the software

--- 28 unchanged lines hidden (view full) ---

37# Authors: Matt Horsnell
38# Andreas Sandberg
39
40from m5.defines import buildEnv
41from m5.SimObject import *
42from m5.params import *
43from m5.params import isNullPointer
44from m5.proxy import *
1# -*- mode:python -*-
2# Copyright (c) 2009-2014, 2017 ARM Limited
3# All rights reserved.
4#
5# The license below extends only to copyright in the software and shall
6# not be construed as granting a license to any other intellectual
7# property including but not limited to intellectual property relating
8# to a hardware implementation of the functionality of the software

--- 28 unchanged lines hidden (view full) ---

37# Authors: Matt Horsnell
38# Andreas Sandberg
39
40from m5.defines import buildEnv
41from m5.SimObject import *
42from m5.params import *
43from m5.params import isNullPointer
44from m5.proxy import *
45from Gic import ArmInterruptPin
45
46class ProbeEvent(object):
47 def __init__(self, pmu, _eventId, obj, *listOfNames):
48 self.obj = obj
49 self.names = listOfNames
50 self.eventId = _eventId
51 self.pmu = pmu
52

--- 9 unchanged lines hidden (view full) ---

62 self.pmu = pmu
63
64 def register(self):
65 self.pmu.getCCObject().addSoftwareIncrementEvent(self.eventId)
66
67ARCH_EVENT_CORE_CYCLES = 0x11
68
69class ArmPMU(SimObject):
46
47class ProbeEvent(object):
48 def __init__(self, pmu, _eventId, obj, *listOfNames):
49 self.obj = obj
50 self.names = listOfNames
51 self.eventId = _eventId
52 self.pmu = pmu
53

--- 9 unchanged lines hidden (view full) ---

63 self.pmu = pmu
64
65 def register(self):
66 self.pmu.getCCObject().addSoftwareIncrementEvent(self.eventId)
67
68ARCH_EVENT_CORE_CYCLES = 0x11
69
70class ArmPMU(SimObject):
70
71 type = 'ArmPMU'
72 cxx_class = 'ArmISA::PMU'
73 cxx_header = 'arch/arm/pmu.hh'
74
75 cxx_exports = [
76 PyBindMethod("addEventProbe"),
77 PyBindMethod("addSoftwareIncrementEvent"),
78 ]

--- 90 unchanged lines hidden (view full) ---

169 # 0x2D: L2D_TLB_REFILL
170 # 0x2E: L2I_TLB_REFILL
171 # 0x2F: L2D_TLB
172 # 0x30: L2I_TLB
173
174 cycleEventId = Param.Int(ARCH_EVENT_CORE_CYCLES, "Cycle event id")
175 platform = Param.Platform(Parent.any, "Platform this device is part of.")
176 eventCounters = Param.Int(31, "Number of supported PMU counters")
71 type = 'ArmPMU'
72 cxx_class = 'ArmISA::PMU'
73 cxx_header = 'arch/arm/pmu.hh'
74
75 cxx_exports = [
76 PyBindMethod("addEventProbe"),
77 PyBindMethod("addSoftwareIncrementEvent"),
78 ]

--- 90 unchanged lines hidden (view full) ---

169 # 0x2D: L2D_TLB_REFILL
170 # 0x2E: L2I_TLB_REFILL
171 # 0x2F: L2D_TLB
172 # 0x30: L2I_TLB
173
174 cycleEventId = Param.Int(ARCH_EVENT_CORE_CYCLES, "Cycle event id")
175 platform = Param.Platform(Parent.any, "Platform this device is part of.")
176 eventCounters = Param.Int(31, "Number of supported PMU counters")
177 pmuInterrupt = Param.Int(68, "PMU GIC interrupt number")
177 interrupt = Param.ArmInterruptPin("PMU interrupt")