I8259.py revision 14290
16657Snate@binkert.org# Copyright (c) 2008 The Regents of The University of Michigan 26657Snate@binkert.org# All rights reserved. 36657Snate@binkert.org# 46657Snate@binkert.org# Redistribution and use in source and binary forms, with or without 56657Snate@binkert.org# modification, are permitted provided that the following conditions are 66657Snate@binkert.org# met: redistributions of source code must retain the above copyright 76657Snate@binkert.org# notice, this list of conditions and the following disclaimer; 86657Snate@binkert.org# redistributions in binary form must reproduce the above copyright 96657Snate@binkert.org# notice, this list of conditions and the following disclaimer in the 106657Snate@binkert.org# documentation and/or other materials provided with the distribution; 116657Snate@binkert.org# neither the name of the copyright holders nor the names of its 126657Snate@binkert.org# contributors may be used to endorse or promote products derived from 136657Snate@binkert.org# this software without specific prior written permission. 146657Snate@binkert.org# 156657Snate@binkert.org# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 166657Snate@binkert.org# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 176657Snate@binkert.org# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 186657Snate@binkert.org# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 196657Snate@binkert.org# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 206657Snate@binkert.org# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 216657Snate@binkert.org# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 226657Snate@binkert.org# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 236657Snate@binkert.org# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 246657Snate@binkert.org# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 256657Snate@binkert.org# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 266657Snate@binkert.org# 276657Snate@binkert.org# Authors: Gabe Black 286999Snate@binkert.org 296657Snate@binkert.orgfrom m5.params import * 306657Snate@binkert.orgfrom m5.proxy import * 316657Snate@binkert.orgfrom m5.objects.Device import BasicPioDevice 326657Snate@binkert.orgfrom m5.objects.IntPin import IntSourcePin, VectorIntSinkPin 336657Snate@binkert.org 346657Snate@binkert.orgclass X86I8259CascadeMode(Enum): 356657Snate@binkert.org map = {'I8259Master' : 0, 366657Snate@binkert.org 'I8259Slave' : 1, 376657Snate@binkert.org 'I8259Single' : 2 386657Snate@binkert.org } 396657Snate@binkert.org 406657Snate@binkert.orgclass I8259(BasicPioDevice): 416657Snate@binkert.org type = 'I8259' 426657Snate@binkert.org cxx_class='X86ISA::I8259' 436657Snate@binkert.org cxx_header = "dev/x86/i8259.hh" 446657Snate@binkert.org output = IntSourcePin('The pin this I8259 drives') 456657Snate@binkert.org inputs = VectorIntSinkPin('The pins that drive this I8259') 466657Snate@binkert.org mode = Param.X86I8259CascadeMode('How this I8259 is cascaded') 476657Snate@binkert.org slave = Param.I8259(NULL, 'Slave I8259, if any') 486657Snate@binkert.org