1# Copyright (c) 2006-2007 The Regents of The University of Michigan 2# Copyright (c) 2009 Advanced Micro Devices, Inc. 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions are 7# met: redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer; --- 29 unchanged lines hidden (view full) --- 38# Declare caches used by the protocol 39# 40class L1Cache(RubyCache): pass 41class L2Cache(RubyCache): pass 42 43def define_options(parser): 44 return 45 |
46def create_system(options, full_system, system, dma_ports, bootmem, 47 ruby_system): |
48 49 if buildEnv['PROTOCOL'] != 'MESI_Two_Level': 50 fatal("This script requires the MESI_Two_Level protocol to be built.") 51 52 cpu_sequencers = [] 53 54 # 55 # The ruby network creation expects the list of nodes in the system to be --- 113 unchanged lines hidden (view full) --- 169 170 # Run each of the ruby memory controllers at a ratio of the frequency of 171 # the ruby system 172 # clk_divider value is a fix to pass regression. 173 ruby_system.memctrl_clk_domain = DerivedClockDomain( 174 clk_domain = ruby_system.clk_domain, 175 clk_divider = 3) 176 |
177 mem_dir_cntrl_nodes, rom_dir_cntrl_node = create_directories( 178 options, system.mem_ranges, bootmem, ruby_system, system) 179 dir_cntrl_nodes = mem_dir_cntrl_nodes[:] 180 if rom_dir_cntrl_node is not None: 181 dir_cntrl_nodes.append(rom_dir_cntrl_node) |
182 for dir_cntrl in dir_cntrl_nodes: 183 # Connect the directory controllers and the network 184 dir_cntrl.requestToDir = MessageBuffer() 185 dir_cntrl.requestToDir.slave = ruby_system.network.master 186 dir_cntrl.responseToDir = MessageBuffer() 187 dir_cntrl.responseToDir.slave = ruby_system.network.master 188 dir_cntrl.responseFromDir = MessageBuffer() 189 dir_cntrl.responseFromDir.master = ruby_system.network.slave --- 40 unchanged lines hidden (view full) --- 230 io_controller.responseFromDir.slave = ruby_system.network.master 231 io_controller.requestToDir = MessageBuffer() 232 io_controller.requestToDir.master = ruby_system.network.slave 233 234 all_cntrls = all_cntrls + [io_controller] 235 236 ruby_system.network.number_of_virtual_networks = 3 237 topology = create_topology(all_cntrls, options) |
238 return (cpu_sequencers, mem_dir_cntrl_nodes, topology) |