--- trunk/RELEASE 2007/10/08 16:18:19 8 +++ trunk/RELEASE 2007/10/08 16:20:26 28 @@ -1,73 +1,76 @@ -Release notes for GXemul 0.3.3.2 -================================ +Release notes for Gavare's eXperimental Emulator (GXemul), 0.4.1 +================================================================ -Copyright (C) 2003-2005 Anders Gavare. +Copyright (C) 2003-2006 Anders Gavare. -GXemul is an experimental instruction-level machine emulator. It can be -used to run binary code for (among others) MIPS-based machines. Several -emulation modes are available. For some emulation modes, processors and -surrounding hardware components are emulated well enough to let unmodified -operating systems run as if they were running on a real machine. - -I have verified that the following "guest" operating systems can run -inside the emulator: - - Guest operating system Emulated machine - ---------------------- ---------------- - NetBSD/pmax 2.0 (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.0 NEC MobilePro 770, 780, 800, 880 - NetBSD/cobalt 2.0 Cobalt - -A couple of other emulation modes exist. Some of these modes are almost -working well enough to run complete guest operating systems, but most are -just skeletons. The modes that work are listed in the documentation. - -The emulator can also be used in other experiments; it does not have to -run entire guest operating systems. It is important to remember, though, -that GXemul does not simulate things smaller than an instruction; this -means that pipe-line stalls, penalties caused by branch-prediction misses, -and other effects are not simulated. - -Summary of changes between release 0.3.2 and 0.3.3.2: - - x) When booting from an ISO9660 (CDROM) filesystem image, the kernel - can now in some cases be read directly from the image, so there is - no need any longer to supply an external kernel. (It is a quick, - buggy, and very ugly hack, but it sometimes works.) - - x) Mixing more than one disk image type (SCSI, IDE, PC-style floppy) - within one emulated machine is now possible. (There is however no - stable emulation mode yet that uses this.) +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. + +The documentation lists the machines and guest operating systems that can +be regarded as "working" in GXemul. The best working guest operating +systems are probably NetBSD/pmax, NetBSD/cats, and OpenBSD/cats. + + +Changes between release 0.4.0.1 and 0.4.1 include, among other things: + + o) Some bugs in the dynamic translation core have been fixed, making + all emulation modes (especially the MIPS mode) more stable. + + o) In the refactoring effort between 0.4.0 and 0.4.0.1, single-stepping + (and instruction tracing) of 64-bit programs was accidentally broken. + Single-stepping in 64-bit mode could result in strange exceptions. + This has been fixed in 0.4.1. + + o) MIPS emulation performance has been improved somewhat: + + R3000: After removing some buggy code (hints for physical page + translations), it was possible to remove the workaround for R3000 + caches which was needed in 0.4.0.1 to make Linux and Ultrix run. + This gives an overall speedup for R2000/R3000. + + For non-R3000, there have been some speedups as well. After fixing + reference count bugs for 64-bit addressing in the dyntrans system, + workarounds/hacks in the tlbwr/tlbwi instructions and in the ASID + change helper function could be removed. + + o) A new -s command line option is now available, for dumping + raw runtime data/statistics on every instruction to a file. + + Currently, the following kinds of data can be dumped: + + 1. the program counter (virtual address) + 2. the physical address representation of the program counter + 3. the internal dyntrans instruction call pointer, useful when + developing/optimizing the emulator + + This data can then be analyzed by external tools. + + (There was a -s command line option in previous releases of + the emulator, but it did not work as intended, and was not + usable from dyntrans emulation modes.) + +Please read the HISTORY files for more details. - x) Many minor updates and bugfixes. 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. + demos Tutorial-like demos of testmachine functionality. doc Documentation. experiments Experimental code. (Usually not needed.) src Source code. - tests Regression tests. -To build the emulator, run the ./configure script, and then run make. +To build the emulator, run the configure script, and then run make. This +should work on most Unix-like systems. -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 @@ -133,10 +136,39 @@ 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. + + This product includes software developed by the Alice Group. + + This product includes software developed by Ichiro FUKUHARA. + +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 everyone who has provided me with feedback. + +Thanks to (in no specific order) Joachim Buss, Olivier Houchard, Juli Mallett, +Juan Romero Pardines, Alec Voropay, Göran 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.