Outstanding issues for 2.0 release:
--------------------
1. Fix O3 CPU bug in SE 40.perlbmk fails
2. Fix O3 processing nacks/coherence messages
3. Better statistics for the caches.
4. FS mode doesn't work under Cygwin
5. memtest regression crashes under Cygwin
6. Make repository public
7. Testing
8. Validation

Nov 4, 2007: m5_2.0_beta4
--------------------
New Features
1. New cache model
2. Use of a I/O cache between devices and memory 
3. Ability to include compiled code with EXTRAS=
4. Python creation of params structures for initialization
5. Ability to remotely debug in SE 

Bug fixes:
1. Fix SE serialization
2. SPARC_FS booting with TimingSimpleCPU
3. Rename cycles() to ticks()
4. Various SPARC ISA fixes
5. Draining code for checkpointing
6. Various performance improvements

Possible Incompatibilities:
1. Real TLBs are now used in SE mode. This is more accurate however it could
   cause some problems if you've modified the way page handling is done in
   SE mode.
2. There have been many changes to the way the SCons files work. SimObjects,
   sources files, and trace flags are all specified in the SConscript files.
   To see how to add your sources take a look at one of them.
3. Python is now used to created the parameter structs that were created
   manually before. The parameters listed in a py file are turned into 
   a header file with the same name (e.g. BadDevice.py -> BadDevice.hh). 
   With this change the structs can be populated automatically and the 
   ugly macros to define and create SimObjects at the bottem of source
   files are gone. The parameter structs also automatically inherit 
   parameters from their parents. 

May 16, 2007: m5_2.0_beta3
--------------------
New Features
1. Some support for SPARC full-system simulation
2. Reworking of trace facitities (parameter names changed, variadic macros
   removed)
3. Scons script cleanups
4. Some support for compiling with Intel CC

Bug fixes since beta 2:
1. Many SPARC linux syscall emulation support fixes
2. Multiprocessor linux boot using the detailed O3 CPU module
3. Workaround for DMA bug (final solution to be released with 2.0f)
4. Simulator performance and memory leak fixes
5. Fixed issue where console could stop printing in ALPHA_FS
6. Fix issues with remote debugging
7. Several compile fixes, including gcc 4.1
8. Many other minor fixes and enhancements 
		
Nov. 28, 2006: m5_2.0_beta2
--------------------
Bug fixes since beta 1:
1. Many cache issues resolved
2. Uni-coherence fixes in full-system
3. LL/SC Support
4. Draining/Switchover
5. Functional Accesses
6. Bus now has real timing
7. Single config file for all SpecCPU2000 benchmarks
8. Several other minor bug fixes and enhancements

Aug. 25, 2006: m5_2.0_beta patch 1
--------------------
Handful of minor bug fixes for m5_2.0_beta,
along with a few new regression tests.

Aug. 15, 2006: m5_2.0_beta
--------------------
Major update to M5 including:
- New CPU model
- New memory system
- More extensive python integration
- Preliminary syscall emulation support for MIPS and SPARC
This is a *beta* release, meaning that some features are not complete,
and some features from M5 1.X aren't currently supported (e.g., MP
coherence).  We are working to address these limitations and hope to
have a complete 2.0 release soon.

Oct. 8, 2005: m5_1.1
--------------------
Update release for IOSCA workshop mini-tutorial.  New features include:
- Preliminary FreeBSD support
- Integration of regression tests into scons build framework
- Several bug fixes and better compatibility for Cygwin hosts
- Major cleanup of Alpha system code (console, PAL, etc.) to make
  it easier for others to build/modify
- Fixes to enable compilation under g++ 4.0 
- Numerous minor bug fixes

June 10, 2005: m5_1.0_web
-------------------------
The 1.0 release posted on Sourceforge after the ISCA tutorial contains
just a few very minor fixes relative to the CD.

June 5, 2005: m5_1.0_tutorial
-----------------------------
First non-beta release.  This release was on the CD distributed at the
ISCA tutorial.  Major enhancements relative to beta releases include
Linux support and Python-based configuration language.

June 17, 2004: m5_1.0_beta2
---------------------------
Stealth-mode beta bug-fix update, not widely advertised.

Oct. 17, 2003: m5_1.0_beta1
---------------------------
Early beta release.
