BaseKvmCPU.py revision 13665
11689SN/A# Copyright (c) 2012 ARM Limited 210330Smitch.hayenga@arm.com# All rights reserved. 38842Smrinmoy.ghosh@arm.com# 48842Smrinmoy.ghosh@arm.com# The license below extends only to copyright in the software and shall 58842Smrinmoy.ghosh@arm.com# not be construed as granting a license to any other intellectual 68842Smrinmoy.ghosh@arm.com# property including but not limited to intellectual property relating 78842Smrinmoy.ghosh@arm.com# to a hardware implementation of the functionality of the software 88842Smrinmoy.ghosh@arm.com# licensed hereunder. You may use the software subject to the license 98842Smrinmoy.ghosh@arm.com# terms below provided that you ensure that this notice is replicated 108842Smrinmoy.ghosh@arm.com# unmodified and in its entirety in all distributions of the software, 118842Smrinmoy.ghosh@arm.com# modified or unmodified, in source code or in binary form. 128842Smrinmoy.ghosh@arm.com# 138842Smrinmoy.ghosh@arm.com# Redistribution and use in source and binary forms, with or without 142345SN/A# modification, are permitted provided that the following conditions are 151689SN/A# met: redistributions of source code must retain the above copyright 161689SN/A# notice, this list of conditions and the following disclaimer; 171689SN/A# redistributions in binary form must reproduce the above copyright 181689SN/A# notice, this list of conditions and the following disclaimer in the 191689SN/A# documentation and/or other materials provided with the distribution; 201689SN/A# neither the name of the copyright holders nor the names of its 211689SN/A# contributors may be used to endorse or promote products derived from 221689SN/A# this software without specific prior written permission. 231689SN/A# 241689SN/A# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 251689SN/A# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 261689SN/A# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 271689SN/A# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 281689SN/A# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 291689SN/A# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 301689SN/A# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 311689SN/A# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 321689SN/A# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 331689SN/A# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 341689SN/A# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 351689SN/A# 361689SN/A# Authors: Andreas Sandberg 371689SN/A 381689SN/Afrom m5.SimObject import * 392665SN/Afrom m5.params import * 402665SN/Afrom m5.proxy import * 419480Snilay@cs.wisc.edu 429480Snilay@cs.wisc.edufrom m5.objects.BaseCPU import BaseCPU 431689SN/Afrom m5.objects.KvmVM import KvmVM 441689SN/A 459480Snilay@cs.wisc.educlass BaseKvmCPU(BaseCPU): 469480Snilay@cs.wisc.edu type = 'BaseKvmCPU' 471062SN/A cxx_header = "cpu/kvm/base.hh" 486216SN/A abstract = True 496216SN/A 506216SN/A @cxxMethod 519480Snilay@cs.wisc.edu def dump(self): 529480Snilay@cs.wisc.edu """Dump the internal state of KVM to standard out.""" 5310785Sgope@wisc.edu pass 541062SN/A 552345SN/A @classmethod 562345SN/A def memory_mode(cls): 572345SN/A return 'atomic_noncaching' 582345SN/A 592345SN/A @classmethod 602345SN/A def require_caches(cls): 612345SN/A return False 622345SN/A 632345SN/A @classmethod 649480Snilay@cs.wisc.edu def support_take_over(cls): 651062SN/A return True 661062SN/A 671062SN/A useCoalescedMMIO = Param.Bool(False, "Use coalesced MMIO (EXPERIMENTAL)") 681062SN/A usePerfOverflow = Param.Bool(False, "Use perf event overflow counters (EXPERIMENTAL)") 691062SN/A alwaysSyncTC = Param.Bool(False, 7010785Sgope@wisc.edu "Always sync thread contexts on entry/exit") 711062SN/A 721062SN/A hostFreq = Param.Clock("2GHz", "Host clock frequency") 731062SN/A hostFactor = Param.Float(1.0, "Cycle scale factor") 742345SN/A