1# -*- mode:python -*- 2 3# Copyright (c) 2007 MIPS Technologies, Inc. 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are 8# met: redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer; 10# redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution; 13# neither the name of the copyright holders nor the names of its 14# contributors may be used to endorse or promote products derived from 15# this software without specific prior written permission. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28# 29# Authors: Jaidev Patwardhan 30 31from m5.defines import buildEnv 32from m5.params import * 33from m5.proxy import * 34 35from m5.objects.System import System 36 37class MipsSystem(System): 38 type = 'MipsSystem' 39 cxx_header = 'arch/mips/system.hh' 40 console = Param.String("file that contains the console code") 41 bare_iron = Param.Bool(False, "Using Bare Iron Mode?") 42 hex_file_name = Param.String("test.hex","hex file that contains [address,data] pairs") 43 system_type = Param.UInt64("Type of system we are emulating") 44 system_rev = Param.UInt64("Revision of system we are emulating") 45 load_addr_mask = 0xffffffffff 46 47class LinuxMipsSystem(MipsSystem): 48 type = 'LinuxMipsSystem' 49 cxx_header = 'arch/mips/linux/system.hh' 50 system_type = 34 51 system_rev = 1 << 10 52 53 boot_cpu_frequency = Param.Frequency(Self.cpu[0].clk_domain.clock[0] 54 .frequency, 55 "boot processor frequency") 56 57class BareIronMipsSystem(MipsSystem): 58 type = 'BareIronMipsSystem' 59 cxx_header = 'arch/mips/bare_iron/system.hh' 60 bare_iron = True 61 system_type = 34 62 system_rev = 1 << 10 63 hex_file_name = Param.String('test.hex',"hex file that contains [address,data] pairs") 64 65