1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
|
Release notes for Gavare's eXperimental Emulator (GXemul), 0.4.3
================================================================
Copyright (C) 2003-2006 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.
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.2 and 0.4.3 include, among other things:
o) SuperH (SH4) emulation is now stable enough to let a NetBSD/dreamcast
GENERIC_MD (ramdisk) kernel reach userland.
o) There is now a simple framework for letting emulated clocks, as seen
by guest operating systems, run at the same speed as the host clock.
So far, the DECstation, MobilePro (hpcmips), NetWinder, CATS, Malta
(evbmips), Cobalt, Algor, Dreamcast, and testmips machine modes
use the new clock/timer framework.
o) Some changes to the way expressions are evaluated in the built-in
debugger, and some changes in command behaviour:
x) Expressions (including assignments) can now be arbitrarily
complex, using parentheses, and the following operators:
+ - * / % (modulo) ^ (xor) & (and) | (or)
x) Some internal emulator variables can now be read/written using
normal expressions. Examples of commands that did not work
earlier, but should work now:
print verbose
r5 = sp - arch_pagesize * 4
machine[0].statistics_enabled = 1
x) To force a name to be interpreted as a setting/register name,
a hash sign (#) is now used instead of the percentage sign (%).
(In the new expression evaluator, % means arithmetic modulo.)
x) The 'focus' command now also selects a cpu, in addition to
selecting machine and emul.
x) The 'reg' command only prints registers for one cpu now, not
all cpus in the currently focused machine.
o) The wdc (standard IDE controller) had a bug which prevented disk
images larger than 2 GB to work correctly. This has been fixed.
o) For MIPS emulation, some combinations of emulated processor + guest
operating system should now work better when idling (i.e. the host
should not run at 100% CPU):
x) For MIPS32/MIPS64 and RM5200, the 'wait' instruction should
now work more or less as expected.
x) For VR41xx (e.g. MobilePro) emulation, the standby instruction
should work like the 'wait' instruction.
x) For R3000 emulation, where there is no hardware wait instruction,
I've implemented "instruction combination" hacks for both
NetBSD/pmax and Debian/pmax, so that their cpu idle loops are
detected and treated almost as a wait instruction.
o) MIPS 64-bit address translation (X=1) was not fully working before;
TLB exception handling for xkseg and larger-than-2GB-userland should
now actually work. (Thanks to Juli Mallett and Carl van Schaik for
noticing these problems.)
o) The mouse cursor update routines in DECstation (LK201) emulation
previously used the fact that guest OSes set the _hardware_
cursor position. In order to support X Windows when emulating
modern versions of NetBSD/pmax, which don't set the hardware
position anymore, a workaround has been implemented which only
sends relative coordinates to the guest OS. This has two drawbacks:
1. Ultrix emulation with dual- and tripple-head emulation will
most likely feel very strange. It will still work, though.
2. Cursor movement feels "accelerated", because the emulator
sends unaccelerated movements to the guest OS, which then
accelerates them. This can however be compensated to some
degree by running 'xset m 1 0' in the guest OS.
Having weird accelerated mouse movement is better than having no
mouse support at all, so this change was necessary.
Please read the HISTORY files for more details.
Files included in this release are:
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.
To build the emulator, run the configure script, and then run make. This
should work on most Unix-like systems.
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.
This product includes software developed by the Alice Group.
This product includes software developed by Ichiro FUKUHARA.
This product includes software developed by Marcus Comstedt.
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.
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.
|