README revision 1850
11850Sstever@eecs.umich.eduThis is release m5_1.1 of the M5 simulator.
2131Sstever@eecs.umich.edu
3131Sstever@eecs.umich.eduThis file contains brief "getting started" information and release
4131Sstever@eecs.umich.edunotes.  For more information, see http://m5.eecs.umich.edu.  If you
5131Sstever@eecs.umich.eduhave questions, please send mail to m5sim-users@lists.sourceforge.net.
6131Sstever@eecs.umich.edu
7131Sstever@eecs.umich.eduWHAT'S INCLUDED (AND NOT)
8131Sstever@eecs.umich.edu-------------------------
9131Sstever@eecs.umich.edu
10131Sstever@eecs.umich.eduSince you're reading this file, presumably you've managed to untar the
11131Sstever@eecs.umich.edudistribution.  The archive you've unpacked has three subdirectories:
12131Sstever@eecs.umich.edu - m5: the simulator itself
13131Sstever@eecs.umich.edu - m5-test: regression tests and scripts to run them
14131Sstever@eecs.umich.edu - ext: less-common external packages needed to build m5
151850Sstever@eecs.umich.edu - alpha-system: source for Alpha console and PALcode
16131Sstever@eecs.umich.edu
171028Ssaidi@eecs.umich.eduM5 is a capable, full-system simulator that current supports both Linux
181028Ssaidi@eecs.umich.edu2.4/2.6 and the proprietary Compaq/HP Tru64 version of Unix. We are able 
191028Ssaidi@eecs.umich.eduto distribute Linux bootdisks, but we are unable to distribute bootable
201028Ssaidi@eecs.umich.edudisk images of Tru64 Unix. If you have a Tru64 license and are interested 
211028Ssaidi@eecs.umich.eduin obtaining disk images, contact us at m5-dev@eecs.umich.edu.
221028Ssaidi@eecs.umich.edu
231028Ssaidi@eecs.umich.eduWHAT'S NEEDED
241028Ssaidi@eecs.umich.edu-------------
251850Sstever@eecs.umich.edu- GCC (version 3.3 or 3.4 recommended)
261850Sstever@eecs.umich.edu- Python 2.3 or newer
271850Sstever@eecs.umich.edu- SCons 0.96.1 (see http://www.scons.org)
281028Ssaidi@eecs.umich.edu
291028Ssaidi@eecs.umich.eduWHAT'S RECOMMENDED
301028Ssaidi@eecs.umich.edu------------------
311850Sstever@eecs.umich.edu- MySQL (for statistics complex statistics storage/retrieval)
321850Sstever@eecs.umich.edu- Python-MysqlDB (for statistics analysis) 
33131Sstever@eecs.umich.edu
34131Sstever@eecs.umich.eduGETTING STARTED
35131Sstever@eecs.umich.edu---------------
36131Sstever@eecs.umich.edu
371850Sstever@eecs.umich.eduThere are two different build targets and three optimizations levels:
38131Sstever@eecs.umich.edu
391028Ssaidi@eecs.umich.eduTarget:
401028Ssaidi@eecs.umich.edu-------
411704Sstever@eecs.umich.eduALPHA_SE - Syscall emulation simulation
421850Sstever@eecs.umich.eduALPHA_FS - Full system simulation
431028Ssaidi@eecs.umich.edu
441028Ssaidi@eecs.umich.eduOptimization:
451028Ssaidi@eecs.umich.edu-------------
461028Ssaidi@eecs.umich.edum5.debug - debug version of the code with tracing and without optimization
471028Ssaidi@eecs.umich.edum5.opt   - optimized version of code with tracing
481028Ssaidi@eecs.umich.edum5.fast  - optimized version of the code without tracing and asserts
491028Ssaidi@eecs.umich.edu
501850Sstever@eecs.umich.eduDifferent targets are built in different subdirectories of m5/build.
511850Sstever@eecs.umich.eduBinaries with the same target but different optimization levels share
521850Sstever@eecs.umich.eduthe same directory.  Note that you can build m5 in any directory you
531850Sstever@eecs.umich.educhoose by copying the SConstruct file there and creating symbolic links
541850Sstever@eecs.umich.eduto the 'm5' and 'ext' directories.
551850Sstever@eecs.umich.edu
561850Sstever@eecs.umich.eduThe following steps will build and test the simulator.  The variable
571850Sstever@eecs.umich.edu"$top" refers to the top directory where you've unpacked the files,
581850Sstever@eecs.umich.edui.e., the one containing the m5, m5-test, and ext directories.  If you
591850Sstever@eecs.umich.eduhave a multiprocessor system, you should give scons a "-j N" argument (like
601850Sstever@eecs.umich.edumake) to run N jobs in parallel.
611850Sstever@eecs.umich.edu
621850Sstever@eecs.umich.eduTo build and test the syscall-emulation simulator:
631850Sstever@eecs.umich.edu
641850Sstever@eecs.umich.edu1. In $top/m5/build, run "scons ALPHA_SE/m5.opt".
651850Sstever@eecs.umich.edu2. In $top/m5-test, run "./do-tests.pl -B ALPHA_SE".
661850Sstever@eecs.umich.edu
671850Sstever@eecs.umich.eduThe tests should end with "finished do-tests successfully!"
681850Sstever@eecs.umich.eduNote: if you're running under Cygwin several tests will fail with an
691850Sstever@eecs.umich.edu"EIO icount mismatch".  This is due to the lack of fesetround() under
701850Sstever@eecs.umich.eduCygwin causing differences in floating-point rounding.
711850Sstever@eecs.umich.edu
721850Sstever@eecs.umich.eduTo build and test the full-system simualator:
731850Sstever@eecs.umich.edu
741850Sstever@eecs.umich.edu1. Download the full-system binary package from XXX.  This package includes
751850Sstever@eecs.umich.edu   disk images and kernel, palcode, and console binaries for Linux and FreeBSD.
761850Sstever@eecs.umich.edu2. Edit SYSTEMDIR in $top/m5-test/SysPaths.py to point to your local copy
771850Sstever@eecs.umich.edu   of the binaries.
781850Sstever@eecs.umich.edu3. In $top/m5/build, run "scons ALPHA_FS/m5.opt".
791850Sstever@eecs.umich.edu4. In $top/m5-test, run "./do-tests.pl -B ALPHA_FS".
801850Sstever@eecs.umich.edu
81