Release notes for Gavare's eXperimental Emulator (GXemul), 0.3.7
================================================================

Copyright (C) 2003-2005  Anders Gavare.


GXemul is an experimental instruction-level machine emulator. Several
emulation modes are available. In some modes, processors and surrounding
hardware components are emulated well enough to let unmodified operating
systems (e.g. NetBSD) run as if they were running on a real machine.

MIPS processors are emulated using either a simple binary translation
layer ("recompilation"), which is used on Alpha and i386 hosts, or by
traditional interpretation (very very slow, but works on any host platform).

ARM and PowerPC processors are emulated using a newer dynamic translation
system. Performance is somewhere between traditional interpretation and
dynamic recompilation; however, the dynamic translation system used in
GXemul does NOT require platform-specific back-end code. In plain English,
this means that the dyntrans system works on any host platform.

I have verified that the following "guest" operating systems can run inside
the emulator. Instructions on how to install and run these can be found in
the documentation.

    Guest operating system             Emulated machine
    ----------------------             ----------------
    NetBSD/pmax 2.1 (and 1.6.2)        DECstation 5000/200
    OpenBSD/pmax 2.8-BETA              DECstation 5000/200
    Ultrix 4.2-4.5                     DECstation 5000/200
    Sprite demo harddisk image         DECstation 5000/200
    Debian GNU/Linux for DECstation    DECstation 5000/200
    Redhat Linux 7.1 for mips          DECstation 5000/200
    NetBSD/arc 1.6.2                   Acer PICA-61
    OpenBSD/arc 2.3                    Acer PICA-61
    NetBSD/hpcmips 2.1                 NEC MobilePro 770, 780, 800, 880
    NetBSD/cobalt 2.1                  Cobalt
    NetBSD/evbmips 2.1                 Malta 5Kc/4Kc evaluation board
    NetBSD/sgimips 2.1                 SGI O2 ("IP32")
    NetBSD/cats 2.1                    CATS (ARM)
    OpenBSD/cats 3.8                   CATS (ARM)
    NetBSD/prep 2.1                    PReP (PowerPC Reference Platform)

Some of these guest operating systems are easier to install and run than
others. The best supported guest operating systems are probably NetBSD/pmax,
NetBSD/cats and OpenBSD/cats.

The emulator can also be used in other experiments; it does not have to run
entire guest operating systems. However, as GXemul is an instruction-level
emulator, it does not simulate things smaller than an instruction. What this
means is that pipe-line stalls, penalties caused by branch-prediction misses
or cache misses, and other micro-architectural effects are not simulated.

User-visible change between release 0.3.6.2 and 0.3.7 include:

    o)	The experimental PowerPC emulation mode is now working well enough
	to allow NetBSD/prep 2.1 to be installed and run inside the emulator.
	It is not 100% stable, and it is not optimized for performance yet,
	but hopefully enough for simple experiments.

    o)	I finally took the time to implement a DEC 21143 NIC; this brings
	network connectivity to NetBSD/cats. (The userland "NAT"-like
	networking layer is still a bit buggy, and does not work with
	everything. However, NetBSD/cats can now be installed via ftp.)

    o)	CD-ROM images can now in some cases be detected as ATAPI CD-ROMs
	instead of IDE harddisks. It works for at least NetBSD, OpenBSD,
	and Linux on CATS, and NetBSD on hpcmips.

Internal (code related) changes include:

    o)  Cleanup of the PCI and ISA bus frameworks; in practice this means
	that more code can be shared between different emulated machine
	models than before, and that adding new machine types will become
	easier.

    o)  Dyntrans updates; 32-bit PowerPC mostly, but also many performance
	related updates for ARM.

There have also been lots of other changes, too many and small to mention here.

Files included in this release are:

  BUGS                        A list of known bugs.
  HISTORY                     Detailed revision history / changelog.
  LICENSE                     Copyright message / license.
  README                      Quick start instructions, for the impatient.
  RELEASE                     This file.
  TODO                        TODO notes.
  configure, Makefile.skel    sh and make scripts for building GXemul.
  doc                         Documentation.
  experiments                 Experimental code. (Usually not needed.)
  src                         Source code.

To build the emulator, run the ./configure script, and then run make.

Building the emulator should work on most Unix-like systems. (One system which
is specifically known to NOT work is Ultrix/RISC inside the emulator; Ultrix
chokes on the configure script and the default cc in Ultrix doesn't work.)

Regarding files in the src/include/ directory: only some of these are written
by me, the rest are from other sources (such as NetBSD). The license text says
that "All advertising materials mentioning features or use of this software"
must display acknowledgements. Even though I do NOT feel I mention features or
use of the header files (the "software") in any advertising materials, I am
still very grateful for the fact that these people have made their files
available for re-use, so regardless of legal requirements, I guess thanking
them like this is in order:

    This product includes software developed by the University of
    California, Berkeley and its contributors.

    This product includes software developed for the
    NetBSD Project.  See http://www.netbsd.org/ for
    information about NetBSD.

    This product includes software developed by Jonathan Stone for
    the NetBSD Project.

    This product includes software developed for the NetBSD Project
    by Matthias Drochner.

    This product includes software developed by the NetBSD
    Foundation, Inc. and its contributors.

    This product includes software developed by Christopher G. Demetriou.
    [for the NetBSD Project.]

    This product includes software developed by Adam Glass.

    This product includes software developed by the PocketBSD project
    and its contributors.

    This product includes software developed by Peter Galbavy.

    Carnegie Mellon University   (multiple header files,
    no specific advertisement text required)

    This product includes software developed by Charles M. Hannum.

    This product includes software developed under OpenBSD by Per Fogelstrm.

    This product includes software developed by Per Fogelstrm.

    This product includes software developed at Ludd, University of
    Lule, Sweden and its contributors.

    This product includes software developed by Hellmuth Michaelis
    and Joerg Wunsch

    The font(s) in devices/fonts are Copyright (c) 1992, 1993, 1994
    by Hellmuth Michaelis and Joerg Wunsch.  ("This product includes software
    developed by Hellmuth Michaelis and Joerg Wunsch", well, the font
    is maybe not software, but still...)

    impactsr-bsd.h is Copyright (C) 2004 by Stanislaw Skowronek.

    This product includes software developed for the NetBSD Project by
    Wasabi Systems, Inc.  [by Simon Burge]

    arcbios_other.h is Copyright (c) 1996 M. Warner Losh.

    This product includes software developed by Marc Horowitz.

    This product includes software developed by Brini.

    This product includes software developed by Mark Brinicombe
    for the NetBSD Project.

    This product includes software developed by TooLs GmbH.

    This product includes software developed by Manuel Bouyer.

Also, src/include/alpha_rpb.h requires the following:

    Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
    All rights reserved.

    Author: Keith Bostic, Chris G. Demetriou

    Permission to use, copy, modify and distribute this software and
    its documentation is hereby granted, provided that both the copyright
    notice and this permission notice appear in all copies of the
    software, derivative works or modified versions, and any portions
    thereof, and that both notices appear in supporting documentation.

See individual files for license details, if you plan to redistribute GXemul
or reuse code.

Thanks to (in no specific order) Joachim Buss, Juli Mallett, Juan Romero
Pardines, Alec Voropay, Gran Weinholt, Alexander Yurchenko, and everyone
else who has provided me with feedback.

If you have found GXemul useful in some way, or feel like sending me comments
or feedback in general, then mail me at anders(at)gavare.se.

