M5 uses script files to specify simulated system configurations and simulation options. Running M5 is as simple as giving the name of a script file (ending in '.py') as a command-line argument.
The script file documentation page (Configuration Files Explained) has details on script file format and interpretation. The easiest way to get started is to use an existing script file. Several examples are provided in the src/configs directory.
The m5 command line has two parts: (1) the simulator section which includes the simulator executable and its options, and (2) the script section, which includes the script file and its options. The usage is:
% build/ALPHA_SE/m5.debug [m5 options] script.py [script options]
The build/ALPHA_SE/m5.debug part is the m5 executabe, and the [m5 options] part are all of the options that the simulator itself understands. Running m5 with the "-h" flag prints a help messag that includes all of the supported simulator options. Here's a snippet:
% build/ALPHA_SE/m5.debug -h Usage ===== m5.debug [m5 options] script.py [script options] Copyright (c) 2001-2006 The Regents of The University of Michigan All Rights Reserved options ======= --version show program's version number and exit --help, -h show this help message and exit --authors, -A Show author information --copyright, -C Show full copyright information --readme, -R Show the readme --release-notes, -N Show the release notes --outdir=DIR, -d DIR Set the output directory to DIR [Default: .] --interactive, -i Invoke the interactive interpreter after running the script --pdb Invoke the python debugger before running the script --path=PATH[:PATH], -p PATH[:PATH] Prepend PATH to the system path when invoking the script --quiet, -q Reduce verbosity --verbose, -v Increase verbosity ...
The script section of the command line begins with a path to your script file. M5 runs the script in almost exactly the same way python itself would run your script directly (e.g. "python myscript.py [ myscript options ]". The key difference being that m5 executable provides the m5 package and some debugging hooks. This means that you can pass your script options on the command line just like a normal script would. More details can be found in the Options section.