fs.py revision 2953
19793Sakash.bagdia@arm.comimport optparse, os, sys 27586SAli.Saidi@arm.com 37586SAli.Saidi@arm.comimport m5 47586SAli.Saidi@arm.comfrom m5.objects import * 57586SAli.Saidi@arm.comm5.AddToPath('../common') 67586SAli.Saidi@arm.comfrom FSConfig import * 77586SAli.Saidi@arm.comfrom SysPaths import * 87586SAli.Saidi@arm.comfrom Util import * 97586SAli.Saidi@arm.com 107586SAli.Saidi@arm.comparser = optparse.OptionParser() 117586SAli.Saidi@arm.com 127586SAli.Saidi@arm.comparser.add_option("-d", "--detailed", action="store_true") 133970Sgblack@eecs.umich.eduparser.add_option("-t", "--timing", action="store_true") 143005Sstever@eecs.umich.eduparser.add_option("-m", "--maxtick", type="int") 153005Sstever@eecs.umich.eduparser.add_option("--maxtime", type="float") 163005Sstever@eecs.umich.eduparser.add_option("--dual", help="Run full system using dual systems", 173005Sstever@eecs.umich.edu action="store_true") 183005Sstever@eecs.umich.edu 193005Sstever@eecs.umich.edu(options, args) = parser.parse_args() 203005Sstever@eecs.umich.edu 213005Sstever@eecs.umich.eduif args: 223005Sstever@eecs.umich.edu print "Error: script doesn't take any positional arguments" 233005Sstever@eecs.umich.edu sys.exit(1) 243005Sstever@eecs.umich.edu 253005Sstever@eecs.umich.eduif options.detailed: 263005Sstever@eecs.umich.edu cpu = DetailedO3CPU() 273005Sstever@eecs.umich.edu cpu2 = DetailedO3CPU() 283005Sstever@eecs.umich.edu mem_mode = 'timing' 293005Sstever@eecs.umich.eduelif options.timing: 303005Sstever@eecs.umich.edu cpu = TimingSimpleCPU() 313005Sstever@eecs.umich.edu cpu2 = TimingSimpleCPU() 323005Sstever@eecs.umich.edu mem_mode = 'timing' 333005Sstever@eecs.umich.eduelse: 343005Sstever@eecs.umich.edu cpu = AtomicSimpleCPU() 353005Sstever@eecs.umich.edu cpu2 = AtomicSimpleCPU() 363005Sstever@eecs.umich.edu mem_mode = 'atomic' 373005Sstever@eecs.umich.edu 383005Sstever@eecs.umich.eduif options.dual: 393005Sstever@eecs.umich.edu root = DualRoot( 403005Sstever@eecs.umich.edu MyLinuxAlphaSystem(cpu, mem_mode, linux_image), 416654Snate@binkert.org MyLinuxAlphaSystem(cpu2, mem_mode, linux_image)) 426654Snate@binkert.org root.client.readfile = script('netperf-stream-nt-client.rcS') 432889SN/A root.server.readfile = script('netperf-server.rcS') 442710SN/Aelse: 456654Snate@binkert.org root = TsunamiRoot(clock = '1THz', system = MyLinuxAlphaSystem(cpu, mem_mode, linux_image)) 466654Snate@binkert.org 476654Snate@binkert.orgm5.instantiate(root) 485457Ssaidi@eecs.umich.edu 496654Snate@binkert.org#exit_event = m5.simulate(2600000000000) 506654Snate@binkert.org#if exit_event.getCause() != "user interrupt received": 512934SN/A# m5.checkpoint(root, 'cpt') 522549SN/A# exit_event = m5.simulate(300000000000) 532995SN/A# if exit_event.getCause() != "user interrupt received": 543395Shsul@eecs.umich.edu# m5.checkpoint(root, 'cptA') 556981SLisa.Hsu@amd.com 563448Shsul@eecs.umich.edu 578920Snilay@cs.wisc.eduif options.maxtick: 583444Sktlim@umich.edu exit_event = m5.simulate(options.maxtick) 592889SN/Aelif options.maxtime: 608920Snilay@cs.wisc.edu simtime = int(options.maxtime * root.clock.value) 618920Snilay@cs.wisc.edu print "simulating for: ", simtime 623322Shsul@eecs.umich.edu exit_event = m5.simulate(simtime) 632710SN/Aelse: 642710SN/A exit_event = m5.simulate() 652710SN/A 662710SN/Aprint 'Exiting @ cycle', m5.curTick(), 'because', exit_event.getCause() 672710SN/A