X86TLB.py revision 9338
15467Snate@binkert.org# Copyright (c) 2007 The Hewlett-Packard Development Company 25467Snate@binkert.org# All rights reserved. 35467Snate@binkert.org# 45467Snate@binkert.org# The license below extends only to copyright in the software and shall 55467Snate@binkert.org# not be construed as granting a license to any other intellectual 65467Snate@binkert.org# property including but not limited to intellectual property relating 75467Snate@binkert.org# to a hardware implementation of the functionality of the software 85467Snate@binkert.org# licensed hereunder. You may use the software subject to the license 95467Snate@binkert.org# terms below provided that you ensure that this notice is replicated 105467Snate@binkert.org# unmodified and in its entirety in all distributions of the software, 115467Snate@binkert.org# modified or unmodified, in source code or in binary form. 125467Snate@binkert.org# 135467Snate@binkert.org# Redistribution and use in source and binary forms, with or without 145467Snate@binkert.org# modification, are permitted provided that the following conditions are 155467Snate@binkert.org# met: redistributions of source code must retain the above copyright 165467Snate@binkert.org# notice, this list of conditions and the following disclaimer; 175467Snate@binkert.org# redistributions in binary form must reproduce the above copyright 185467Snate@binkert.org# notice, this list of conditions and the following disclaimer in the 195467Snate@binkert.org# documentation and/or other materials provided with the distribution; 205467Snate@binkert.org# neither the name of the copyright holders nor the names of its 215467Snate@binkert.org# contributors may be used to endorse or promote products derived from 225467Snate@binkert.org# this software without specific prior written permission. 235467Snate@binkert.org# 245467Snate@binkert.org# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 255467Snate@binkert.org# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 265467Snate@binkert.org# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 275467Snate@binkert.org# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 285467Snate@binkert.org# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 295467Snate@binkert.org# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 305467Snate@binkert.org# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 315467Snate@binkert.org# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 325467Snate@binkert.org# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 34# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35# 36# Authors: Gabe Black 37 38from m5.params import * 39from m5.proxy import * 40 41from BaseTLB import BaseTLB 42from MemObject import MemObject 43 44class X86PagetableWalker(MemObject): 45 type = 'X86PagetableWalker' 46 cxx_class = 'X86ISA::Walker' 47 cxx_header = 'arch/x86/pagetable_walker.hh' 48 port = MasterPort("Port for the hardware table walker") 49 system = Param.System(Parent.any, "system object") 50 51class X86TLB(BaseTLB): 52 type = 'X86TLB' 53 cxx_class = 'X86ISA::TLB' 54 cxx_header = 'arch/x86/tlb.hh' 55 size = Param.Int(64, "TLB size") 56 walker = Param.X86PagetableWalker(\ 57 X86PagetableWalker(), "page table walker") 58