15630Sgblack@eecs.umich.edu# Copyright (c) 2008 The Regents of The University of Michigan 25630Sgblack@eecs.umich.edu# All rights reserved. 35630Sgblack@eecs.umich.edu# 45630Sgblack@eecs.umich.edu# Redistribution and use in source and binary forms, with or without 55630Sgblack@eecs.umich.edu# modification, are permitted provided that the following conditions are 65630Sgblack@eecs.umich.edu# met: redistributions of source code must retain the above copyright 75630Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer; 85630Sgblack@eecs.umich.edu# redistributions in binary form must reproduce the above copyright 95630Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer in the 105630Sgblack@eecs.umich.edu# documentation and/or other materials provided with the distribution; 115630Sgblack@eecs.umich.edu# neither the name of the copyright holders nor the names of its 125630Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from 135630Sgblack@eecs.umich.edu# this software without specific prior written permission. 145630Sgblack@eecs.umich.edu# 155630Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 165630Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 175630Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 185630Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 195630Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 205630Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 215630Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 225630Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 235630Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 245630Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 255630Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 265630Sgblack@eecs.umich.edu# 275630Sgblack@eecs.umich.edu# Authors: Gabe Black 285630Sgblack@eecs.umich.edu 295630Sgblack@eecs.umich.edufrom m5.params import * 305630Sgblack@eecs.umich.edufrom m5.proxy import * 3113665Sandreas.sandberg@arm.comfrom m5.objects.Device import BasicPioDevice 3214290Sgabeblack@google.comfrom m5.objects.IntPin import IntSourcePin, VectorIntSinkPin 335634Sgblack@eecs.umich.edu 345634Sgblack@eecs.umich.educlass X86I8259CascadeMode(Enum): 355634Sgblack@eecs.umich.edu map = {'I8259Master' : 0, 365634Sgblack@eecs.umich.edu 'I8259Slave' : 1, 375634Sgblack@eecs.umich.edu 'I8259Single' : 2 385634Sgblack@eecs.umich.edu } 395630Sgblack@eecs.umich.edu 405630Sgblack@eecs.umich.educlass I8259(BasicPioDevice): 415630Sgblack@eecs.umich.edu type = 'I8259' 425630Sgblack@eecs.umich.edu cxx_class='X86ISA::I8259' 439338SAndreas.Sandberg@arm.com cxx_header = "dev/x86/i8259.hh" 4414290Sgabeblack@google.com output = IntSourcePin('The pin this I8259 drives') 4514290Sgabeblack@google.com inputs = VectorIntSinkPin('The pins that drive this I8259') 465634Sgblack@eecs.umich.edu mode = Param.X86I8259CascadeMode('How this I8259 is cascaded') 475859Sgblack@eecs.umich.edu slave = Param.I8259(NULL, 'Slave I8259, if any') 48