1 |
$Id: HISTORY,v 1.777 2005/06/12 12:31:52 debug Exp $ |
2 |
|
3 |
Changelog for GXemul: |
4 |
--------------------- |
5 |
|
6 |
20030829 Skeleton. ELF stuff. Some instructions. |
7 |
20030830 Simple test programs using +-*/^|&%, function calls, |
8 |
loops, and stuff like that work. |
9 |
20030903 Adding more instructions, fixing some bugs. |
10 |
20030907 Making adding of memory mapped devices easier, although |
11 |
the framework isn't built for speed. |
12 |
Adding a -q switch to turn of debug output. |
13 |
20030911 Trying to fix some bugs. Minor changes. Some COP0 |
14 |
registers are now meaningful. |
15 |
20030919 Making APs (non-bootstrap cpus) available via a simple |
16 |
'mp' device. Implementing ll/lld and sc/scd (for atomic |
17 |
memory updates, needed by MP operating systems). |
18 |
20030923 Minor updates: more instructions (divu, mulu, lwu, |
19 |
perhaps some more), and opcode usage statistics. |
20 |
20030924 If the next instruction is nullified (for 'branch |
21 |
likely' type of instructions), counters for delays etc |
22 |
are now decreased as they should. |
23 |
Adding some comments. |
24 |
Adding instructions: movz, movn. |
25 |
Adding a simple mandelbrot test to mipstest.c. |
26 |
20030925 Adding instructions: bltzl, bgezl, lh, lhu, sh, mfc*, |
27 |
mtc*. |
28 |
Adding a dummy instructions: sync, cache. |
29 |
Adding minimal DECstation PROM functionality: printf() |
30 |
and getsysid() callback functions. |
31 |
Beginning work on address translation. |
32 |
20030927 Adding some more cop0 functionality (tlb stuff). |
33 |
Adding mc146818 real-time clock. (Skeleton stuff.) |
34 |
20030928 Adding a dc7085 serial console device (dummy, but enough |
35 |
to output chars to the screen). NetBSD uses this for |
36 |
the MIPSMATE 5100. |
37 |
20030929 Working on the TLB stuff. |
38 |
Adding instructions: srlv, tlbwr, tlbr, tlbp, eret. |
39 |
20030930 Trying to find a bug which causes NetBSD to bug out, but |
40 |
it is really hard. |
41 |
Adding some a.out support (for loading an old |
42 |
OpenBSD 2.8/pmax kernel image). |
43 |
Adding instructions: lwc*, ldc*, swc1 and swc3. |
44 |
Beginning to add special code to handle the differences |
45 |
between R4000 (the default emulation) and R2000/R3000. |
46 |
20031001 Symbol listings produced by 'nm -S' can be used to |
47 |
show symbolic names for addresses. (-S) |
48 |
20031002 Fixing the i/d fake cache for R2000/R3000. It's still |
49 |
just an ugly hack, though. |
50 |
Fixing minor bugs to make the 3100 emulation use the |
51 |
dc device (serial console) correctly. So far, 5100 and |
52 |
3100 are the only ones that get far enough to print |
53 |
stuff, when booting NetBSD. |
54 |
20031004 Adding skeleton Cobalt machine emulation (-E). |
55 |
Adding a dummy ns16550 serial controller, used by the |
56 |
Cobalt machine emulation. |
57 |
20031006 Adding unaligned load/store instructions (lwl, lwr, |
58 |
ldl, ldr, swl, swr, sdl, sdr), although they are not |
59 |
tested yet. |
60 |
Fixed a "data modified on freelist" bug when running |
61 |
NetBSD/cobalt: setting the top bit of the index register |
62 |
when a tlbp fails (as the R4000 manual says) isn't |
63 |
sufficient, I had to clear the low bits as well. |
64 |
Adding break and syscall instructions, but they are not |
65 |
tested yet. |
66 |
Adding a 'gt' device, faking a PCI bus, for the Cobalt |
67 |
emulation. |
68 |
20031008 Adding initial support for HPCmips (-F), a framebuffer |
69 |
device using X11. NetBSD/hpcmips can output pixels to |
70 |
the framebuffer, but that's about it. |
71 |
20031009 Fixing the NetBSD/pmax bug: the "0/tftp/netbsd" style |
72 |
bootstring was only passed correctly in the bootinfo |
73 |
block, it needs to be passed as argv[0] as well. |
74 |
Adding instructions: mtlo, mthi. |
75 |
Rearrangning the source tree layout. |
76 |
Adding console input functionality. The NetBSD/cobalt |
77 |
kernel's ddb can now be interacted with. |
78 |
20031010 Adding experimental (semi-useless) -t option, to show |
79 |
a function call tree while a program runs. |
80 |
Linux/cobalt now prints a few messages, but then hangs |
81 |
at "Calibrating delay loop..." unless an ugly hack is |
82 |
used (setting a word of memory at 0x801e472c to non-zero). |
83 |
20031013 Adding a framebuffer device used in DECstation 3100; |
84 |
VFB01 for mono is implemented so far, not yet the |
85 |
VFB02 (color) variant. Rewriting the framebuffer |
86 |
device so that it is usable by both HPCmips and DECstation |
87 |
emulation. |
88 |
20031014 Minor fixes. Everything should compile and run ok |
89 |
both with and without X11. |
90 |
20031015 Adding support for ECOFF binary images; text, data, |
91 |
and symbols are loaded. (Playing around with ultrixboot |
92 |
and ultrix kernels.) |
93 |
20031016 The DECstation argv,argc stuff must be at 0xa0000000, |
94 |
not 0x80000000, or Ultrix kernels complain. |
95 |
Adding R2000/R3000 'rfe' instruction. |
96 |
Implementing more R2K/R3K tlb specific stuff, so that |
97 |
NetBSD boots and uses the tlb correctly, but much of |
98 |
it is ugly. (Needs to be separated in a cleaner way.) |
99 |
ECOFF symbols sizes are now calculated, so that offsets |
100 |
within symbols are usable. |
101 |
20031017 DECstation bootstrings now automatically include the |
102 |
correct name of the kernel that is booting. |
103 |
Ultrix boots a bit. |
104 |
20031018 ELF symbols are now read automatically from the binary. |
105 |
-t trace looks a bit better (string arguments are shown). |
106 |
Trying to get initial R5900 stuff working (the 128-bit |
107 |
CPU used in Playstation 2). |
108 |
Fixing a minor bug to make the VFB02 (color framebuffer) |
109 |
device work better, but it is still just 256 grayscales, |
110 |
not real color. Ultrix can now use the framebuffer (it |
111 |
calls it PMAX-CFB). |
112 |
A machine can now consist of CPUs of different types. |
113 |
Adding instructions: daddi, mov_xxx, mult_xx. The xxx |
114 |
instructions are not documented MIPS64 instructions, |
115 |
but NetBSD/playstation2 uses them. Perhaps VR5432 |
116 |
instructions? |
117 |
Adding sign-extension to 32-bit mult. |
118 |
Adding Playstation 2 devices: dmac (DMA controller), |
119 |
gs (Graphic something?), and gif (graphics something |
120 |
else, which has access to the PS2's framebuffer). |
121 |
NetBSD/playstation2 works a bit, and prints a few |
122 |
bootup messages. |
123 |
20031020 The cpu_type field of the cpu struct now contains |
124 |
usable values in a much better form than before. This |
125 |
simplifies adding of new CPU types. |
126 |
20031021 Fixing an interrupt related bug: pc_last was used, but |
127 |
for interrupts this was incorrect. Fixed now. |
128 |
Fixing a load/store related bug: if a load into a |
129 |
register was aborted due to an exception, the register |
130 |
was still modified. |
131 |
The mc146818 rtc now reads its time from the system's |
132 |
time() function. |
133 |
Fixing another exception bug: if loading an instruction |
134 |
caused an exception, something bogus happened as the |
135 |
emulator tried to execute the instruction anyway. This |
136 |
has been fixed now. |
137 |
20031023 Adding a quick hack which skips "while (reg --) ;" |
138 |
kind of loops. |
139 |
NetBSD/pmax suddenly reached userland (!), but only |
140 |
once and attempts to repeat it have failed. I believe |
141 |
it is problems with my interrupt handling system. |
142 |
20031024 Adding 8-bit color palette support to the framebuffer. |
143 |
Connecting the pmax vdac device to the framebuffer's |
144 |
rgb palette. |
145 |
Fixing a bug in the dc device, so that console input |
146 |
is possible; interaction with NetBSD/pmax's built-in |
147 |
kernel debugger works now. |
148 |
Symbol sizes for file formats where symbol size isn't |
149 |
included are now calculated regardless of file format. |
150 |
Physical memory space can now be smaller than 64 bits, |
151 |
improving emulation speed a bit. |
152 |
Doing other minor performance enhancements by moving |
153 |
around some statements in critical parts of the code. |
154 |
20031025 Minor changes to the dc device. |
155 |
20031026 Adding support for reading symbols directly from |
156 |
a.out files. (Works with OpenBSD/pmax binaries.) |
157 |
Hardware devices may now register "tick functions" at |
158 |
specific cycle intervals in a generic fashion. |
159 |
All four channels of the dc serial controller device |
160 |
should now work; playing around with keyboard scan |
161 |
code generation when using the DECstation framebuffer. |
162 |
Making various (speed) improvements to the framebuffer |
163 |
device. |
164 |
20031027 Playing around with the sii SCSI controller. |
165 |
20031028 Minor fixes. |
166 |
Adding an SGI emulation mode (-G), and some ARCBIOS |
167 |
stuff, which SGIs seem to use. |
168 |
Adding getbitmap() to the DEC prom emulation layer, |
169 |
so some more -D x models become more usable. |
170 |
Adding a dummy 'ssc' serial console device for |
171 |
DECsystem 5400 emulation. |
172 |
Playing around with TURBOchannel stuff. |
173 |
20031030 Minor fixes. |
174 |
Adding the sub instruction. (Not tested yet?) |
175 |
Sign-extending the results of multu, addi,addiu, |
176 |
add,addu,sub,subu,mfcZ. |
177 |
Adding a colorplanemask device for DECstation 3100. |
178 |
Fixed the NetBSD/pmax bug: I had forgotten to reset |
179 |
asid_match to 0 between tlb entry checks. :-) Now |
180 |
userland runs nicely... |
181 |
20031031 Fixing more bugs: unaligned load/store could fail |
182 |
because of an exception, but registers could be "half |
183 |
updated". This has been fixed now. (As a result, |
184 |
NetBSD/pmax can now run with any of r2000,r3000,r4000, |
185 |
r4400, or r5000.) |
186 |
Adding some R5K and R10000 stuff. (Note: R5K is NOT |
187 |
R5000. Weird.) |
188 |
Adding dummy serial console (scc) for MAXINE. |
189 |
MAXINE also works with framebuffer, but there is no |
190 |
color palette yet (only black and white output). |
191 |
20031101 Moving code chunks around to increase performance by |
192 |
a few percent. |
193 |
The opcode statistics option (-s) now shows opcode |
194 |
names, and not just numbers. :-) |
195 |
Fixing the bug which caused NetBSD/pmax to refuse |
196 |
input in serial console mode, but not in keyboard/ |
197 |
framebuffer mode: the osconsole environment variable |
198 |
wasn't set correctly. |
199 |
Adding DEC PROM getchar() call. |
200 |
The transmitter scanner of the dc device now scans |
201 |
all four channels at once, for each tick, so serial |
202 |
output is (approximately) 4 times faster. |
203 |
20031103 Adding a dummy BT459 vdac device, which does nothing |
204 |
but allows a PMAG-BA turbochannel graphics card to be |
205 |
used as framebuffer. |
206 |
Several DECstation machines (-D 2, 3, and 4) can now |
207 |
use TURBOchannel option card framebuffers as console, |
208 |
for output. (Keyboard input is still not implemented |
209 |
for those models.) Only PMAG-AA (1280x1024x8) and |
210 |
PMAG-BA (1024x864x8), both using BT459 vdac, have |
211 |
been tested so far. |
212 |
Modifying the X11 routines so that several framebuffer |
213 |
windows now can be used simultaneously (if several |
214 |
graphics option cards are to be emulated concurrently). |
215 |
20031104 DEC MIPSMATE 5100 (KN230) interrupts are shared |
216 |
between devices. I've added an ugly hack to allow |
217 |
that to work, which makes it possible to boot NetBSD |
218 |
into userland with serial console. |
219 |
20031106 Removing the -S (symbol) option, as symbol files can |
220 |
now be given in any order together with other file |
221 |
names to be loaded. |
222 |
cookin tipped me about using (int64_t) (int32_t) |
223 |
casts instead of manually sign-extending values. |
224 |
Casting sometimes increases performance, sometimes |
225 |
decreases. It's tricky. |
226 |
Importing mips64emul into CVS. |
227 |
20031107 Adding a generic ARC emulation mode. |
228 |
Increasing performance of the framebuffer by not |
229 |
updating it (or the XImage) if a write to the |
230 |
framebuffer contains exactly what is already in it. |
231 |
(This improves scrolling speed and initialization.) |
232 |
Adding initial MIPS16 support. |
233 |
Adding initial disk image support (-d command line |
234 |
option), but this will not be used until I get some |
235 |
kind of SCSI-controller emulation working. |
236 |
20031108 Adding the first MIPS16 instructions: "move y,X", |
237 |
"ld y,D(x)", and "daddiu S,K" (but the last one |
238 |
doesn't work yet). |
239 |
Fixing the console environment variable for |
240 |
Enough of the 'asc' controller is now implemented |
241 |
to let NetBSD get past scsi disk detection when |
242 |
no disk images are used. |
243 |
DECstation machine type 2; both serial console and |
244 |
graphical console work now. |
245 |
Other X-windows bit-depths than 24 bits work now, |
246 |
but colors are still not correct in non-24 bit modes. |
247 |
Keypresses in X framebuffer windows are now |
248 |
translated into console keypresses. (Normal keys, but |
249 |
not cursor keys or other special keys.) |
250 |
20031111 Adding support for X11 using non-24-bit output. |
251 |
20031120 Adding X11 mouse event to emulated mouse event |
252 |
translation, but it's not tested yet. |
253 |
Trying to get more of the SCSI controller emulation |
254 |
to work. |
255 |
20031124 Raw binaries can now be loaded into memory. |
256 |
20031204 Adding srec binary support. |
257 |
20031220 Adding some super-ugly arcbios emulation code. |
258 |
Making some progress on the SGI and ARC machine |
259 |
emulations. |
260 |
20031222 SGI and ARC progress. Multiple CPUs are now added to |
261 |
the arcbios component tree (although NetBSD cannot |
262 |
actually use more than one). |
263 |
20031228 Adding 'crime' and 'macepci' fake devices for SGI |
264 |
emulation. |
265 |
Finally implementing the cop0 'compare' register. |
266 |
Improvements to the ns16550 device, but it is still |
267 |
incomplete. |
268 |
SGI userland is now reached, but interaction is broken |
269 |
(due to the buggy ns16550). |
270 |
20031229 Adding some more instructions: teq, dsllv |
271 |
Adding a Nintendo 64 emulation mode (skeleton). |
272 |
Adding R4300 and R12000 to the cpu list. |
273 |
20031230 Adding bltzal, bltzall, bgezal, bgezall (not really |
274 |
tested yet). |
275 |
Fixing the 16550 serial controller device (by not |
276 |
supporting fifo, so in fact it emulates a 16450 |
277 |
instead). This causes NetBSD/sgimips to run nicely |
278 |
into userland, sysinst, and so on. |
279 |
Some ARC/RD94 interrupts seem to work ok now, but |
280 |
i/o interrupts are still not correctly implemented. |
281 |
NetBSD/arc userland is reached and can be interacted |
282 |
with, but there's no sysinst (?). |
283 |
20040103 Trying to get some Irix stuff to work, but it's hard. |
284 |
Fixing some Cobalt/linux problems. |
285 |
20040104 Adding a dummy 8250 device, so that Linux/sgimips can output |
286 |
console messages. |
287 |
Adding dmultu. (The same as dmult, so I'm not sure it's correct. |
288 |
Perhaps dmultu is correct and dmult is wrong...) |
289 |
Fixing a bug in unaligned load/stores of 64-bit values (a cast |
290 |
was needed). |
291 |
Linux/sgimips in 64-bit works a bit more than before. |
292 |
Adding simple (polled) input functionality to dev_zs. |
293 |
Making some progress on SGI-IP22 (IP32 still works best, |
294 |
though). |
295 |
Fixing the mc146818 clock device in ARC/NEC and SGI emulation |
296 |
modes, the year field was not correct. |
297 |
Adding a fake 'pref' instruction (lwc3). |
298 |
20040106 Separating out memory.h from misc.h. |
299 |
Refactoring of a lot of small code fragments. |
300 |
The PCI bus device is now shared between Cobalt, SGI, and ARC. |
301 |
Support for RAM mirroring (dev_ram.c, not really tested yet). |
302 |
Ugly hack to select the largest of ELF string symbol tables, |
303 |
if there are more than one. |
304 |
Memory hole fix for ARCBIOS, and a fix for very large (>= 4GB) |
305 |
amounts of emulated RAM. |
306 |
TGA (DEC 21030) PCI graphics device. NetBSD/arc can boot with |
307 |
this card and use it as a framebuffer console. |
308 |
20040107 Adding a fix (partly incorrect) to daddi, to allow Linux/sgimips |
309 |
to boot in 64-bit mode. |
310 |
20040108 Fixing a sll/nop bug (rd==0 for nop, not sa==0 as before). |
311 |
20040109 Trying to get an SGI-IP32 PROM image to boot. |
312 |
20040110 Faking R10000 cache things. |
313 |
The PROM image boots, although it takes almost forever for it |
314 |
to realize that there is no keyboard. |
315 |
The 'gbe' SGI-IP32 graphics device works enough to display the |
316 |
Linux framebuffer penguin in the upper left corner :-) |
317 |
20040111 -p and -P addresses can now be given as symbol names, not just |
318 |
numeric values. |
319 |
Experimenting with adding a PCIIDE (dev_wdc) controller to the |
320 |
Cobalt emulation. |
321 |
20040120 Adding src/bintrans.c. No code yet, but this is a place for |
322 |
ideas to be written down. |
323 |
Increasing performance a little bit by inlining the check for |
324 |
interrupts (which occurs for every instruction). |
325 |
20040124 Experimenting with pure userland (syscall) emulation. |
326 |
20040127 Fixes for compiling under Solaris. |
327 |
20040206 Some bintrans experiments. |
328 |
20040209 Adding some simple Ultrix userland emulation syscalls. |
329 |
20040211 Adding decprom_dump_txt_to_bin.c to the experiments/ dir. |
330 |
Adding a section to doc/ on how to use DECstation PROM dumps. |
331 |
Adding a hello world example to doc/ as well. |
332 |
20040218 TURBOchannel slots that are empty now return a DBE exception, |
333 |
so that Ultrix and DECstation PROMs don't complain about |
334 |
broken TURBOchannel ROMs. |
335 |
Working some more on the machine-dependant interrupt stuff. |
336 |
20040219 Trying out some Linux/DECstation kernels (semi-successfully). |
337 |
20040222 YES! I finally found the bug that caused Linux/SGI-IP32 to only |
338 |
work on Alpha, not on 32-bit machines. It was a shift left, |
339 |
probably done using 6 bits on alpha, 5 bits on 32-bit machines. |
340 |
20040223 Some minimal DEC KN5800 progress; Ultrix prints some boot |
341 |
messages, detects 16 XMI R3000 cpus, and get a NULL panic. |
342 |
It's all fake, though, the CPUs don't actually work. |
343 |
Still, better than nothing :-) |
344 |
20040225 An Ultrix OSF1 kernel with a ramdisk now boots :-) (It was |
345 |
a problem with ultrixboot not giving the same arguments as |
346 |
NetBSD's boot program.) |
347 |
20040225(later) Fixing a bug in the DECstation dc serial device; digits 0-9 |
348 |
were translated to numeric keypad 0-9, not the normal 0-9. |
349 |
(This caused Ultrix to print escape sequences instead of |
350 |
digits.) |
351 |
20040226 Some progress on machine-dependant interrupt delivery |
352 |
for -D7 (Maxine) and -D4, and some more 'scc' serial |
353 |
controller featuers are implemented (but no interrupts/ |
354 |
dma/keyboard/mouse stuff yet). |
355 |
20040228 Progress on the scc controller; -D4 works in both serial |
356 |
console mode and with keyboard (graphical console), but no |
357 |
mouse yet. |
358 |
20040301 SGI mace interrupts are now done using the new machine- |
359 |
independant interrupt system. |
360 |
20040303 Fixing an R5900 bug; the lowest 6 bits have special meaning |
361 |
for coprocessor functions, not just 5 bits as on non-R5900 |
362 |
CPUs. (This fixes a bug which caused NetBSD to crash.) |
363 |
20040304 Adding enough (fake) DMA capabilities to the ioasic device |
364 |
to allow Ultrix to print boot messages in the -D3, -D4, |
365 |
and -D7 modes, and also print graphical console messages |
366 |
in -D4 and -D7 modes. |
367 |
-D11 (DEC5500) polled getchar added (to the 'ssc' device). |
368 |
Adding the 'madd' instruction (including R5900 weird stuff). |
369 |
20040304(later) Playstation 2's GIF can now copy 640x16 pixel chunks, allowing |
370 |
NetBSD to scroll up the framebuffer. The cursor also works |
371 |
better now. |
372 |
Playstation 2 bootinfo RTC data should now be passed correctly |
373 |
to the running kernel. |
374 |
DECstation rtc year should be either 72 or 73, anything else |
375 |
will cause Ultrix to give a warning about invalid year. |
376 |
20040306 Combining playstation2's dmac, interrupt, and timer devices |
377 |
into one (ps2_stuff). |
378 |
Adding some R5900 instructions: mfsa, mtsa, pmfhi, pmflo, por, |
379 |
lq, and sq. (Most of them are just guesses, though.) |
380 |
Implementing my own XImage putpixel routine, which can be |
381 |
inlined... significantly faster than normal XPutPixel. :-) |
382 |
20040307 Implementing the basic functionality of a "PMAG-CA" pixelstamp |
383 |
accellerated framebuffer device. Works with NetBSD and |
384 |
Ultrix, but no cursor or color support. |
385 |
20040308 PMAG-CA, -DA, and -FA pixelstamps seem to work now. |
386 |
Adding a hack to allow a pmax/mach kernel to be loaded (it's |
387 |
a COFF file with 0 (!) sections). |
388 |
Initial test of bt459 + framebuffer cursor support. |
389 |
20040309 Fixes/updates of dev_dec5800 and dev_ssc (and dev_decxmi) allow |
390 |
a KN5800 Ultrix-OSF1-ramdisk kernel to boot all the way into |
391 |
userland and be interacted with. |
392 |
The bt459 cursor should now look semi-nice, but it is still |
393 |
a bit fake. |
394 |
20040310 Moving the DEC CCA stuff from src/machine.c into a separate |
395 |
device file (devices/dev_deccca.c). |
396 |
An ugly hack added to allow some more OSF/1 kernels (almost |
397 |
a.out, but without many of the header fields) to load. |
398 |
20040314 Adding PMAG-JA and PMAG-RO (1280x1024 x 8-bit) TURBOchannel |
399 |
graphics devices. They work in Ultrix, but only monochrome |
400 |
and no cursor, because there are no ramdacs or such yet. |
401 |
20040315 Pixelstamp solid fill now supports colors other than just |
402 |
zero-fill. |
403 |
Adding a (new) regression test skeleton. |
404 |
20040321 Some really minor updates. |
405 |
20040323 Fixes to allow SGI-IP20 and IP22 to work a bit better |
406 |
(aliased memory), and adding "private" firmware-like vectors |
407 |
to arcbios emul. An IP22 Irix kernel gets far enough to |
408 |
print an assertion warning (and then double panics). :-) |
409 |
20040324 Adding a generalization hack to the SCC serial controller |
410 |
to work with SGI-IP19 (in addition to DECstations). |
411 |
Adding the 'sdc1' instruction. |
412 |
Some progress on various SGI emulation modes. |
413 |
20040325 Minor updates. |
414 |
20040326 Fixed a 'madd' bug (r5900). NetBSD/playstation2 now reaches |
415 |
userland correctly. And a simple fix which allows NetBSD |
416 |
timer interrupts to be triggered; NetBSD uses T_MODE_CMPE |
417 |
(compare), while Linux uses _OVFE (overflow). |
418 |
20040328 Linux on Playstation 2 boots a bit. The Playstation 2 |
419 |
graphics controller has been extended to work better with |
420 |
NetBSD, and to include some Linux support as well. |
421 |
Some interrupt handling enhancements on Playstation 2, |
422 |
needed for Linux' dma. |
423 |
128-bit loads and stores (lq and sq) are allowed, although |
424 |
the top half of quadwords are not modified by other |
425 |
instructions. (Linux uses lq and sq.) |
426 |
Big-endian X Windows servers now display correct rgb color, |
427 |
not bgr as before. |
428 |
20040330 Some minor updates to the documentation. |
429 |
20040401 Adding a dummy ps2 OHCI device. |
430 |
20040402 Progress on the asc SCSI controller. |
431 |
20040406 Hack to allow ./configure, make to work on HP-UX B.11.00 |
432 |
on HPPA-RISC, gcc 3.3.2. (Does not work with HP's cc.) |
433 |
More progress on the asc SCSI controller. Fixing INQUIRY, |
434 |
adding READ_CAPACITY, adding READ. Works a bit with NetBSD |
435 |
and some (but not all) Ultrix kernels, on DECstation type 2. |
436 |
Adding WRITE, SYNCRONIZE_CACHE. |
437 |
Mounting disks works in NetBSD :-) It is a bit buggy, |
438 |
though. Or something else is buggy. |
439 |
20040407 The bug is triggered by gunzip during NetBSD/pmax install. |
440 |
20040408 Fixing a bug (non-nul-terminated string) which caused X11 |
441 |
cursors to not display on Solaris. |
442 |
Unnecessary X11 redraws are skipped (removes some weird |
443 |
delays that existed before), and cursors are redrawn on |
444 |
window exposure. (The cursor functionality has been moved |
445 |
from dev_fb.c to x11.c.) |
446 |
20040411 Fixing the DC7085 device so that Ultrix doesn't behave weird |
447 |
if both tx and rx interrupts occur at the same time. |
448 |
More advancements on the asc SCSI controller. |
449 |
More disk image filename prefixes are now recognized; c (for |
450 |
CD-ROM, as before), d for disk, b for boot device, r for |
451 |
read-only, and 0-7 for scsi id. |
452 |
Mounting disks works in Ultrix. Installing to disk usually |
453 |
crashes for various reasons, but an OSF/1 install gets |
454 |
relatively far (similar to the NetBSD/pmax install). |
455 |
20040412 Trying to find the bug. |
456 |
20040415 Finally found and fixed the bug; SCSI reads and writes |
457 |
(actually, any data in or data out) can be split up into |
458 |
multiple DMA transfers. That stuff was only partially |
459 |
implemented, and the part that was implemented was buggy. |
460 |
It works now. NetBSD/pmax and Ultrix 4.3 seems to like |
461 |
the SCSI stuff enough to install almost all the way. |
462 |
20040415 (more) Adding a hack which allows a host's cdrom device to be used as |
463 |
a cdrom device inside the emulator, eg /dev/cd0c. |
464 |
Making the cycle counter int64_t instead of long, as a 'long' |
465 |
overflows too easily on 32-bit machines. (The bug is still |
466 |
there, though.) |
467 |
I've now verified that a full NetBSD/pmax install can be done. |
468 |
If using a PMAG-AA graphics board, startx brings up X :-) |
469 |
mips64emul can be compiled inside NetBSD inside mips64emul, |
470 |
and it can run NetBSD in that environment. (I'm getting |
471 |
dizzy... :-) |
472 |
20040417 Moving some coprocessor stuff from cpu.c to coproc.c. |
473 |
20040424 Adding a BT455 vdac for PMAG-AA. Black and white are now |
474 |
rendered correctly in Xpmax. |
475 |
Adding colormap support to the BT459 device, for PMAG-BA. |
476 |
20040425 Fixing a buffer length bug, which caused an Ultrix 4.5 |
477 |
install to bug out on an i386 host. |
478 |
20040429 FPU experiments. |
479 |
20040502 More FPU experiments. |
480 |
Speedup for exception debug messages: in quiet mode, debug |
481 |
messages were still evaluated, which took a relatively |
482 |
large amount of time. |
483 |
20040503 Most FPU stuff fixed, but there is at least one known bug |
484 |
left; ps axu in NetBSD triggers it (ps loops forever). |
485 |
20040504 A default install of Ultrix 4.5 succeeded! It boots up with |
486 |
a graphical login. |
487 |
Fixing the keyboard repetition bug (a lk201 "up" (release) |
488 |
scancode is now sent after every key). |
489 |
20040505 Both CR and LF now produce the same lk201 scancode, so that |
490 |
pressing 'enter' works as expected in Ultrix. |
491 |
20040506 Adding a vaddr to paddr translation cache, causing a speedup |
492 |
of perhaps 50% or more. |
493 |
20040507 Fixing PMAG-BA color for Ultrix. (Ultrix relies on interrupts |
494 |
coming from the TURBOchannel slot to update the palette.) |
495 |
20040508 Fixing cursor positioning for PMAG-BA. |
496 |
20040511 Prints current nr of instructions per seconds, not only |
497 |
average, when using -N. |
498 |
20040515 Some more bintrans experiments. |
499 |
20040606 Adding ARCBIOS GetReadStatus() and Read(). |
500 |
Adding some instructions: tlt, tltu, tge, tgeu, tne. |
501 |
20040607 Adding the dsub instruction. |
502 |
Some minimal progress on SGI-IP30 emulation. |
503 |
Applying a patch from Juli Mallett to src/file.c (I'm not |
504 |
sure yet if it breaks or fixes anything). |
505 |
Some minor fixes for SGI-IP22 (such as faked board revision |
506 |
numbers). |
507 |
20040608 ll/sc should now fail if any unrelated load/store occurs. |
508 |
Minor changes to the configure script. |
509 |
Adding some ifdefs around code which is not often used |
510 |
(the mfhi/mflo delay, and the last_used TLB experimental |
511 |
code); this might cause a tiny speedup. |
512 |
20040609 Minor fixes. |
513 |
20040610 Various minor SGI fixes (64-bit ARCS stuff, progress on the |
514 |
CRIME/MACE interrupt system, and some other random things). |
515 |
20040611 More crime/mace progress, and some more work on pckbc. |
516 |
KN5800 progress: adding a XMI->BI adapter device; a disk |
517 |
controller is detected (but it is just a dummy so far). |
518 |
20040612 Adding "dev_unreadable", which simplifies making memory |
519 |
areas unreadable. (NetBSD on SGI-IP22 no longer detects |
520 |
non-existant hpc1 and hpc2 busses.) |
521 |
Implementing rudimentary support for IP22 "local0" and |
522 |
"local1" interrupts, and "mappable" local interrupts. |
523 |
Some progress on the WDSC SCSI controller on IP22, enough |
524 |
to let NetBSD get past the disk detection and enter |
525 |
userland! :-) |
526 |
The zs (zilog serial) device now works well enough to let |
527 |
NetBSD/sgimips be interacted with on IP22. :-) (Though |
528 |
it is very ugly and hardcoded.) |
529 |
20040613 IP32 didn't work last night, because there were too many |
530 |
tick functions registered. That has been increased now. |
531 |
Trying out NetBSD/sgimips 2.0 beta kernels. There are some |
532 |
differences compared to 1.6.2, which I'm trying to solve. |
533 |
Interrupt fixes for IP32: _serial and _misc are different. |
534 |
Separation of IP22 (Full-house) and IP24 (Guiness). |
535 |
20040614 Modifying the memory layout for IP20,22,24,26 (RAM is now |
536 |
offset by 128MB, leaving room for EISA registers and such), |
537 |
and moving around some code chunks. This is not well |
538 |
tested yet, but seems to work. |
539 |
Moving parts of the tiny translation cache, as suggested |
540 |
by Juli Mallett. It seems that the speedup isn't as |
541 |
apparent as it was a few weeks ago, though. :-( |
542 |
Speedups due to not translating addresses into symbol |
543 |
names unless the symbol name is actually printed. |
544 |
Added support for loading old big-endian (Irix) ECOFF |
545 |
kernels (0x60 0x01 as the first two bytes). |
546 |
20040615 (late) Adding enough SGI IP20 (Indigo) support to let NetBSD 2.0 |
547 |
enter userland :-) No interrupt specifics are implemented |
548 |
yet, so it hangs while doing terminal output. |
549 |
20040618 Experimenting with the WDSC SCSI controller for IP20,22,24. |
550 |
20040620 Adding a program which converts SGI prom dumps from text |
551 |
capture to binary, and some hacks to try to make such an |
552 |
IP22 PROM to work better in the emulator. |
553 |
20040621 Removing the Nintendo 64 emulation mode, as it is too |
554 |
uninteresting to support. |
555 |
Adding SCSI tape device support (read-only, so far). |
556 |
Fixing a bug which caused the cursor to be corrupted if new |
557 |
data was written to the framebuffer, but the cursor wasn't |
558 |
moved. |
559 |
20040622(early) Finally! Making progress on the SCSI tape stuff; when going |
560 |
past the end of a file, automagically switch to the beginning |
561 |
of the next. |
562 |
20040622(late) Trying to track down the last SCSI tape bugs. |
563 |
Removing _all_ dynamic binary translation code (bintrans), |
564 |
starting from scratch again. |
565 |
20040623(early) Performing a general code cleanup (comments, fixing stuff |
566 |
that led to compiler warnings, ...). |
567 |
Disabling MIPS16 support by default, and making it a |
568 |
configure time option to enable it (--mips16). This gives |
569 |
a few percent speed increase overall. |
570 |
Increasing performance by assuming that instruction loads |
571 |
(reading from memory) will be at the same page as the last |
572 |
load. (Several percent speedup.) |
573 |
Moving the list of kernels that can be found on the net from |
574 |
README to doc/. |
575 |
20040624 Finally! I found and fixed the bug which caused 'ps', 'top', |
576 |
'xclock', and other programs in NetBSD/pmax to behave weird. |
577 |
Increasing performance by a few percent by running as many |
578 |
instructions in a row as possible, before checking for |
579 |
hardware ticks. |
580 |
When booting from SCSI tapes on DECstation, the bootstring |
581 |
now contains 'tz' instead of 'rz'. |
582 |
Adding a second ARC machine mode, "Acer PICA-61", -A2. |
583 |
Disabling the support for "instruction delays" by default |
584 |
(it has to be enabled manually in misc.h now, but is never |
585 |
used anywhere anyway). |
586 |
Other minor optimizations (moving around stuff in the |
587 |
cpu struct in misc.h, and caching cpu->pc in cpu.c). |
588 |
Separating the tiny translation cache into two, one for |
589 |
code and one for data. This gives a few percent speed |
590 |
increase. |
591 |
20040625(early) I think now is a good time for a "feature freeze", |
592 |
to let the code stabilize and then make some kind of |
593 |
first release. |
594 |
20040625(later) Adding a -v (verbose) command line option. If -v is not |
595 |
specified, the emulator goes into -q (quiet) mode just before |
596 |
it starts to execute MIPS code. |
597 |
20040627 The configure script now adds -fomit-frame-pointer to the |
598 |
compile flags if the $CC seems to be able to handle that. |
599 |
Found and fixed a serious interrupt bug in BT459 (Ultrix' |
600 |
behaviour required a hack, which was incorrect), so |
601 |
performance for machines using the PMAG-BA framebuffer is |
602 |
now improved. |
603 |
For X11 bitdepths other than 8 or 24, a warning message |
604 |
is printed at startup. |
605 |
A number of other minor fixes, optimizations, updated |
606 |
comments and so on. |
607 |
Adding a BUGS file, a list of known bugs. |
608 |
Adding a minimal man page, doc/mips64emul.1. |
609 |
20040628 Hacks for faking the existance of a second level cache |
610 |
(ARCBIOS and other places). |
611 |
An important fix for dc7085: tx interrupts should happen |
612 |
before rx interrupts, not the other way around as it was |
613 |
before. (This speeds up NetBSD boot on DECstation, and |
614 |
fixes a bug which Ultrix triggered on heavy keyboard input.) |
615 |
A couple of other minor fixes. |
616 |
Framebuffer fix: there was a bug which caused the rightmost/ |
617 |
bottom pixel to sometimes not be updated, when running in |
618 |
scaledown mode. This is now fixed. |
619 |
Adding a small program which removes "zero holes" from |
620 |
harddisk image files. |
621 |
20040629 More minor fixes. |
622 |
20040629(later) Adding -A3 (NEC RISCstation 2200) (this is similar to |
623 |
the 2250 model that NetBSD/arc can already boot all the |
624 |
way into userland and be interacted with), and -A4 |
625 |
(Deskstation Tyne). |
626 |
Some more minor fixes. |
627 |
20040630 Adding support for 15 and 16 bits X11 framebuffers, |
628 |
and converting from XYPixmap to ZPixmap (this fixes the |
629 |
problem of updates appearing in "layers" on some X |
630 |
servers). |
631 |
The pixels in the mouse cursor (for BT459) are now colored |
632 |
as the emulated OS sets them, although no transparency |
633 |
masking is done on the edges of the cursor yet. (In plain |
634 |
English: the mouse cursor is no longer just a white solid |
635 |
square, you can actually see the mouse cursor image |
636 |
on the white square.) |
637 |
|
638 |
============== RELEASE 0.1 ============== |
639 |
|
640 |
20040701 The -j option now takes a name, the of the kernel as passed |
641 |
on to the bootloader. ("netbsd" is the default name.) |
642 |
Adding support to load bootstrap code directly from a disk |
643 |
image, for DECstation. Both NetBSD/pmax and Ultrix boot |
644 |
straight of a disk image now, with no need to supply a |
645 |
kernel filename on the command line. (Ultrix still needs |
646 |
-j vmunix, though, to boot from /vmunix instead of /netbsd.) |
647 |
20040702 Minor bugfix (some new untested code for X11 keypresses was |
648 |
incorrect). |
649 |
20040702(later) Adding an ugly hack for CDROMs in FreeBSD; if an fread() isn't |
650 |
done at a 2048-byte aligned offset, it will fail. The hack |
651 |
tries to read at 2048-byte aligned offsets and move around |
652 |
buffers to make it work. |
653 |
Adding video off (screen blanking) support to BT459. |
654 |
|
655 |
============== RELEASE 0.1.1 ============== |
656 |
|
657 |
20040702(later) Cleanup to remove compiler warnings (Compaq's cc, Solaris' cc, |
658 |
and gcc 3.3.3/3.3.4 in Linux), mostly by putting ULL on large |
659 |
numeric constants. |
660 |
Better support for scaledown of BT459 cursors, but still not |
661 |
color-averaging. |
662 |
Beginning the work on adding better memory latency support |
663 |
(instruction delays), enabled by the --delays configure option. |
664 |
20040703 Modifications to the configure script so that a config.h file |
665 |
is created, containing things that were passed along as |
666 |
-Dxxx on each cc command line before. |
667 |
More work on instruction latency support; trying to separate |
668 |
the concepts of nr of cycles and nr of instructions. |
669 |
20040704 Working on R2000/R3000 caches. |
670 |
Adding a '--caches' option to the configure script. |
671 |
Various small optimizations. |
672 |
R3000 caches finally work. (I know that there is at least one |
673 |
bug, regarding interrupt response.) |
674 |
20040705 Working on the 'le' device, and on a generic (device |
675 |
independant) networking framework. le can transmit and receive |
676 |
packets, and the network framework fakes ARP responses from a |
677 |
fake gateway machine (at a fixed ip address, 10.0.0.254). |
678 |
Adding a '-c' command line option, which makes emulated_hz |
679 |
automatically adjust itself to the current number of emulated |
680 |
cycles per host CPU second (measured at regular intervals). |
681 |
20040707 Removing the '-c' option again, and making it the default |
682 |
behaviour of the emulator to automatically adjust clock |
683 |
interrupts to runtime speed (as long as it is above 1 MHz). |
684 |
(This can be overridden by specifying a static clock rate with |
685 |
the -I option.) |
686 |
Updating the doc/ stuff a bit. |
687 |
Generalization of the DECstation bootblock loading, to work |
688 |
with Sprite/pmax. Lots of other minor modifications to make |
689 |
Sprite work, such as adding support for DECstation "jump table" |
690 |
PROM functions, in addition to the old callback functions. |
691 |
Sprite boots from a disk image, starting the kernel if the |
692 |
argument "-j vmsprite" is used, but it seems to not like the |
693 |
DBE exceptions caused by reading empty TURBOchannel slots. :-/ |
694 |
20040708 Minor changes and perhaps some tiny speed improvements. |
695 |
The Lance chip is (apparently) supposed to set the length of |
696 |
received packets to len+4. (I've not found this in any |
697 |
documentation, but this is what NetBSD expects.) So now, ICMP |
698 |
echo replies work :-) UDP works in the outgoing direction, |
699 |
in the incoming direction, tcpdump can see the packets but they |
700 |
seem to be ignored anyway. (Weird.) |
701 |
Adding a separate virtual-address-to-host-page translation |
702 |
cache, 1-entry for loads, 1-entry for stores. (For now, it |
703 |
only works on R4000 as there are conflicts with cache usage |
704 |
on R3000). |
705 |
Changing the lower clock speed bound from 1 MHz to 1.5 MHz. |
706 |
20040709 Incoming UDP checksums were wrong, but are now set to zero |
707 |
and NetBSD inside the emulator now accepts the packets (eg. |
708 |
nameserver responses). Host lookups and even tftp file |
709 |
transfers (using UDP) work now :-) |
710 |
Adding a section on Networking to the Technical documentation, |
711 |
and a preliminary NetBSD/pmax install instruction for network |
712 |
installs to the User documentation. |
713 |
Some updates to the man page. |
714 |
20040709(later) Fix to the TURBOchannel code to allow Sprite to get past the |
715 |
card detection. Seems to still work with Ultrix and NetBSD. |
716 |
This also makes Linux/DECstation properly recognize both the |
717 |
Lance controller and the SCSI controller. Linux 2.4.26 from |
718 |
Debian boots nicely in framebuffer mode :-) |
719 |
20040710 Some bits in the KN02 CSR that were supposed to be readonly |
720 |
weren't. That has been fixed, and this allows Linux/DECstation |
721 |
to get past SCSI detection. :-) |
722 |
Minor updates to the ASC controller, which makes Linux and |
723 |
OpenBSD/pmax like the controller enough to be able to access |
724 |
SCSI devices. OpenBSD/pmax boots from a disk image for the |
725 |
first time. :-) Linux detects SCSI disks, but I have no |
726 |
bootable Linux diskimage to test this with. |
727 |
Updating the doc/ to include instructions on how to install |
728 |
OpenBSD/pmax onto a disk image. |
729 |
Naively added a PMAGB-BA (1280x1024x8) in hopes that it would |
730 |
basically be a PMAG-BA (1024x864x8) in higher resolution, |
731 |
but it didn't work that way. I'll have to look into this later. |
732 |
Adding a -o option, useful for selecting '-s' (single user |
733 |
mode) during OpenBSD install and other things. |
734 |
After a lot of debugging, a serious bug related to the tiny |
735 |
cache was found; Linux just changes the ASID and returns when |
736 |
switching between processes in some occasions without actually |
737 |
_writing_ to the TLB, and I had forgotten to invalidate the |
738 |
tiny cache on such a change. |
739 |
20040711(early) I've been trying to repeat the OpenBSD install from yesterday, |
740 |
but appart from the first initial install (which was |
741 |
successful), I've only been able to do one more. Several |
742 |
attempts have failed with a filesystem panic in the middle |
743 |
of install. I'm not sure why. |
744 |
20040711 I found the "bug": wget downloaded the simpleroot28.fs.gz file |
745 |
as read-only, and gunzip preserved those flags. Thus, OpenBSD's |
746 |
installer crashed as it didn't get its writes through to the |
747 |
disk. |
748 |
Parts of the 1280x1024x8 PMAGB-BA graphics card has been |
749 |
implemented, it works (unaccelerated) in NetBSD and OpenBSD, |
750 |
but Ultrix does not seem to like it. |
751 |
Cleaned up the BT459 cursor offset stuff a bit. |
752 |
Trying to make the emulated mouse coordinates follow the host's |
753 |
mouse' coordinates (for lk201, DECstation), by |
754 |
"de-accelerating" the data sent to the emulated OS. |
755 |
20040711(later) Fix so that Sprite detects the PMAG-BA correctly. |
756 |
Adding some stuff about NFS via UDP to the documentation. |
757 |
Fixed the 'update flag' for seconds, so now Sprite doesn't |
758 |
crash because of timer-related issues anymore. |
759 |
Fixing KN02 interrupt masks a bit more, to make Sprite not |
760 |
crash. Sprite now runs quite well. |
761 |
20040712 Working on IP/UDP fragementation issues. Incoming UDP packets |
762 |
from the outside world can now be broken up into fragments |
763 |
for the guest OS. (This allows, for example, OpenBSD/pmax to |
764 |
be installed via nfs.) Outgoing fragmented packets are NOT |
765 |
yet handled. |
766 |
Linux doesn't use 64-bit file offsets by default, which is |
767 |
needed when using large disk images (more than 2GB), so the |
768 |
configure script has now been modified to add necessary |
769 |
compiler flags for Linux. |
770 |
20040713 Trying out some minor optimizations. |
771 |
Refreshing the UDP implementation in src/net.c a little. |
772 |
20040714 Updating the documentation a little on how to experiment |
773 |
with a Debian Linux install kernel for DECstations. |
774 |
A 'mini.iso' Linux image for DECstation has different fields |
775 |
at offsets 0x10 and 0x14, so I'm guessing that the first is |
776 |
the load address and the second is the initial PC value. |
777 |
Hopefully this doesn't break anything. |
778 |
Some initial TCP hacks, but not much is working yet. |
779 |
Some updates for IP30: The load/store 1-entry cache didn't |
780 |
work too well with IP30 memory, so it's only turned on for |
781 |
"MMU4K" now. (This needs to be fixed some better way.) |
782 |
Adding a hack which allows Linux/Octane to use ARC write() |
783 |
and getchild() on IP30. Linux uses ARCBIOS_SPB_SIGNATURE as a |
784 |
64-bit field, it was 32-bit before. |
785 |
Making ugly hacks to the arcbios emulation to semi-support |
786 |
64-bit equivalents of 32-bit structures. |
787 |
20040716 Minor fixes to the configure script (and a few other places) |
788 |
to make the sources compile out-of-the-box on HP-UX (ia64 |
789 |
and HPPA), old OpenBSD/pmax (inside the emulator itself), and |
790 |
Tru64 (OSF/1) on Alpha. |
791 |
A couple of other minor fixes. |
792 |
20040717 A little TCP progress; OpenBSD/pmax likes my SYN+ACK replies, |
793 |
and tries to send out data, but NetBSD/pmax just drops the |
794 |
SYN+ACK packets. |
795 |
Trial-and-error led me to change the 64-bit ARCS component |
796 |
struct again (Linux/IP30 likes it now). I'm not sure about all |
797 |
of the offsets yet, but some things seem to work. |
798 |
More 64-bit ARCS updates (memory descriptors etc). |
799 |
Better memory offset fix for IP30, similar to how I did it for |
800 |
IP22 etc. (Hopefully this doesn't break anything else.) |
801 |
Adding a MardiGras graphics controller skeleton for SGI-IP30 |
802 |
(dev_sgi_mardigras.c). |
803 |
Thanks to Stanislaw Skowronek for dual-licensing mgras.h. |
804 |
Finally rewrote get_symbol_name() to O(log n) instead of O(n) |
805 |
(Stanislaw's Linux kernel had so many symbols that tracing |
806 |
with the old get_symbol_name() was unbareably slow). |
807 |
Removing all of the experimental tlbmod tag optimization code |
808 |
(the 1-entry load/store cache), as it causes more trouble than |
809 |
the performance gain was worth. |
810 |
20040718 The MardiGras device works well enough to let Linux draw the |
811 |
SGI logo and output text. |
812 |
A bunch of other minor changes. |
813 |
20040719 Trying to move out all of the instruction_trace stuff from the |
814 |
main cpu loop (for two reasons: a little performance gain, |
815 |
and to make it easier to add a GUI later on). |
816 |
20040720 Finally found and fixed the ethernet/tcp bug. The hardware |
817 |
address is comprised of 6 bytes, where the _first_ byte should |
818 |
have a zero as the lowest bit, not the last byte. (This causes |
819 |
NetBSD and Linux running in the emulator to accept my SYN+ACK |
820 |
packets.) |
821 |
Getting the first nameserver address from /etc/resolv.conf. |
822 |
(This is not used yet, but could be useful if/when I add |
823 |
internal DHCP support.) |
824 |
Working more on the TCP stuff; TCP seems to be almost working, |
825 |
the only immediate problem left is that the guest OS gets |
826 |
stuck in the closing and last-ack states, when it shouldn't. |
827 |
It is now possible to install NetBSD and OpenBSD via ftp. :-) |
828 |
20040721 Trying to fix the last-ack bug, by sending an RST after the |
829 |
end of a connection. (Probably not a correct fix, but seems |
830 |
to work?) |
831 |
Adding a my_fseek() function, which works like fseek() but |
832 |
with off_t instead of long, so that large disk images can |
833 |
be used on systems where long is 32 bits. |
834 |
20040722 Trying to fix some more TCP related bugs. |
835 |
20040725 Changing the inlined asm statement in bintrans_alpha.c into |
836 |
a call to a hardcoded array of bytes that do the same thing |
837 |
(an instruction cache invalidation). This allows the same |
838 |
invalidation code to be used regardless of compiler. |
839 |
Some other minor changes. |
840 |
20040726 Minor updates. The configure script is now more verbose. |
841 |
A Debian/IP22 Linux tftp boot kernel requires ARCS memory to |
842 |
be FreeMemory, not FreeContiguous. (This should still work with |
843 |
other SGI and ARC OSes.) |
844 |
Fix for ARCS write(), so it returns good write count and |
845 |
success result (0). |
846 |
Some hacks to the IP22 memory controller, to fake 72MB RAM |
847 |
in bank 0. |
848 |
The IP22 Debian kernel reaches userland (ramdisk) when run |
849 |
with -G24 -M72 -CR4400, if a special hack is done to the |
850 |
zs device. |
851 |
20040730 Removing mgras.h, as I'm not sure a file dual-licensed this way |
852 |
would work. (Dual-licensing as two separate files would work |
853 |
though.) |
854 |
Preparing for the upcoming release (0.2). |
855 |
20040801 Fixing the 512 vs 2048 cdrom sector size bug; I hadn't |
856 |
implemented the mode select SCSI command. (It still isn't |
857 |
really implemented.) |
858 |
A bug which crashes the emulator is triggered when run with |
859 |
new NetBSD 2.0_BETA snapshots on a Linux/i386 host. I'm not |
860 |
sure why. |
861 |
UDP packets sent to the gateway (at 10.0.0.254) are now |
862 |
forwarded to the machine that the host uses as its nameserver. |
863 |
Some other minor fixes. |
864 |
|
865 |
============== RELEASE 0.2 ============== |
866 |
|
867 |
20040803 A post-3.5 OpenBSD/sgimips kernel snapshot with ramdisk seems |
868 |
to boot fine in the emulator, all the way to userland, and |
869 |
can be interacted with. |
870 |
Adding a -y option, used to set how many (random) instructions |
871 |
to run from each CPU at max (useful for SMP instruction |
872 |
interleave experiments). |
873 |
Importing a 8x16 console font from FreeBSD (vt220l.816). |
874 |
Adding a skeleton for a 80x25 text console device (dev_vga), |
875 |
useful for some ARC modes. (Character output is possible, but |
876 |
no cursor yet.) |
877 |
Adding a dev_zero device (returns zeroes on read). |
878 |
OpenBSD/arc 2.3 can get all the way to userland with -A4 (if |
879 |
the wdc devices are commented out) but bugs out there, probably |
880 |
because of interrupt issues. |
881 |
Adding a -A5 ARC emulation mode (Microsoft-Jazz, "MIPS Magnum") |
882 |
which NetBSD seems to like. No interrupt specifics yet, so |
883 |
it hangs while waiting for SCSI. |
884 |
20040804 Some dev_mp updates. |
885 |
The -y switch has to do with number of cycles, not number |
886 |
of instructions; variable names have been changed to reflect |
887 |
this. |
888 |
20040805 Minor updates. Adding some more CPU types/names, but they |
889 |
are probably bogus. |
890 |
Adding a MeshCube emulation mode. Just a skeleton so far, but |
891 |
enough to let a Linux kernel print some boot messages. |
892 |
Adding the 'deret' instruction. |
893 |
20040806 Adding include/impactsr-bsd.h (a newer version of what was in |
894 |
mgras.h before, and this time with only a BSD-style license), |
895 |
but it is not used yet. |
896 |
20040810 Some Au1500 updates. |
897 |
20040811 Adding the 'clz', 'clo', 'dclz', and 'dclo' special2 (MIPS32 |
898 |
and MIPS64) instructions. |
899 |
More Au1500 updates. |
900 |
20040812 Using fseeko(), when it is available. |
901 |
Other minor updates. |
902 |
Adding a NetGear WG602 emulation mode skeleton (-g); after |
903 |
a lot of trial and error, a Linux kernel (WG602_V1715.img) |
904 |
gets all the way to userland, but hangs there. |
905 |
20040818 Adding signal handlers to better cope with CTRL-Z and CTRL-C. |
906 |
Adding a simple interactive single-step debugger which is |
907 |
activated by CTRL-C. (Commands so far: continue, dump, help, |
908 |
itrace, quit, registers, step, trace, version) |
909 |
20040818(later) Adding a 'tlbdump' debugger command, and some other minor |
910 |
fixes. |
911 |
20040819 Minor updates. Adding an 'unassemble' debugger command. |
912 |
20040822 Minor updates to the regression testing framework. |
913 |
20040824 Minor updates based on feedback from Alec Voropay |
914 |
(configure script updates for Cygwin and documentation). |
915 |
20040826 Minor updates. |
916 |
Adding a cursor to the VGA text console device. |
917 |
Changing all old 11:22:..55:66 ethernet macs to 10:20..60, |
918 |
still hardcoded though. |
919 |
20040828 Minor updates. |
920 |
20040829 mips64emul is 1 year old today :-) |
921 |
20040901 tests/README now lists "all" MIPS opcodes. This list should |
922 |
be updated whenever a new opcode is implemented, or when a |
923 |
regression test is added. (A combination of instructions from |
924 |
the TX79 manual, the GNU assembler, and the MIPS64 manual). |
925 |
Hopefully I haven't missed too many. |
926 |
Adding a section on regression testing to doc/technical.html. |
927 |
20040902 Finally beginning the work on separating out the stuff from |
928 |
main.c into a "struct emul". Very time-consuming. |
929 |
Some minor fixes for LL/SC on R10000. |
930 |
20040905 Moving more stuff from main.c into struct emul. Unfortunately, |
931 |
it seems that this causes a slowdown of the emulator. |
932 |
Userland emulation is now only used if --userland is used |
933 |
when running configure. |
934 |
Modifying src/symbol.c to not use global variables. |
935 |
20040906 Minor update. |
936 |
20040914 Using $COPTIM when detecting which compiler flags to use in |
937 |
the configure script. (This makes sure that combinations of |
938 |
flags should work.) |
939 |
There'll probably be a 0.2.1 release some time soon, but I'll |
940 |
do some more clean-up first. |
941 |
Minor update to the detection of ECOFF files, but I don't like |
942 |
it; sometimes the endianness of the magic value seems to be |
943 |
swapped, but it doesn't have to do with endianness of the |
944 |
actual data? |
945 |
20040916 Minor updates. Adding an Example section to the manpage, but |
946 |
as I'm not really familiar with manpage formatting, it will |
947 |
need to be rewritten later. |
948 |
20040917 Finally making the coprocessor instructions disassemblable |
949 |
even when not running. |
950 |
Doing some testing for the 0.2.1 release. |
951 |
|
952 |
============== RELEASE 0.2.1 ============== |
953 |
|
954 |
20040923 Updating the documentation about how to (try to) install |
955 |
Debian GNU/Linux. |
956 |
20040924 Some more updates to the documentation. |
957 |
20040925 Adding overflow stuff to 'add' and 'sub'. |
958 |
20040926 Minor updates: possibly a fix to 'sltiu' (the imm value |
959 |
should be treated as signed, and then converted to unsigned, |
960 |
according to the MIPS64 manual), and removing the |
961 |
'last_was_rfe' stuff (again). |
962 |
OpenBSD/arc used speed-hack jumps with other deltas than just |
963 |
+/- 1 (it used -3 iirc), so the jump speedhack should now |
964 |
support any delta. Also adding bgtzl and blezl as possible |
965 |
instructions for the speed-hack jumps. (This needs to be |
966 |
tested more.) |
967 |
20040928 Minor updates. Some ARC stuff ("arcdiag" runs now). |
968 |
cpu_register_dump() now also dumps coprocessor registers. |
969 |
20040929 More ARC updates. Making the code look a tiny bit nicer |
970 |
than before. "arcdiag.ip22" works for -G22 (SGI-IP22). |
971 |
Apparently the overflow support in the 'add' instruction |
972 |
was incorrect, so I disabled it. |
973 |
20041002 Trying to install Ultrix in the emulator, but the installer |
974 |
crashes; found (and fixed) the bug rather quickly: the "fix" |
975 |
I implemented a few days ago for the 'sub' instruction |
976 |
(according to the MIPS64 manual) caused the bug. |
977 |
20041004 Changing the behaviour of the -j command line option. The |
978 |
default is now "" (or taken from the last filename given on |
979 |
the command line), not "netbsd". In practice, this doesn't |
980 |
change much, except that -j netbsd.pmax is no longer needed |
981 |
when installing NetBSD. |
982 |
Adding a COMPILE_DATE string to config.h. |
983 |
20041007 Adding a NEC RISCserver 4200 model (-A6), and some more |
984 |
updates to the ARC component tree generator. |
985 |
20041008 The 'll' instruction should be signed, not unsigned as before. |
986 |
This (and some other minor fixes) causes Irix on SGI-IP32 (O2) |
987 |
to actually boot far enough to print its first boot messages :) |
988 |
Working on some new dynamic bintrans code. Enough is now |
989 |
implemented so that the 'nop' instruction is translated |
990 |
and there is support for Alpha, i386 and UltraSparc backends, |
991 |
but performance is about 50% worse than when running without |
992 |
bintrans. (This is as expected, though.) |
993 |
20041009 Minor updates to the documentation. |
994 |
Using mprotect() to make sure that the code created dynamically |
995 |
by the bintrans subsystem is allowed to be executed. (This |
996 |
affects newer OpenBSD systems, and possibly others.) |
997 |
The translated code chunks now only get one argument passed to |
998 |
them, the (struct cpu *) of the current cpu. |
999 |
20041010 Hack to dev_le.c which makes Ultrix accept the initialization |
1000 |
of the LANCE controller. (This goes against the LANCE |
1001 |
documentation though.) |
1002 |
In src/net.c, a fix for Ultrix (which seems to send larger |
1003 |
ethernet packets than the actual TCP/IP contents). The hack to |
1004 |
dev_le.c and this fix is enough to let Ultrix access the |
1005 |
Internet. |
1006 |
For DECstation, when booting without a disk image (or when |
1007 |
"-O" is used on the command line), use "tftp" instead of "rzX" |
1008 |
for the boot string. |
1009 |
20041011 Adding cache size variables to the emul struct, so that these |
1010 |
can be set on a per-machine basis (or potentially manually |
1011 |
on the command line). |
1012 |
20041012 Mach/PMAX now passes the LK201 keyboard self-test (although |
1013 |
the keyboard ID is still bogus). |
1014 |
20041013 Minor updates. |
1015 |
Hacks to the ASC SCSI controller for Mach/PMAX, hopefully this |
1016 |
will not break support for other OSes. |
1017 |
20041014 Minor fix to src/emul.c for reading bootblocks at the end of |
1018 |
a disk or cdrom image (thanks to Alexandru Lazar for making me |
1019 |
aware of this). |
1020 |
Adding "gets()" to src/dec_prom.c. |
1021 |
Working a bit on ARC stuff. Importing pica.h from NetBSD. |
1022 |
Minor updates to the ARC component tree for PICA-61. |
1023 |
Adding a dev_jazz.c (mostly for PICA-61). |
1024 |
Renaming dev_jazz.c into dev_pica.c. Working on PICA timer |
1025 |
and interrupt specifics. |
1026 |
20041016 Adding some dummy entries to lk201.c to reduce debug output. |
1027 |
Some bintrans updates (don't run in delay slots or nullified |
1028 |
slots, read directly from host memory and not via memory_rw(), |
1029 |
try mmap() before malloc() at startup, and many other minor |
1030 |
updates). |
1031 |
Adding bintrans_mips.c for 64-bit MIPS hosts, but it is not |
1032 |
used yet. |
1033 |
20041017 Minor updates. |
1034 |
20041018 Update to dev_mc146818 to allow Mach to boot a bit further. |
1035 |
The "hardware random" in dev_mp.c now returns up to 64 bits |
1036 |
of random. |
1037 |
20041019 Minor updates to the way cache sizes are used throughout the |
1038 |
code. Should be mostly ok for R[234]x00. |
1039 |
src/file.c now loads files using NO_EXCEPTIONS. Whether this |
1040 |
is good or bad, I'm not sure. |
1041 |
20041020 Adding a Linksys WRT54G emulation skeleton (-H). |
1042 |
20041021 Minor updates. |
1043 |
R1[024]000 cache size bits in the config register should now |
1044 |
be ok. |
1045 |
Trying to make dev_asc.c work better with PICA. |
1046 |
More work on PICA interrupts (but they are broken now). |
1047 |
20041022 Generalizing the dev_vga text console device so that it can be |
1048 |
used in other resolutions than just 80x25. Works with |
1049 |
OpenBSD/arc. |
1050 |
emul->boot_string_argument is now empty by default (except |
1051 |
for DECstation modes, where it is "-a"). |
1052 |
Speedup of dev_ram by using mmap() instead of malloc(). |
1053 |
Using mmap() in memory.c as well, which reduces memory usage |
1054 |
when emulating large memory sizes if the memory isn't actually |
1055 |
written to. |
1056 |
20041023 Minor updates. |
1057 |
20041024 Updates to the PC-style keyboard controller, used by PICA. |
1058 |
Updates to the PICA (Jazz) interrupt system. Both NetBSD/arc |
1059 |
and OpenBSD/arc now reach userland with PICA emulation, and |
1060 |
can be interacted with (there are a few programs on the |
1061 |
INSTALL kernel ramdisks). In the case of OpenBSD, a VGA text |
1062 |
console and PC-style keyboard controller is used, NetBSD |
1063 |
runs on serial console. |
1064 |
Adding a framework for DMA transfer for the ASC SCSI |
1065 |
controller. |
1066 |
Implementing a R4030 DMA controller for PICA, enough to let |
1067 |
OpenBSD/arc and NetBSD/arc be installed on an emulated |
1068 |
Pica. :-) |
1069 |
Updates to the documentation. |
1070 |
20041025 Working on ISA interrupts for PICA. |
1071 |
Adding an Olivetti M700 emulation mode (-A7). |
1072 |
Better separation of PICA and M700 stuff (which I accidentally |
1073 |
mixed up before, I thought the M700 Linux kernel would |
1074 |
also work on PICA because it almost booted). |
1075 |
Writing a skeleton G364 framebuffer for M700, enough to show |
1076 |
the Linux penguin and some text, although scrolling isn't |
1077 |
correctly implemented yet. |
1078 |
Adding a dummy SONIC (ethernet) device, dev_sn, for PICA. |
1079 |
Fixing the passing of OSLOADOPTIONS for ARC, the default is |
1080 |
now "-aN" which works fine with OpenBSD/arc and NetBSD/arc. |
1081 |
20041027 Minor updates. |
1082 |
20041029 Adding a Sony NeWS "newsmips" emulation mode skeleton (-f). |
1083 |
Found and fixed a bug which prevented Linux/IP32 from running |
1084 |
(the speed-hack-jump-optimization fix I made a few weeks ago |
1085 |
was buggy). |
1086 |
Adding the trunc.w.fmt and trunc.l.fmt instructions, although |
1087 |
the are probably not really tested yet. |
1088 |
Changes to how floating point values are handled in |
1089 |
src/coproc.c, but right now it is probably very unstable. |
1090 |
20041101 I had accidentally removed the instructions on how to install |
1091 |
Ultrix from doc/index.html. They are back now. |
1092 |
Adding a -Z option, which makes it easier to run dual- or |
1093 |
tripple-head with Ultrix. (Default nr of graphics cards |
1094 |
without -X is 0, with -X is 1.) |
1095 |
Minor update which makes it possible to switch to the left |
1096 |
monitor when running tripple-head, not just right as before. |
1097 |
When using more than one framebuffer window, and the host's |
1098 |
mouse cursor is in a different window than the emulated mouse |
1099 |
cursor, the emulated mouse will now try to move "very far", |
1100 |
so that it in practice changes screen. |
1101 |
Running Ultrix with dual- and tripple-head now feels really |
1102 |
great. |
1103 |
20041101(later) OpenBSD/arc and Linux/Olivetti-M700 don't both work at the |
1104 |
same time with the speed-hack stuff. So, from now on, you |
1105 |
need to add -J for Linux, and add nothing for openbsd. |
1106 |
20041102 Minor update for OSF/1 V4.0 (include sys/time.h in src/net.c |
1107 |
and add -D_POSIX_PII_SOCKET to the C compiler flags). |
1108 |
20041103 Minor updates for the release. |
1109 |
For some reason, Mach/PMAX caused the emulator to bug out on |
1110 |
SunOS/sparc64 (compiled in 64-bit mode); a minor update/hack |
1111 |
to dev_asc fixed this. |
1112 |
|
1113 |
============== RELEASE 0.2.2 ============== |
1114 |
|
1115 |
20041103 Minor updates. |
1116 |
20041104 Minor updates. |
1117 |
20041105 Running with different framebuffer windows on different X11 |
1118 |
displays works now (even with different bit depths and |
1119 |
endiannesses on different displays). A new command line option |
1120 |
(-z) adds DISPLAYs that should be used. |
1121 |
Update regarding how DECstation BT459 cursors are used; |
1122 |
transparency :-) and some other bug fixes. |
1123 |
20041106 More bt459 updates. The cursor color seems to be correct for |
1124 |
NetBSD, OpenBSD, Ultrix, and Sprite. |
1125 |
Some minor bintrans updates (redesigning some things). |
1126 |
20041107 More bintrans updates (probably broken for non-Alpha targets). |
1127 |
Moving doc/mips64emul.1 to man/. |
1128 |
20041108 Some updates. |
1129 |
20041109 More updates. Bintrans experiments mostly. |
1130 |
20041110 Some minor bintrans updates. |
1131 |
20041111 Minor updates. |
1132 |
20041112 A little rewrite of the bintrans system (again :-), this time |
1133 |
a lot more naïve and non-optimizing, in order to support delay |
1134 |
slots in a much simpler way. |
1135 |
Ultrix 4.5 boots into a usable desktop on my home machine in |
1136 |
3min 28sec, compared to 6-8 minutes without bintrans. |
1137 |
20041113 Some minor bintrans updates. |
1138 |
20041114 More bintrans updates. Ultrix now boots in exactly 3 minutes |
1139 |
on my home machine. |
1140 |
20041115 More bintrans updates. |
1141 |
20041116 Bintrans updates. |
1142 |
20041117 Working on dev_dec_ioasic and related issues. |
1143 |
Adding support for letting translated code access devices in |
1144 |
some cases (such as framebuffers). |
1145 |
20041118 Moving some MIPS registers into Alpha registers, which gives |
1146 |
a speed improvement. |
1147 |
Beginning to write an i386 bintrans backend. Skeleton stuff |
1148 |
works, lui, jr/jalr, addiu/daddiu/andi/ori/xori, j/jal, |
1149 |
addu/daddu/subu/xor/or/nor/and. |
1150 |
20041119 dsubu/sll/srl/sra, rfe,mfc0,dmfc0, beq,bne, delayed branches. |
1151 |
Some load/store (but not for bigendian emulation yet.) |
1152 |
Time to reach Ultrix 4.5's graphical login on a 2.8 GHz Xeon |
1153 |
host is now down to 20 seconds! |
1154 |
Adding bgez, bltz, bgtz, and blez to the i386 backend. |
1155 |
20041120 Minor updates (bintrans related mostly). |
1156 |
Time to reach Ultrix login on the Xeon is now 11 seconds. |
1157 |
Adding 'mult', 'multu' and a some parts of mtc0 to the Alpha |
1158 |
backend. |
1159 |
The transparency updates to the X11 cursor support made the |
1160 |
OpenBSD/arc cursor disappear; that has been fixed now. |
1161 |
Unfortunately, something with Acer Pica emulation is broken |
1162 |
when bintrans is enabled. |
1163 |
20041121 Making tlbwr, tlbwi, tlbp, tlbr callable directly from |
1164 |
translated code. |
1165 |
Adding sltiu, slti, slt, and sltu to the i386 backend. |
1166 |
20041122 More bintrans updates. |
1167 |
With the Alpha backend, the status and entryhi registers |
1168 |
can (in some cases) be written without exiting to the main |
1169 |
loop. Ultrix boot time until a usable desktop is reached |
1170 |
is about 1 min 35 seconds on the 533 MHz pca56. |
1171 |
Adding srlv, srav, and sllv to the i386 backend. |
1172 |
20041123 Removing the special handling of high physical addresses for |
1173 |
DECstation emulation from the main memory handling code, and |
1174 |
replacing it with a mirror device instead. (This results in |
1175 |
a tiny increase in performance, and cleaner code.) |
1176 |
Various minor updates. |
1177 |
20041124 Ripping out _all_ bintrans load/store code, because I have |
1178 |
a new idea I'd like to try out. |
1179 |
A total rewrite of the load/store system. It works when |
1180 |
emulating 32-bit MIPS, but not for 64-bit code yet. |
1181 |
Some minor updates to the dev_fb, but no speed improvement. |
1182 |
Making the 'le' ethernet device' SRAM work with bintrans. |
1183 |
20041125 Various updates. |
1184 |
Adding a little "bootup logo" to the framebuffer. |
1185 |
There is now one translate_address() for R3000-style MMUs, |
1186 |
and one for the other types. (This gives a tiny speed |
1187 |
improvement.) |
1188 |
20041126 Minor updates, bintrans. |
1189 |
Fixing the bug which caused OpenBSD/arc (R4000) to bug out; |
1190 |
it was introduced between the 7:th and 10:th of November |
1191 |
when moving up the check for interrupts to above the code |
1192 |
which runs bintrans code, in src/cpu.c. |
1193 |
Adding movn and movz to the Alpha bintrans backend. |
1194 |
20041127 Various minor updates. |
1195 |
20041128 Making the R2000/R3000 caches work with bintrans, even in |
1196 |
isolated mode. (Not true cache emulation, but it works with |
1197 |
NetBSD/pmax, OpenBSD/pmax, and Ultrix.) |
1198 |
Making the default cache size for R3000 4KB instr, 4 KB data; |
1199 |
a real R3000 could have 64KB each, but emulated OSes run |
1200 |
faster when they think the cache is smaller :-) |
1201 |
Updates to the i386 backend: the nr of executed instructions |
1202 |
is now placed in ebp at all times, and some support for |
1203 |
mtc0 similar to how it is done in the Alpha backend has been |
1204 |
added. A full NetBSD/pmax 1.6.2 install can now be done in |
1205 |
5 minutes 35 seconds, on a 2.8 GHz Xeon host (with -bD2 -M20). |
1206 |
Adding mult and multu to the i386 bintrans backend. |
1207 |
Reducing the number of malloc/free calls used by the |
1208 |
diskimage subsystem. |
1209 |
20041129 Minor updates to the Alpha bintrans backend. |
1210 |
20041130 Trying to fix the bug which prevents Linux from working |
1211 |
with bintrans. It _seems_ to work now. (Pages could in some |
1212 |
cases be written to after they were translated, but that |
1213 |
has been fixed now.) |
1214 |
A couple of other minor fixes. |
1215 |
Minor updates to the Alpha backend (directly using Alpha |
1216 |
registers in some cases, instead of loading into temporaries). |
1217 |
Updates to the i386 backend (special hacks for 32-bit |
1218 |
MIPS emulation, which are fast on i386, for example only |
1219 |
updating half of the pc register). |
1220 |
20041201 More updates to the i386 backend, similar to those yesterday. |
1221 |
Preparing for release 0.2.3. |
1222 |
Adding a generic load/store mechanism, which is used when the |
1223 |
32-bit optimized version cannot be used (for R4000 etc). |
1224 |
|
1225 |
============== RELEASE 0.2.3 ============== |
1226 |
|
1227 |
20041202 If ALWAYS_SIGNEXTEND_32 is defined in misc.h, and an |
1228 |
incorrectly extended register is detected, the emulator now |
1229 |
exits instead of continues. |
1230 |
Removing the LAST_USED_TLB_EXPERIMENT stuff. |
1231 |
Minor updates to work better with Windows NT's ARCINST.EXE; |
1232 |
printing 0x9b via arcbios becomes ESC + '[', and the ARC |
1233 |
memory descriptor stuff has been generalized a bit more. |
1234 |
Adding arbios hacks for Open(), Seek(), GetRelativeTime(), |
1235 |
and Read() to allow WinNT's SETUPLDR to read the filesystem |
1236 |
on the diskimage used for booting. |
1237 |
20041203 Adding a terminal emulation layer which converts arcbios |
1238 |
stdout writes to "VGA text console" cell characters. Seems |
1239 |
to work with Windows NT and arcdiag. |
1240 |
Adding a 8x8 font to dev_vga. |
1241 |
Adding more ARC components to the component tree (for PICA |
1242 |
emulation). |
1243 |
20041204 Minor updates. |
1244 |
More updates to dev_vga. Adding a 8x10 font. |
1245 |
Adding a hack so that the framebuffer logo is visible at |
1246 |
startup with dev_vga. (It disappears at the first scroll.) |
1247 |
A minor fix for a bug which was triggered when running |
1248 |
dual- or tripple-head, on 2 or 3 actual X11 displays. |
1249 |
20041205 Fixing a bintrans bug. |
1250 |
Some other minor updates (some of them bintrans related). |
1251 |
20041206 Moving the web page to http://gavare.se. |
1252 |
Adding a hack for mmap() which supports anonymous mapping |
1253 |
using /dev/zero, but not using MAP_ANON{,YMOUS}. |
1254 |
Separating out opcodes.h, cop0.h, and cpu_types.h from misc.h. |
1255 |
20041207 Minor bintrans update. (In some cases, it isn't necessary |
1256 |
to return to the main loop, when translating from a new page.) |
1257 |
Some other minor i386 bintrans backend optimizations. |
1258 |
And some other minor updates. |
1259 |
i386 backend update: the lowest 32 bits of the pc register |
1260 |
are now placed in an i386 register. |
1261 |
20041208 Adding GetConfigurationData() and some support for config |
1262 |
data, to src/arcbios.c. |
1263 |
Adding a bogus 0xbd SCSI command (used by Windows NT). It is |
1264 |
not listed in http://www.danbbs.dk/~dino/SCSI/SCSI2-D.html. |
1265 |
If the framebuffer cursor contains more than 1 color, then |
1266 |
the host's X11 cursor disappears. (Nice for DECstation |
1267 |
emulation with emulated X.) |
1268 |
For ARC and SGI emulation, if an exception occurs before an |
1269 |
exception handler is installed, the emulator now exits |
1270 |
nicely (as suggested by Alec Voropay). |
1271 |
A couple of minor updates to the ARCBIOS emulation subsystem. |
1272 |
The single step debugger is now automatically entered when |
1273 |
all CPUs have stopped running, unless there was a clean |
1274 |
shutdown of some kind (PROM halt() call, or similar). |
1275 |
Adding a -V option for starting up in a paused state, into |
1276 |
the single-step debugger. |
1277 |
Adding a note about 'mmon' to the documentation |
1278 |
(http://www.brouhaha.com/~eric/software/mmon/). |
1279 |
20041209 Fixes to devices/console.c which makes cursor keys and such |
1280 |
a bit more reliable. |
1281 |
ARCBIOS hack/update which creates memory descriptors _after_ |
1282 |
loading the executable. (Seems to work with OpenBSD/arc, |
1283 |
NetBSD/arc, arcdiag, IRIX, NetBSD/sgimips, OpenBSD/sgi, and |
1284 |
some Windows NT executables.) |
1285 |
ARCBIOS support for cursor keys (ESC + '[' ==> 0x9b). |
1286 |
A bintrans update (for 32-bit emulation) which speeds up |
1287 |
jumps between pages, if code is already translated. |
1288 |
Changing the default bintrans cache from 20 to 24 MB. |
1289 |
20041210 Optimizing unaligned load/stores a little bit in src/cpu.c. |
1290 |
Omiting the check for nr of executed bintrans instructions |
1291 |
on some forward jumps. |
1292 |
Adding the 'syscall' and 'break' instructions to the |
1293 |
bintrans backends. |
1294 |
Allowing more bits of the status register to be written to |
1295 |
from within inside translated code, on R3000. |
1296 |
Getting rid of the final pixel when hiding the host's mouse |
1297 |
cursor. |
1298 |
store_buf() now copies data 8 or 4 bytes at a time, when |
1299 |
possible. (This speeds up emulated ROM disk reads, etc.) |
1300 |
Tiny bug fix: coprocessor unusable exceptions are now also |
1301 |
generated (for coproc 1..3) even when in kernel mode, if the |
1302 |
coprocessors are not enabled. This allows a Debian installation |
1303 |
to proceed further than before. (It's still very unstable, |
1304 |
though.) |
1305 |
20041212 Updating doc/index.html with better Debian installation |
1306 |
instructions. |
1307 |
If SLOWSERIALINTERRUPTS is defined at compile time, interrupts |
1308 |
from the dc7085 device will not come as often as they normally |
1309 |
do. This makes Debian seem more stable. |
1310 |
Decreasing the bintrans cache to 20 MB again. |
1311 |
Updating some files in preparation for a 0.2.4 release. |
1312 |
20041213 Updating the docs on how to install NetBSD 2.0/pmax, and also |
1313 |
some updates to the section on installing Debian. |
1314 |
32-bit bintrans backend optimization: don't inline large |
1315 |
chunks of code, such as general jumps. |
1316 |
20041214 Minor fix for coproc unusable for R4000 (it's the PC that, |
1317 |
matters, not the KSU bits). |
1318 |
Separating out the debugger from emul.c into debugger.c. |
1319 |
Rewriting parts of the debugger. |
1320 |
Removing the -U command line option, as it wasn't really |
1321 |
useful. Also removing the -P option. |
1322 |
Renaming all instances of dumppoint to breakpoint, as that |
1323 |
is what it really is. |
1324 |
When a breakpoint is reached, the single-step debugger is |
1325 |
entered, instead of just turning on instruction trace. |
1326 |
Adding a 'breakpoints' debugger command. |
1327 |
Better fix for coproc unusable on R4000: the KSU bits matter, |
1328 |
but the ERL and EXL bits override that. |
1329 |
Fix which allows Debian to boot directly from a disk image |
1330 |
(with DELO). (It reads multiple separate areas from disk.) |
1331 |
Update to the SLOWSERIALINTERRUPTS stuff, making it even |
1332 |
slower. |
1333 |
Fixes based on feedback from Alec Voropay (-Q with ARC |
1334 |
emulation skips the setup of arcbios data structures in |
1335 |
memory, and no sign-extension _after_ writing a 32-bit |
1336 |
value to a 64-bit coproc 0 register). |
1337 |
Adding a 'devices' command to the debugger. |
1338 |
The 'registers' and 'tlbdump' commands now take an optional |
1339 |
argument (a cpu id). |
1340 |
Adding rudimentary tab-completion and cursor key stuff to |
1341 |
debugger_readline(). |
1342 |
Adding some more debugger commands: 'bintrans' and 'machine'. |
1343 |
20041215 Adding a 'devstate' command; implementing a skeleton for a |
1344 |
state function for the bt459 device. |
1345 |
Implementing yet another variant of the SLOWSERIALINTERRUPTS |
1346 |
stuff. |
1347 |
Implementing more of the different exception offsets (taking |
1348 |
CAUSE_IV and STATUS_BEV into account). |
1349 |
hpc_bootinfo should now be correctly filled on big-endian |
1350 |
hosts. |
1351 |
Always shift left by 12, not by pageshift, to get physical |
1352 |
addresses on MMU4K etc. (Thanks to Alec Voropay for noticing |
1353 |
this.) |
1354 |
20041216 The KN02's CSR can now be read from bintranslated code. |
1355 |
Adding a dummy dev_sgi_mec. |
1356 |
20041217 The default framebuffer and model settings for -F (hpcmips) |
1357 |
should now be almost like Cassiopeia E-500. |
1358 |
Changing -DSLOWSERIALINTERRUPTS into a command line option, -U. |
1359 |
20041218 Continuing a little bit on the mec controller. |
1360 |
Removing lots of #include <math.h> that weren't really used. |
1361 |
20041219 Fixing stuff that broke because of the pageshift bugfix. |
1362 |
Adding an argument to the s (step) debugger command, for doing |
1363 |
more than 1 step at a time. |
1364 |
ARCBIOS components representing disk images are now created |
1365 |
to actually match the disk images in use, and some other |
1366 |
arcbios-related updates; adding a dummy GetComponent(). |
1367 |
Adding a 'lookup' command to the debugger, for symbol lookups. |
1368 |
Adding a "NEC Express RISCserver" mode (NEC-R96, -A8). |
1369 |
Adding a dummy ARCBIOS GetFileInformation(), GetTime(), and |
1370 |
SetEnvironmentVariable(). |
1371 |
20041220 Improved command line editing (including command history) |
1372 |
in the debugger. |
1373 |
Separating some more .h files from each other, and fixing |
1374 |
some Solaris compiler warnings. |
1375 |
20041221 Minor updates. |
1376 |
20041222 Minor updates; hpcmips (BE300, VR41xx) stuff. |
1377 |
The 'register' debugger command is now 'reg', and it can |
1378 |
be used to modify registers, not just read them. |
1379 |
The syntax for hpcmips (-F) is now -F xx, where xx is a |
1380 |
machine model identifier. (1 = BE300.) |
1381 |
20041223 Some really minor updates. |
1382 |
20041226 Minor updates to doc/index.html (NetBSD 1.6.2 -> 2.0, and |
1383 |
some other rearrangements). |
1384 |
Many updates to the debugger (better register manipulation, |
1385 |
breakpoint manipulation, and other updates). |
1386 |
Fix to dev_cons.c to allow the regression tests to work again. |
1387 |
The configure script now tries to detect the presence of a |
1388 |
MIPS cross compiler. (Used by "make regtest".) |
1389 |
Regression tests are now run both with and without bintrans. |
1390 |
20041227 Some hacks to the VR41xx code to allow Linux for BE300 to |
1391 |
get far enough to show the penguin on the framebuffer. |
1392 |
20041228 Merging dev_kn01_csr.c and dev_vdac.c into dev_kn01.c. |
1393 |
20041229 Various updates to the debugger (nicer tlb output and other |
1394 |
things). |
1395 |
Some floating point fixes in src/coproc.c (mov is not |
1396 |
an arithmetic instruction), and in src/cpu.c (ldcX/sdcX in |
1397 |
32-bit mode uses register pairs). |
1398 |
'-O' now also affects the bootstring for SGI and ARC emulation. |
1399 |
Bintrans updates (slightly faster 32-bit load/store on alpha). |
1400 |
Updates to the i386 backend too, but no real speed improvement. |
1401 |
20041230 Cleaning up parts of the 64-bit virtual-to-physical code for |
1402 |
R10000, and per-machine default TLB entries can now be set |
1403 |
for SGI and ARC machines. |
1404 |
Fix: SGI-IP27 is ARC64, not ARCS. |
1405 |
20050101 Minor updates. |
1406 |
20050102 Minor updates. |
1407 |
Fixing a 32-bit 'addu' bug in the bintrans backends. |
1408 |
Allowing fast load/stores even in 64-bit bintrans mode, if |
1409 |
the top 32 bits are either 0x00000000 or 0xffffffff (for Alpha |
1410 |
only). |
1411 |
Re-enabling ctc0/cfc0 (but what do they do?). |
1412 |
Adding beql, bnel, blezl, and bgtzl to the Alpha backend. |
1413 |
20050103 Adding fast 32-bit load/store for 64-bit mode emulation to |
1414 |
the i386 backend too (similar to the Alpha code). Not really |
1415 |
tested yet, though. |
1416 |
Adding an incomplete regression test case for lwl/lwr/ldl/ldr. |
1417 |
Playing around with bintranslated lwl and lwr for Alpha. |
1418 |
20040104 Changing many occurances of pica to jazz. |
1419 |
Various other updates. |
1420 |
20050105 Fixing some more bintrans bugs (both Alpha and i386). |
1421 |
Unaligned stores that cause tlb refill exceptions should now |
1422 |
cause TLBS exceptions, not TLBL. |
1423 |
Adding experimental swl and swr to the Alpha backend. |
1424 |
Adding lwl, lwr, swl, and swr to the i386 backend. |
1425 |
20050106 Adding another hpcmips model (Casio E-105, -F2), and doing |
1426 |
some updates to the VR41xx code. NetBSD/hpcmips prints some |
1427 |
boot messages. |
1428 |
20050108 Minor updates. |
1429 |
20050109 dev_dec5500_ioboard.c and dev_sgec.c => dev_kn220.c. |
1430 |
dev_crime.c, _mace.c, and _macepci.c => dev_sgi_ip32.c. |
1431 |
Also adding dev_sgi_mec, _ust, and _mte into dev_sgi_ip32.c. |
1432 |
A slight license change. Still revised BSD-style, though. |
1433 |
memory_v2p.c is now included separately for MMU10K and |
1434 |
MMU8K. |
1435 |
Fixing a NS16550 bug, triggered by NetBSD 2.0, but not 1.6.2. |
1436 |
Refreshing the UltraSPARC bintrans backend skeleton. |
1437 |
Merging dev_decbi, _deccca, and _decxmi into dev_dec5800.c. |
1438 |
Sparc backend instructions done so far: mthi/mtlo/mfhi/mflo, |
1439 |
lui, addu, daddu, subu, dsubu, and, or, nor, xor, sll, dsll, |
1440 |
srl, and sra. |
1441 |
Adding more sparc backend instructions: addiu, daddiu, xori, |
1442 |
ori, andi, srlv, srav, sllv, slt, sltu, slti, sltiu. |
1443 |
20050110 Changing the default bintrans cache to 16 MB, and some other |
1444 |
minor updates. |
1445 |
Adding div and divu to the i386 backend (but not Alpha yet). |
1446 |
More work on ARCBIOS emulation. |
1447 |
Trying to find a bug which affects Linux on Playstation 2 in |
1448 |
bintrans mode. |
1449 |
20050111 Moving around some Playstation 2 stuff, but I haven't found |
1450 |
the bug yet. It is triggered by load/stores. |
1451 |
More ARCBIOS updates, enough to let Windows NT partition |
1452 |
disks in some rudimentary fashion. |
1453 |
20050112 Testing for release 0.2.4. |
1454 |
Fixes to suppress compiler warnings. |
1455 |
|
1456 |
============== RELEASE 0.2.4 ============== |
1457 |
|
1458 |
20050113 Minor updates. |
1459 |
20050114 Fix to the Alpha bintrans backend to allow compilation with |
1460 |
old versions of gcc (2.95.4). |
1461 |
|
1462 |
============== RELEASE 0.2.4.1 ============== |
1463 |
|
1464 |
20050115 Various updates and fixes: some IP32 stuff, the debugger, |
1465 |
ns16550 loopback tx isn't transmitted out anymore, ... |
1466 |
Removing old/broken R10000 cache hacks, which weren't really |
1467 |
used. |
1468 |
20050116 Minor updates to the documentation on using PROM images. |
1469 |
Adding ARCBIOS function 0x100 (used by IRIX when returning |
1470 |
from main, but undocumented). |
1471 |
MC146818 updates (mostly SGI-related). |
1472 |
ARCS64 updates (testing with an OpenBSD snapshot in IP27 |
1473 |
mode). This causes Linux/IP30 to not work. Maybe IP27 and |
1474 |
IP30 differ, even though both are 64-bit? |
1475 |
Removing some nonsensical ARCS64 code from machine.c. |
1476 |
Better handling of 128MB and 512MB memory offsets used by |
1477 |
various SGI models. |
1478 |
Trying to revert the ARCS64 changes (OpenBSD/sgi does |
1479 |
seem to be aware of 64-bit vs 32-bit data structures in |
1480 |
_some_ places, but not all), to make Linux/IP30 work again. |
1481 |
Adding "power off" capability to the RTC, as used on IP32 |
1482 |
(and possibly IP30 and others). |
1483 |
Some IP30 updates. |
1484 |
20050117 Debugger updates (symbolic register names instead of just rX, |
1485 |
and using %08x instead of %016llx when emulating 32-bit CPUs |
1486 |
in more places than before). |
1487 |
Removing the dummy sgi_nasid and sgi_cpuinfo devices. |
1488 |
Also using symbolic names for coprocessor 0 registers. |
1489 |
Adding DEV_MP_MEMORY to dev_mp.c. |
1490 |
Adding a 'put' command to the debugger. |
1491 |
ARCBIOS function 0x100 used by IRIX seems to _NOT_ be a |
1492 |
ReturnFromMain(), but something else undocumented. |
1493 |
The count and compare registers are now 32-bit in all |
1494 |
places, as they should be. (This causes, among other things, |
1495 |
OpenBSD/sgi to not hang randomly in userspace anymore.) |
1496 |
On breakpoints, the debugger is now entered _at_ the |
1497 |
instruction at the breakpoint, not after it. |
1498 |
Some cursor keys now work when inputed via X. |
1499 |
Refreshing the MC146818 device a bit more. |
1500 |
20050118 Trying to add some support for less-than-4KB virtual pages, |
1501 |
used by at least VR4131. Thanks to Alexander Yurchenko for |
1502 |
noticing this. (I'm assuming for now that all R41xx work |
1503 |
this way, which is not necessarily true.) It doesn't really |
1504 |
work yet though. |
1505 |
Renicing the "loading files" messages and other things |
1506 |
displayed during startup. |
1507 |
Changing the disassembly output of ori, xori, and andi to |
1508 |
unsigned hex immediate, instead of decimal (as suggested |
1509 |
by Alec Voropay). |
1510 |
configure-script update for HP-UX, and switching from using |
1511 |
inet_aton() to inet_pton() (as suggested by Nils Weller). |
1512 |
Also adding -lnsl on Solaris, if required by inet_pton(). |
1513 |
Lots of minor R4100-related updates. |
1514 |
20050119 Correcting the R4100 config register in src/coproc.c, and |
1515 |
a minor update to dev_vr41xx. |
1516 |
Finally began a redesign/remodelling/cleanup that I have had |
1517 |
in mind for quite some time... moving many things that were |
1518 |
in struct emul into a new struct machine. |
1519 |
Userland emulation now works with bintrans. |
1520 |
Refreshing the LANCE controller (dev_le.c). |
1521 |
Fixing the LK201 keyboard id. |
1522 |
20050120 Continuing on the remodelling/cleanup. |
1523 |
Fixing the SCSI bug (which was triggered sometimes by |
1524 |
NetBSD 2.0/pmax on Linux/i386 hosts). |
1525 |
Adding a speed-limit hack to the mc146818 device when running |
1526 |
in DECstation mode (limiting to emulated 30 MHz clock, so |
1527 |
that Ultrix doesn't freak out). |
1528 |
Adding an ugly workaround for the floating-point bug which |
1529 |
is triggered when running NetBSD/pmax 2.0 on an Alpha host. |
1530 |
The count/compare interrupt will not be triggered now, if |
1531 |
the compare register is left untouched. |
1532 |
Many, many other fixes... |
1533 |
20050121 Continuing the remodelling/cleanup. (Mostly working on the |
1534 |
network stack, and on moving towards multiple emulations |
1535 |
with multiple machines per emulation.) |
1536 |
Fixbug: not clearing lowest parts of lo0 and hi on tlbr |
1537 |
(seems to increase performance when emulating Linux?). |
1538 |
20050122 Continuing the remodelling/cleanup. |
1539 |
Linux on DECstation uses a non-used part of the RTC registers |
1540 |
for the year value; this is supported now, so Linux thinks |
1541 |
it is 2005 and not 2000. |
1542 |
Began hacking on something to reply to Debian's DHCP requests, |
1543 |
but it's not working yet. |
1544 |
20050123 Continuing the remodelling/cleanup. |
1545 |
20050124 Continuing the remodelling/cleanup. |
1546 |
Converting the dev_vga charcell memory to support direct |
1547 |
bintrans access (similar to how dev_fb works), and fixing a |
1548 |
couple of bintrans bugs in the process. |
1549 |
The emulator now compiles under OpenBSD/arc 2.3 without |
1550 |
crashing (mostly due to the bintrans fixes, but also some |
1551 |
minor updates to the configure script). |
1552 |
20050125 Continuing the remodelling/cleanup. |
1553 |
The '-a' option was missing in the Hello World example in the |
1554 |
documentation. (Thanks to Soohyun Cho for noticing this.) |
1555 |
20050126 Continuing the remodelling/cleanup. Moving around stuff in |
1556 |
the header files, etc. Adding a '-K' command line option, which |
1557 |
forces the debugger to be entered at the exit of a simulation, |
1558 |
regardless of failure or success. Beginning to work on the |
1559 |
config file parser. |
1560 |
Splitting doc/index.html into experiments.html, guestoses.html, |
1561 |
intro.html, and misc.html. |
1562 |
Updating the man page and adding a skeleton section about the |
1563 |
configure files to doc/misc.html. |
1564 |
20050127 Minor documentation updates. |
1565 |
20050128 Continuing the remodelling/cleanup, mostly working on the |
1566 |
config file parser (adding a couple of machine words, enough |
1567 |
to run simple emulations, and adding support for multi-line |
1568 |
comments using tuborgs). |
1569 |
Removing some command line options for the least working |
1570 |
emulation modes (-e, -f, -g, -E, -H), adding new -E and -e |
1571 |
options for selecting machine type. |
1572 |
Moving global variables from src/x11.c into struct machine (a |
1573 |
bit buggy, but it seems to almost work). |
1574 |
20050129 Removing the Playstation 2 mode (-B) and hpcmips modes (-F) |
1575 |
from the command line as well. |
1576 |
Changing the -T command line option from meaning "trace on bad |
1577 |
address" to meaning "enter the single-step debugger on bad |
1578 |
address". |
1579 |
More updates to the configuration file parser (nested tuborg |
1580 |
comments, more options, ...). |
1581 |
Making -s a global setting, not just affecting one machine. |
1582 |
Trying to fix the X11 event stuff... but it's so ugly that it |
1583 |
must be rewritten later. |
1584 |
Continuing the multi-emul cleanup. |
1585 |
Bugfixes and other updates to dev_vga. |
1586 |
20050130 Continuing the remodelling/cleanup. Finally moving out the |
1587 |
MIPS dependant stuff of the cpu struct into its own struct. |
1588 |
Renaming cpu.c to cpu_mips.c, and cpu_common.c to cpu.c. |
1589 |
Adding a dummy cpu_ppc.c. |
1590 |
Removing the UltraSPARC bintrans backend. |
1591 |
Many other minor updates. |
1592 |
src/file.c should now be free from MIPS-dependancies. |
1593 |
20050131 Continuing a little bit more on src/file.c. PPC ELFs can now |
1594 |
be loaded, it seems. |
1595 |
Continuing on src/cpu_ppc.c. |
1596 |
'mips' is undefined by the configure script, if it is defined |
1597 |
by default. (Fixes build on at least OpenBSD/arc and |
1598 |
NetBSD/arc, where gcc defines 'mips'.) |
1599 |
A couple of other minor fixes. |
1600 |
Removing the "Changing framebuffer resolution" section from |
1601 |
doc/misc.h (because it's buggy and not very useful anway). |
1602 |
Adding a mystrtoull(), used on systems where there is no |
1603 |
strtoull() in libc. |
1604 |
Adding 'add_x11_display' to the configure file parser |
1605 |
(corresponding to the -z command line option). |
1606 |
Continuing the multi-emul machine cleanup. |
1607 |
20050201 Minor updates (man page, RELEASE, README). |
1608 |
Continuing the cleanup. |
1609 |
Adding a 'name' field to the emul struct, and adding a command |
1610 |
to the debugger ("focus") to make it possible to switch focus |
1611 |
to different machines (in different emuls). |
1612 |
Beginning to work on the PPC disassembler etc. Hello World |
1613 |
for linux-ppc64 can be disassembled :-) |
1614 |
20050202 Adding a hack for reading symbols from Microsoft's variant of |
1615 |
COFF files. |
1616 |
Adding a dummy cpu_sparc.c and include/cpu_sparc.h. |
1617 |
Cleaning up more to support multiple cpu families. |
1618 |
Various other minor updates. |
1619 |
Fixing another old-gcc-on-Alpha problem. |
1620 |
20050203 Bintrans cache size is now variable, settable by a new |
1621 |
configuration file option 'bintrans_size'. |
1622 |
The debugger can now theoretically call disassembler functions |
1623 |
for cpu families with non-fixed instruction word length. |
1624 |
Working more on the mec controller. It now works well enough |
1625 |
to let both NetBSD/sgimips and OpenBSD/sgi connect to the |
1626 |
outside world using ftp :-) |
1627 |
Continuing on the cleanup of the networking subsystem. |
1628 |
20050204 Continuing the cleanup. |
1629 |
Working on a way to use separate xterms for serial ports and |
1630 |
other console input, when emulating multiple machines (or one |
1631 |
machine with multiple serial lines active). |
1632 |
20050205 Minor documentation updates. |
1633 |
20050206 Moving console.c from devices/ to src/, and continuing the |
1634 |
work on using separate windows for each serial console. |
1635 |
Trying to get OpenBSD/sgi to boot with root-on-nfs on an |
1636 |
emulated NetBSD/pmax server, but no success in setting up |
1637 |
the server yet. |
1638 |
20050207 Continuing on the console cleanup. |
1639 |
Adding a 'start_paused' configuration file option, and a |
1640 |
'pause' command to the debugger. |
1641 |
20050208 Everything now builds with --withoutmips. |
1642 |
Continuing on the documentation on how to run OpenBSD/sgi, but |
1643 |
no actual success yet. |
1644 |
sizeof => (int)sizeof in the configure script (as suggested by |
1645 |
Nils Weller). |
1646 |
20050209 Adding a check for -lm to the configure script. |
1647 |
Continuing on the cleanup: trying to make memory_rw non-MIPS |
1648 |
dependant. |
1649 |
Trying to make a better fix for the cdrom-block-size problems |
1650 |
on FreeBSD. (It now works with a Windows NT 4.0 cdrom in my |
1651 |
drive.) |
1652 |
Began a clean-up of the userland subsystem. |
1653 |
20050210 Continuing the userland cleanup. |
1654 |
IBM's Hello World example for Linux/PPC64 runs fine now. |
1655 |
20050211 Continuing the cleanup. Removing the --userland configure |
1656 |
option (because support for userland is always included now). |
1657 |
Working more on getting OpenBSD/sgi to boot with root on |
1658 |
nfs. (Booting with the ramdisk kernel, and mounting root via |
1659 |
nfs works, but not yet from the generic kernel.) |
1660 |
Major update to the manpage. |
1661 |
Removing the -G command line option (SGI modes). |
1662 |
20050212 Updating the documentation (experimental devices: dev_cons |
1663 |
and dev_mp, better hello.c, and some other things). |
1664 |
20050213 Some minor fixes: documentation, 80 columns in some source |
1665 |
files, better configure script options. |
1666 |
Adding some more PPC instructions. |
1667 |
Added a NOFPU flag to the MIPS cpu flags, so that executing |
1668 |
FPU instructions on for example VR4xxx will fail (as suggested |
1669 |
by Alexander Yurchenko). |
1670 |
20050214 Implementing more PPC instructions. |
1671 |
Adding dev_pmppc. |
1672 |
20050215 Continuing the work on PPC emulation. Adding a (mostly non- |
1673 |
working) NetBSD/powerpc userland mode, a (buggy) |
1674 |
show_trace_tree thing (simliar to the MIPS version). |
1675 |
20050216 Continuing... |
1676 |
20050218 Continuing the clean-up. (Merging the devices and devstate |
1677 |
debugger commands, more 80-column cleanup, some documentation |
1678 |
updates, ...). |
1679 |
20050219 Removing the -D, -A, and -a command line options. Updating the |
1680 |
documentation, in preparation for the next release. |
1681 |
Adding interrupt stuff to dev_cons. |
1682 |
Single-stepping now looks/works better with bintrans enabled. |
1683 |
Beginning the first phase of release testing; various minor |
1684 |
updates to make everything build cleanly on Solaris. |
1685 |
20050220 Continuing testing for the release... |
1686 |
|
1687 |
============== RELEASE 0.3 ============== |
1688 |
|
1689 |
20050221 Minor updates. Some more clean-up. |
1690 |
Beginning on the new device registry stuff. |
1691 |
20050222 Continuing on the device stuff, and doing various other kinds |
1692 |
of clean-up. |
1693 |
Adding a dummy BeBox mode. |
1694 |
Making the pc register common for all cpu families. |
1695 |
Adding some more PPC instructions and fixing some bugs. |
1696 |
20050223 Continuing on the BeBox stuff, and adding more instructions. |
1697 |
Adding an ns16550 to the VR4131 emulation (which is probably |
1698 |
a close enough fake to the VR4131's SIU unit). |
1699 |
20050224 Minor updates. Adding dummy PReP, macppc, and DB64360 modes. |
1700 |
Continuing on the device registry rewrite. |
1701 |
20050225 Continuing on the device stuff. |
1702 |
20050226 Continuing more on the device rewrite. |
1703 |
Separating the "testmips" machine into testmips and baremips |
1704 |
(and similarly with the ppc machine). |
1705 |
Redesigning the device registry again :-) |
1706 |
Adding a "device" command to the config file parser. |
1707 |
Adding "device add" and "device remove" to the debugger. |
1708 |
Removing pcidevs.h, because it was almost unused. |
1709 |
20050228 Correcting the Sprite disk image url in the documentation. |
1710 |
20050301 Adding an URISC cpu emulation mode (single-opcode machine). |
1711 |
20050303 Adding some files to the experiments directory (rssb_as.c, |
1712 |
rssb_as.README, urisc_test.s). |
1713 |
Continuing on the device stuff. |
1714 |
20050304 Minor documentation update. Also, the SPARC, PPC, and URISC |
1715 |
modes are now enabled by default in the configure script. |
1716 |
Some minor PPC updates (adding a VGA device to the bebox |
1717 |
emulation mode). |
1718 |
20050305 Moving the static i386 bintrans runchunk code snippet (and the |
1719 |
others) to be dynamically generated. (This allows the code to |
1720 |
compile on i386 with old gcc.) |
1721 |
Loading PPC64 ELFs now sets R2 to the TOC base. |
1722 |
Changing the name of the emulator from mips64emul to GXemul. |
1723 |
Splitting out the configuration file part of the documentation |
1724 |
into its own file (configfiles.html). |
1725 |
20050306 Some really minor documentation updates. |
1726 |
Adding a -D command line option (for "fully deterministic" |
1727 |
behaviour). |
1728 |
20050308 Minor PPC updates. Adding a dummy OpenFirmware emulation layer. |
1729 |
20050309 Adding a hack for systems without inet_pton (such as Cygwin in |
1730 |
Windows) as suggested by Soohyun Cho. (And updating the |
1731 |
configure script too.) |
1732 |
Adding a dummy HPPA cpu family. |
1733 |
Some more OpenFirmware updates. |
1734 |
Faster loading of badly aligned ELF regions. |
1735 |
20050311 Minor updates. Adding a dummy "NEC MobilePro 780" hpcmips |
1736 |
machine mode; disabling direct bintrans access to framebuffers |
1737 |
that are not 4K page aligned. |
1738 |
20050312 Adding an ugly KIU hack to the VR41xx device (which enables |
1739 |
NetBSD/hpcmips MobilePro 780 keyboard input). |
1740 |
20050313 Adding a dummy "pcic" device (a pcmcia card controller). |
1741 |
Adding a dummy Alpha cpu emulation mode. |
1742 |
Fixing a strcmp length bug (thanks to Alexander Yurchenko for |
1743 |
noticing the bug). |
1744 |
20050314 Some minor bintrans-related updates in preparation for a new |
1745 |
bintrans subsystem: command line option -b now means "old |
1746 |
bintrans", -B means "disable bintrans", and using no option at |
1747 |
all selects "new bintrans". |
1748 |
Better generation of MAC addresses when emulating multiple |
1749 |
machines and/or NICs. |
1750 |
Minor documentation updates (regarding configuration files). |
1751 |
20050315 Adding dummy standby, suspend, and hibernate MIPS opcodes. |
1752 |
RTC interrupt hack for VR4121 (hpcmips). |
1753 |
Enough of the pcic is now emulated to let NetBSD/hpcmips detect |
1754 |
a PCMCIA harddisk controller card (but there is no support for |
1755 |
ISA/PCMCIA interrupts yet). |
1756 |
Adding preliminary instructions on how to install |
1757 |
NetBSD/hpcmips. |
1758 |
Continuing the attempt to get harddisks working with interrupts |
1759 |
(pcic, wdc on hpcmips). |
1760 |
20050318 Minor updates. (Fixing disassembly of MIPS bgtz etc., |
1761 |
continuing on the device cleanup, ...) |
1762 |
20050319 Minor updates. |
1763 |
20050320 Minor updates. |
1764 |
20050322 Various minor updates. |
1765 |
20050323 Some more minor updates. |
1766 |
20050328 VR41xx-related updates (keyboard stuff: the space key and |
1767 |
shifted and ctrled keys are now working in userland (ie |
1768 |
NetBSD/hpcmips' ramdisk installer). |
1769 |
Also adding simple cursor key support to the VR41xx kiu. |
1770 |
20050329 Some progress on the wdc. |
1771 |
Updating the documentation of how to (possibly) install |
1772 |
NetBSD/hpcmips, once it is working. |
1773 |
Adding delays before wdc interrupts; this allows NetBSD |
1774 |
2.0/hpcmips to be successfully installed! |
1775 |
Mirroring physical addresses 0x8....... to 0x00000000 on |
1776 |
hpcmips; this makes it possible to run X11 inside |
1777 |
NetBSD/hpcmips :-) |
1778 |
Updating the documentation regarding NetBSD/hpcmips. |
1779 |
Fixing 16-bit vs 15-bit color in dev_fb. |
1780 |
20050330 Print a warning when the user attempts to load a gzipped |
1781 |
file. (Thanks to Juan RP for making me aware of this "bug".) |
1782 |
20050331 Importing aic7xxx_reg.h from NetBSD. |
1783 |
Adding a "-x" command line option, which forces xterms for |
1784 |
each emulated serial port to always be opened. |
1785 |
Adding a MobilePro 770 mode (same as 780, but different |
1786 |
framebuffer address which allows bintrans = fast scrolling), |
1787 |
and a MobilePro 800 (with 800x600 pixels framebuffer :-). |
1788 |
20050401 Minor updates. |
1789 |
20050402 Minor updates. (The standby and suspend instructions are |
1790 |
bintransed as NOPs, and some minor documentation updates.) |
1791 |
20050403 Adding an Agenda VR3 mode, and playing around with a Linux |
1792 |
kernel image, but not much success yet. |
1793 |
Changing BIFB_D16_FFFF -> BIFB_D16_0000 for the hpcmips |
1794 |
framebuffers, causing NetBSD to boot with correct colors. |
1795 |
New syntax for loading raw files: loadaddr:skiplen: |
1796 |
initialpc:filename. (This is necessary to boot the Linux VR3 |
1797 |
kernels.) |
1798 |
The Linux VR3 kernel boots in both serial console mode and |
1799 |
using the framebuffer, but it panics relatively early. |
1800 |
20050404 Continuing on the AHC, and some other minor updates. |
1801 |
20050405 Adding a note in doc/experimental.html about "root1.2.6.cramfs" |
1802 |
(thanks to Alec Voropay for noticing that it wasn't part |
1803 |
of root1.2.6.kernel-8.00). |
1804 |
Also adding a note about another cramfs image. |
1805 |
-o options are now added to the command line passed to the |
1806 |
Linux kernel, when emulating the VR3. |
1807 |
Adding a MobilePro 880 mode, and a dummy IBM WorkPad Z50 mode. |
1808 |
20050406 Connecting the VR3 serial controller to irq 9 (Linux calls this |
1809 |
irq 17), and some other interrupt-related cleanups. |
1810 |
Reducing the memory overhead per bintranslated page. (Hopefully |
1811 |
this makes things faster, or at least not slower...) |
1812 |
20050407 Some more cleanup regarding command line argument passing for |
1813 |
the hpcmips modes. |
1814 |
Playing with Linux kernels for MobilePro 770 and 800; they get |
1815 |
as far as mounting a root filesystem, but then crash. |
1816 |
Doing some testing for the next release. |
1817 |
|
1818 |
============== RELEASE 0.3.1 ============== |
1819 |
|
1820 |
20050408 Some minor updates to the wdc. Linux now doesn't complain |
1821 |
anymore if a disk is non-present. |
1822 |
20050409 Various minor fixes (a bintrans bug, and some other things). |
1823 |
The wdc seems to work with Playstation2 emulation, but there |
1824 |
is a _long_ annoying delay when disks are detected. |
1825 |
Fixing a really important bintrans bug (when devices and RAM |
1826 |
are mixed within 4KB pages), which was triggered with |
1827 |
NetBSD/playstation2 kernels. |
1828 |
20050410 Adding a dummy dev_ps2_ether (just so that NetBSD doesn't |
1829 |
complain as much during bootup). |
1830 |
Symbols starting with '$' are now ignored. |
1831 |
Renaming dev_ps2_ohci.c to dev_ohci.c, etc. |
1832 |
20050411 Moving the bintrans-cache-isolation check from cpu_mips.c to |
1833 |
cpu_mips_coproc.c. (I thought this would give a speedup, but |
1834 |
it's not noticable.) |
1835 |
Better playstation2 sbus interrupt code. |
1836 |
Skip ahead many ticks if the count register is read manually. |
1837 |
(This increases the speed of delay-loops that simply read |
1838 |
the count register.) |
1839 |
20050412 Updates to the playstation2 timer/interrupt code. |
1840 |
Some other minor updates. |
1841 |
20050413 NetBSD/cobalt runs from a disk image :-) including userland; |
1842 |
updating the documentation on how to install NetBSD/cobalt |
1843 |
using NetBSD/pmax (!). |
1844 |
Some minor bintrans updates (no real speed improvement) and |
1845 |
other minor updates (playstation2 now uses the -o options). |
1846 |
20050414 Adding a dummy x86 (and AMD64) mode. |
1847 |
20050415 Adding some (32-bit and 16-bit) x86 instructions. |
1848 |
Adding some initial support for non-SCSI, non-IDE floppy |
1849 |
images. (The x86 mode can boot from these, more or less.) |
1850 |
Moving the devices/ and include/ directories to src/devices/ |
1851 |
and src/include/, respectively. |
1852 |
20050416 Continuing on the x86 stuff. (Adding pc_bios.c and some simple |
1853 |
support for software interrupts in 16-bit mode.) |
1854 |
20050417 Ripping out most of the x86 instruction decoding stuff, trying |
1855 |
to rewrite it in a cleaner way. |
1856 |
Disabling some of the least working CPU families in the |
1857 |
configure script (sparc, x86, alpha, hppa), so that they are |
1858 |
not enabled by default. |
1859 |
20050418 Trying to fix the bug which caused problems when turning on |
1860 |
and off bintrans interactively, by flushing the bintrans cache |
1861 |
whenever bintrans is manually (re)enabled. |
1862 |
20050419 Adding the 'lswi' ppc instruction. |
1863 |
Minor updates to the x86 instruction decoding. |
1864 |
20050420 Renaming x86 register name indices from R_xx to X86_R_xx (this |
1865 |
makes building on Tru64 nicer). |
1866 |
20050422 Adding a check for duplicate MIPS TLB entries on tlbwr/tlbwi. |
1867 |
20050427 Adding screenshots to guestoses.html. |
1868 |
Some minor fixes and testing for the next release. |
1869 |
|
1870 |
============== RELEASE 0.3.2 ============== |
1871 |
|
1872 |
20050428 Disabling the "-fmove-all-movables" option in the configure |
1873 |
script, because it causes the compile to fail on OpenBSD/sgi. |
1874 |
20050502 Minor updates. |
1875 |
20050503 Removing the WRT54G mode (it was bogus anyway), and adding a |
1876 |
comment about Windows NT for MIPS in doc/experiments.html. |
1877 |
Minor updates to the x86 instruction decoding. |
1878 |
20050504 Adding some more x86 instructions. |
1879 |
Adding support for reading files from ISO9660 CDROMs (including |
1880 |
gzipped files). It's an ugly hack, but it seems to work. |
1881 |
Various other minor updates (dev_vga.c, pc_bios.c etc). |
1882 |
20050505 Some more x86-related updates. |
1883 |
Beginning (what I hope will be) a major code cleanup phase. |
1884 |
"bootris" (an x86 bootsector) runs :-) |
1885 |
20050506 Adding some more x86 instructions. |
1886 |
20050507 tmpnam => mkstemp. |
1887 |
Working on a hack to allow VGA charcells to be shown even when |
1888 |
not running with X11. |
1889 |
Adding more x86 instructions. |
1890 |
20050508 x86 32-bit SIB addressing fix, and more instructions. |
1891 |
20050509 Adding more x86 instructions. |
1892 |
20050510 Minor documentation updates, and other updates (x86 stuff etc.) |
1893 |
20050511 More x86-related updates. |
1894 |
20050513 Various updates, mostly x86-related. (Trying to fix flag |
1895 |
calculation, factoring out the ugly shift/rotate code, and |
1896 |
some other things.) |
1897 |
20050514 Adding support for loading some old i386 a.out executables. |
1898 |
Finally beginning the cleanup of machine/PROM/bios dependant |
1899 |
info. |
1900 |
Some minor documentation updates. |
1901 |
Trying to clean up ARCBIOS stuff a little. |
1902 |
20050515 Trying to make it possible to actually use more than one disk |
1903 |
type per machine (floppy, ide, scsi). |
1904 |
Trying to clean up the kbd vs PROM console stuff. (For PC and |
1905 |
ARC emulation modes, mostly.) |
1906 |
Beginning to add an 8259 interrupt controller, and connecting |
1907 |
it to the x86 emulation. |
1908 |
20050516 The first x86 interrupts seem to work (keyboard stuff). |
1909 |
Adding a 8253/8254 programmable interval timer skeleton. |
1910 |
FreeDOS now reaches a command prompt and can be interacted |
1911 |
with. |
1912 |
20050517 After some bugfixes, MS-DOS also (sometimes) reaches a |
1913 |
command prompt now. |
1914 |
Trying to fix the pckbc to work with MS-DOS' keyb.com, but no |
1915 |
success yet. |
1916 |
20050518 Adding a simple 32-bit x86 MMU skeleton. |
1917 |
20050519 Some more work on the x86 stuff. (Beginning the work on paging, |
1918 |
and various other fixes). |
1919 |
20050520 More updates. Working on dev_vga (4-bit graphics modes), adding |
1920 |
40 columns support to the PC bios emulation. |
1921 |
Trying to add support for resizing windows when switching |
1922 |
between graphics modes. |
1923 |
20050521 Many more x86-related updates. |
1924 |
20050522 Correcting the initial stack pointer's sign-extension for |
1925 |
ARCBIOS emulation (thanks to Alec Voropay for noticing the |
1926 |
error). |
1927 |
Continuing on the cleanup (ARCBIOS etc). |
1928 |
dev_vga updates. |
1929 |
20050523 More x86 updates: trying to add some support for protected mode |
1930 |
interrupts (via gate descriptors) and many other fixes. |
1931 |
More ARCBIOS cleanup. |
1932 |
Adding a device flag which indicates that reads cause no |
1933 |
side-effects. (Useful for the "dump" command in the debugger, |
1934 |
and other things.) |
1935 |
Adding support for directly starting up x86 ELFs, skipping the |
1936 |
bootloader stage. (Most ELFs, however, are not suitable for |
1937 |
this.) |
1938 |
20050524 Adding simple 32-bit x86 TSS task switching, but no privilege |
1939 |
level support yet. |
1940 |
More work on dev_vga. A small "Copper bars" demo works. :-) |
1941 |
Adding support for Trap Flag (single-step exceptions), at least |
1942 |
in real mode, and various other x86-related fixes. |
1943 |
20050525 Adding a new disk image prefix (gH;S;) which can be used to |
1944 |
override the default nr of heads and sectors per track. |
1945 |
20050527 Various bug fixes, more work on the x86 mode (stack change on |
1946 |
interrupts between different priv.levels), and some minor |
1947 |
documentation updates. |
1948 |
20050528 Various fixes (x86 stuff). |
1949 |
20050529 More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland |
1950 |
and can be interacted with (although there are problems with |
1951 |
key repetition). NetBSD/i386 triggers a serious CISC-related |
1952 |
problem: instruction fetches across page boundaries, where |
1953 |
the later part isn't actually part of the instruction. |
1954 |
20050530 Various minor updates. (Documentation updates, etc.) |
1955 |
20050531 Adding some experimental code (experiments/new_test_*) which |
1956 |
could be useful for dynamic (but not binary) translation in |
1957 |
the future. |
1958 |
20050602 Adding a dummy ARM skeleton. |
1959 |
Fixing the pckbc key repetition problem (by adding release |
1960 |
scancodes for all keypresses). |
1961 |
20050603 Minor updates for the next release. |
1962 |
20050604 Release testing. Minor updates. |
1963 |
|
1964 |
============== RELEASE 0.3.3 ============== |
1965 |
|
1966 |
20050604 There'll probably be a 0.3.3.1 release soon, with some very |
1967 |
very tiny updates. |
1968 |
|
1969 |
============== RELEASE 0.3.3.1 ============== |
1970 |
|
1971 |
20050609 Adding simple MIPS IPIs (to dev_mp). |
1972 |
20050611 Adding an ugly hack to track down low-reference bugs |
1973 |
(define TRACE_NULL_CRASHES, or configure --tracenull). |
1974 |
Other minor updates. |
1975 |
20050612 Adding a dummy evbmips mode. |
1976 |
|
1977 |
============== RELEASE 0.3.3.2 ============== |
1978 |
|