1 |
dpavlin |
30 |
$Id: HISTORY,v 1.1325 2006/08/15 15:38:37 debug Exp $ |
2 |
dpavlin |
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 |
dpavlin |
4 |
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 |
dpavlin |
6 |
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 |
dpavlin |
8 |
============== 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 |
|
|
|
1979 |
dpavlin |
10 |
20050617 Experimenting some more with netbooting OpenBSD/sgi. Adding |
1980 |
|
|
a hack which allows emulated ethernet networks to be |
1981 |
|
|
distributed across multiple emulator processes. |
1982 |
|
|
20050618 Minor updates (documentation, dummy YAMON emulation, etc). |
1983 |
|
|
20050620 strcpy/strcat -> strlcpy/strlcat updates. |
1984 |
|
|
Some more progress on evbmips (Malta). |
1985 |
|
|
20050621 Adding a section to doc/configfiles.html about ethernet |
1986 |
|
|
emulation across multiple hosts. |
1987 |
|
|
Beginning the work on the ARM translation engine (using the |
1988 |
|
|
dynamic-but-not-binary translation method). |
1989 |
|
|
Fixing a bintrans bug: 0x9fc00000 should always be treated as |
1990 |
|
|
PROM area, just as 0xbfc00000 is. |
1991 |
|
|
Minor progress on Malta emulation (the PCI-ISA bus). |
1992 |
|
|
20050622 NetBSD/evbmips can now be installed (using another emulated |
1993 |
|
|
machine) and run (including userland and so on). :-) |
1994 |
|
|
Spliting up the bintrans haddr_entry field into two (one for |
1995 |
|
|
read, one for write). Probably not much of a speed increase, |
1996 |
|
|
though. |
1997 |
|
|
Updating some NetBSD 2.0 -> 2.0.2 in the documentation. |
1998 |
|
|
20050623 Minor updates (documentation, the TODO file, etc). |
1999 |
|
|
gzipped kernels are now always automagically gunzipped when |
2000 |
|
|
loaded. |
2001 |
|
|
20050624 Adding a dummy Playstation Portable (PSP) mode, just barely |
2002 |
|
|
enough to run Hello World (in weird colors :-). |
2003 |
|
|
Removing the -b command line option; old bintrans is enabled |
2004 |
|
|
by default instead. It makes more sense. |
2005 |
|
|
Trying to finally fix the non-working performance measurement |
2006 |
|
|
thing (instr/second etc). |
2007 |
|
|
20050625 Continuing on the essential basics for ARM emulation. Two |
2008 |
|
|
instructions seem to work, a branch and a simple "mov". (The |
2009 |
|
|
mov arguments are not correct yet.) Performance is definitely |
2010 |
|
|
reasonable. |
2011 |
|
|
Various other minor updates. |
2012 |
|
|
Adding the ARM "bl" instruction. |
2013 |
|
|
Adding support for combining multiple ARM instructions into one |
2014 |
|
|
function call. ("mov" + "mov" is the only one implemented so |
2015 |
|
|
far, but it seems to work.) |
2016 |
|
|
Cleaning up some IP32 interrupt things (crime/mace); disabling |
2017 |
|
|
the PS/2 keyboard controller on IP32, so that NetBSD/sgimips |
2018 |
|
|
boots into userland again. |
2019 |
|
|
20050626 Finally! NetBSD/sgimips netboots. Adding instructions to |
2020 |
|
|
doc/guestoses.html on how to set up an nfs server etc. |
2021 |
|
|
Various other minor fixes. |
2022 |
|
|
Playstation Portable ".pbp" files can now be used directly. |
2023 |
|
|
(The ELF part of the .pbp is extracted transparently.) |
2024 |
|
|
Converting some sprintf -> snprintf. |
2025 |
|
|
Adding some more instructions to the ARM disassembler. |
2026 |
|
|
20050627 More ARM updates. Adding some simple ldr(b), str(b), |
2027 |
|
|
cmps, and conditional branch instructions, enough to run |
2028 |
|
|
a simple Hello World program. |
2029 |
|
|
All ARM instructions are now inlined/generated for all possible |
2030 |
|
|
condition codes. |
2031 |
|
|
Adding add and sub, and more load/store instructions. |
2032 |
|
|
Removing dummy files: cpu_alpha.c, cpu_hppa.c, and cpu_sparc.c. |
2033 |
|
|
Some minor documentation updates; preparing for a 0.3.4 |
2034 |
|
|
release. Updating some URLs. |
2035 |
|
|
|
2036 |
|
|
============== RELEASE 0.3.4 ============== |
2037 |
|
|
|
2038 |
dpavlin |
12 |
20050628 Continuing the work on the ARM translation engine. end_of_page |
2039 |
|
|
works. Experimenting with load/store translation caches |
2040 |
|
|
(virtual -> physical -> host). |
2041 |
|
|
20050629 More ARM stuff (memory access translation cache, mostly). This |
2042 |
|
|
might break a lot of stuff elsewhere, probably some MIPS- |
2043 |
|
|
related translation things. |
2044 |
|
|
20050630 Many load/stores are now automatically generated and included |
2045 |
|
|
into cpu_arm_instr.c; 1024 functions in total (!). |
2046 |
|
|
Fixes based on feedback from Alec Voropay: only print 8 hex |
2047 |
|
|
digits instead of 16 in some cases when emulating 32-bit |
2048 |
|
|
machines; similar 8 vs 16 digit fix for breakpoint addresses; |
2049 |
|
|
4Kc has 16 TLB entries, not 48; the MIPS config select1 |
2050 |
|
|
register is now printed with "reg ,0". |
2051 |
|
|
Also changing many other occurances of 16 vs 8 digit output. |
2052 |
|
|
Adding cache associativity fields to mips_cpu_types.h; updating |
2053 |
|
|
some other cache fields; making the output of |
2054 |
|
|
mips_cpu_dumpinfo() look nicer. |
2055 |
|
|
Generalizing the bintrans stuff for device accesses to also |
2056 |
|
|
work with the new translation system. (This might also break |
2057 |
|
|
some MIPS things.) |
2058 |
|
|
Adding multi-load/store instructions to the ARM disassembler |
2059 |
|
|
and the translator, and some optimizations of various kinds. |
2060 |
|
|
20050701 Adding a simple dev_disk (it can read/write sectors from |
2061 |
|
|
disk images). |
2062 |
|
|
20050712 Adding dev_ether (a simple ethernet send/receive device). |
2063 |
|
|
Debugger command "ninstrs" for toggling show_nr_of_instructions |
2064 |
|
|
during runtime. |
2065 |
|
|
Removing the framebuffer logo. |
2066 |
|
|
20050713 Continuing on dev_ether. |
2067 |
|
|
Adding a dummy cpu_alpha (again). |
2068 |
|
|
20050714 More work on cpu_alpha. |
2069 |
|
|
20050715 More work on cpu_alpha. Many instructions work, enough to run |
2070 |
|
|
a simple framebuffer fill test (similar to the ARM test). |
2071 |
|
|
20050716 More Alpha stuff. |
2072 |
|
|
20050717 Minor updates (Alpha stuff). |
2073 |
|
|
20050718 Minor updates (Alpha stuff). |
2074 |
|
|
20050719 Generalizing some Alpha instructions. |
2075 |
|
|
20050720 More Alpha-related updates. |
2076 |
|
|
20050721 Continuing on cpu_alpha. Importing rpb.h from NetBSD/alpha. |
2077 |
|
|
20050722 Alpha-related updates: userland stuff (Hello World using |
2078 |
|
|
write() compiled statically for FreeBSD/Alpha runs fine), and |
2079 |
|
|
more instructions are now implemented. |
2080 |
|
|
20050723 Fixing ldq_u and stq_u. |
2081 |
|
|
Adding more instructions (conditional moves, masks, extracts, |
2082 |
|
|
shifts). |
2083 |
|
|
20050724 More FreeBSD/Alpha userland stuff, and adding some more |
2084 |
|
|
instructions (inserts). |
2085 |
|
|
20050725 Continuing on the Alpha stuff. (Adding dummy ldt/stt.) |
2086 |
|
|
Adding a -A command line option to turn off alignment checks |
2087 |
|
|
in some cases (for translated code). |
2088 |
|
|
Trying to remove the old bintrans code which updated the pc |
2089 |
|
|
and nr_of_executed_instructions for every instruction. |
2090 |
|
|
20050726 Making another attempt att removing the pc/nr of instructions |
2091 |
|
|
code. This time it worked, huge performance increase for |
2092 |
|
|
artificial test code, but performance loss for real-world |
2093 |
|
|
code :-( so I'm scrapping that code for now. |
2094 |
|
|
Tiny performance increase on Alpha (by using ret instead of |
2095 |
|
|
jmp, to play nice with the Alpha's branch prediction) for the |
2096 |
|
|
old MIPS bintrans backend. |
2097 |
|
|
20050727 Various minor fixes and cleanups. |
2098 |
|
|
20050728 Switching from a 2-level virtual to host/physical translation |
2099 |
|
|
system for ARM emulation, to a 1-level translation. |
2100 |
|
|
Trying to switch from 2-level to 1-level for the MIPS bintrans |
2101 |
|
|
system as well (Alpha only, so far), but there is at least one |
2102 |
|
|
problem: caches and/or how they work with device mappings. |
2103 |
|
|
20050730 Doing the 2-level to 1-level conversion for the i386 backend. |
2104 |
|
|
The cache/device bug is still there for R2K/3K :( |
2105 |
|
|
Various other minor updates (Malta etc). |
2106 |
|
|
The mc146818 clock now updates the UIP bit in a way which works |
2107 |
|
|
better with Linux for at least sgimips and Malta emulation. |
2108 |
|
|
Beginning the work on refactoring the dyntrans system. |
2109 |
|
|
20050731 Continuing the dyntrans refactoring. |
2110 |
|
|
Fixing a small but serious host alignment bug in memory_rw. |
2111 |
|
|
Adding support for big-endian load/stores to the i386 bintrans |
2112 |
|
|
backend. |
2113 |
|
|
Another minor i386 bintrans backend update: stores from the |
2114 |
|
|
zero register are now one (or two) loads shorter. |
2115 |
|
|
The slt and sltu instructions were incorrectly implemented for |
2116 |
|
|
the i386 backend; only using them for 32-bit mode for now. |
2117 |
|
|
20050801 Continuing the dyntrans refactoring. |
2118 |
|
|
Cleanup of the ns16550 serial controller (removing unnecessary |
2119 |
|
|
code). |
2120 |
|
|
Bugfix (memory corruption bug) in dev_gt, and a patch/hack from |
2121 |
|
|
Alec Voropay for Linux/Malta. |
2122 |
|
|
20050802 More cleanup/refactoring of the dyntrans subsystem: adding |
2123 |
|
|
phys_page pointers to the lookup tables, for quick jumps |
2124 |
|
|
between translated pages. |
2125 |
|
|
Better fix for the ns16550 device (but still no real FIFO |
2126 |
|
|
functionality). |
2127 |
|
|
Converting cpu_ppc to the new dyntrans system. This means that |
2128 |
|
|
I will have to start from scratch with implementing each |
2129 |
|
|
instruction, and figure out how to implement dual 64/32-bit |
2130 |
|
|
modes etc. |
2131 |
|
|
Removing the URISC CPU family, because it was useless. |
2132 |
|
|
20050803 When selecting a machine type, the main type can now be omitted |
2133 |
|
|
if the subtype name is unique. (I.e. -E can be omitted.) |
2134 |
|
|
Fixing a dyntrans/device update bug. (Writes to offset 0 of |
2135 |
|
|
a device could sometimes go unnoticed.) |
2136 |
|
|
Adding an experimental "instruction combination" hack for |
2137 |
|
|
ARM for memset-like byte fill loops. |
2138 |
|
|
20050804 Minor progress on cpu_alpha and related things. |
2139 |
|
|
Finally fixing the MIPS dmult/dmultu bugs. |
2140 |
|
|
Fixing some minor TODOs. |
2141 |
|
|
20050805 Generalizing the 8259 PIC. It now also works with Cobalt |
2142 |
|
|
and evbmips emulation, in addition to the x86 hack. |
2143 |
|
|
Finally converting the ns16550 device to use devinit. |
2144 |
|
|
Continuing the work on the dyntrans system. Thinking about |
2145 |
|
|
how to add breakpoints. |
2146 |
|
|
20050806 More dyntrans updates. Breakpoints seem to work now. |
2147 |
|
|
20050807 Minor updates: cpu_alpha and related things; removing |
2148 |
|
|
dev_malta (as it isn't used any more). |
2149 |
|
|
Dyntrans: working on general "show trace tree" support. |
2150 |
|
|
The trace tree stuff now works with both the old MIPS code and |
2151 |
|
|
with newer dyntrans modes. :) |
2152 |
|
|
Continuing on Alpha-related stuff (trying to get *BSD to boot |
2153 |
|
|
a bit further, adding more instructions, etc). |
2154 |
|
|
20050808 Adding a dummy IA64 cpu family, and continuing the refactoring |
2155 |
|
|
of the dyntrans system. |
2156 |
|
|
Removing the regression test stuff, because it was more or |
2157 |
|
|
less useless. |
2158 |
|
|
Adding loadlinked/storeconditional type instructions to the |
2159 |
|
|
Alpha emulation. (Needed for Linux/alpha. Not very well tested |
2160 |
|
|
yet.) |
2161 |
|
|
20050809 The function call trace tree now prints a per-function nr of |
2162 |
|
|
arguments. (Semi-meaningless, since that data isn't read yet |
2163 |
|
|
from the ELFs; some hardcoded symbols such as memcpy() and |
2164 |
|
|
strlen() work fine, though.) |
2165 |
|
|
More dyntrans refactoring; taking out more of the things that |
2166 |
|
|
are common to all cpu families. |
2167 |
|
|
20050810 Working on adding support for "dual mode" for PPC dyntrans |
2168 |
|
|
(i.e. both 64-bit and 32-bit modes). |
2169 |
|
|
(Re)adding some simple PPC instructions. |
2170 |
|
|
20050811 Adding a dummy M68K cpu family. The dyntrans system isn't ready |
2171 |
|
|
for variable-length ISAs yet, so it's completely bogus so far. |
2172 |
|
|
Re-adding more PPC instructions. |
2173 |
|
|
Adding a hack to src/file.c which allows OpenBSD/mac68k a.out |
2174 |
|
|
kernels to be loaded. |
2175 |
|
|
Beginning to add PPC loads/stores. So far they only work in |
2176 |
|
|
32-bit mode. |
2177 |
|
|
20050812 The configure file option "add_remote" now accepts symbolic |
2178 |
|
|
host names, in addition to numeric IPv4 addresses. |
2179 |
|
|
Re-adding more PPC instructions. |
2180 |
|
|
20050814 Continuing to port back more PPC instructions. |
2181 |
|
|
Found and fixed the cache/device write-update bug for 32-bit |
2182 |
|
|
MIPS bintrans. :-) |
2183 |
|
|
Triggered a really weird and annoying bug in Compaq's C |
2184 |
|
|
compiler; ccc sometimes outputs code which loads from an |
2185 |
|
|
address _before_ checking whether the pointer was NULL or not. |
2186 |
|
|
(I'm not sure how to handle this problem.) |
2187 |
|
|
20050815 Removing all of the old x86 instruction execution code; adding |
2188 |
|
|
a new (dummy) dyntrans module for x86. |
2189 |
|
|
Taking the first steps to extend the dyntrans system to support |
2190 |
|
|
variable-length instructions. |
2191 |
|
|
Slowly preparing for the next release. |
2192 |
|
|
20050816 Adding a dummy SPARC cpu module. |
2193 |
|
|
Minor updates (documentation etc) for the release. |
2194 |
|
|
|
2195 |
|
|
============== RELEASE 0.3.5 ============== |
2196 |
|
|
|
2197 |
dpavlin |
14 |
20050816 Some success in decoding the way the SGI O2 PROM draws graphics |
2198 |
|
|
during bootup; lines/rectangles and bitmaps work, enough to |
2199 |
|
|
show the bootlogo etc. :-) |
2200 |
|
|
Adding more PPC instructions, and (dummy) BAT registers. |
2201 |
|
|
20050817 Updating the pckbc to support scancode type 3 keyboards |
2202 |
|
|
(required in order to interact with the SGI O2 PROM). |
2203 |
|
|
Adding more PPC instructions. |
2204 |
|
|
20050818 Adding more ARM instructions; general register forms. |
2205 |
|
|
Importing armreg.h from NetBSD (ARM cpu ids). Adding a (dummy) |
2206 |
|
|
CATS machine mode (using SA110 as the default CPU). |
2207 |
|
|
Continuing on general dyntrans related stuff. |
2208 |
|
|
20050819 Register forms for ARM load/stores. Gaah! The Compaq C Compiler |
2209 |
|
|
bug is triggered for ARM loads as well, not just PPC :-( |
2210 |
|
|
Adding full support for ARM PC-relative load/stores, and load/ |
2211 |
|
|
stores where the PC register is the destination register. |
2212 |
|
|
Adding support for ARM a.out binaries. |
2213 |
|
|
20050820 Continuing to add more ARM instructions, and correcting some |
2214 |
|
|
bugs. Continuing on CATS emulation. |
2215 |
|
|
More work on the PPC stuff. |
2216 |
|
|
20050821 Minor PPC and ARM updates. Adding more machine types. |
2217 |
|
|
20050822 All ARM "data processing instructions" are now generated |
2218 |
|
|
automatically. |
2219 |
|
|
20050824 Beginning the work on the ARM system control coprocessor. |
2220 |
|
|
Adding support for ARM halfword load/stores, and signed loads. |
2221 |
|
|
20050825 Fixing an important bug related to the ARM condition codes. |
2222 |
|
|
OpenBSD/zaurus and NetBSD/netwinder now print some boot |
2223 |
|
|
messages. :) |
2224 |
|
|
Adding a dummy SH (Hitachi SuperH) cpu family. |
2225 |
|
|
Beginning to add some ARM virtual address translation. |
2226 |
|
|
MIPS bugfixes: unaligned PC now cause an ADEL exception (at |
2227 |
|
|
least for non-bintrans execution), and ADEL/ADES (not |
2228 |
|
|
TLBL/TLBS) are used if userland tries to access kernel space. |
2229 |
|
|
(Thanks to Joshua Wise for making me aware of these bugs.) |
2230 |
|
|
20050827 More work on the ARM emulation, and various other updates. |
2231 |
|
|
20050828 More ARM updates. |
2232 |
|
|
Finally taking the time to work on translation invalidation |
2233 |
|
|
(i.e. invalidating translated code mappings when memory is |
2234 |
|
|
written to). Hopefully this doesn't break anything. |
2235 |
|
|
20050829 Moving CPU related files from src/ to a new subdir, src/cpus/. |
2236 |
|
|
Moving PROM emulation stuff from src/ to src/promemul/. |
2237 |
|
|
Better debug instruction trace for ARM loads and stores. |
2238 |
|
|
20050830 Various ARM updates (correcting CMP flag calculation, etc). |
2239 |
|
|
20050831 PPC instruction updates. (Flag fixes, etc.) |
2240 |
|
|
20050901 Various minor PPC and ARM instruction emulation updates. |
2241 |
|
|
Minor OpenFirmware emulation updates. |
2242 |
|
|
20050903 Adding support for adding arbitrary ARM coprocessors (with |
2243 |
|
|
the i80321 I/O coprocessor as a first test). |
2244 |
|
|
Various other ARM and PPC updates. |
2245 |
|
|
20050904 Adding some SHcompact disassembly routines. |
2246 |
|
|
20050907 (Re)adding a dummy HPPA CPU module, and a dummy i960 module. |
2247 |
|
|
20050908 Began hacking on some Apple Partition Table support. |
2248 |
|
|
20050909 Adding support for loading Mach-O (Darwin PPC) binaries. |
2249 |
|
|
20050910 Fixing an ARM bug (Carry flag was incorrectly updated for some |
2250 |
|
|
data processing instructions); OpenBSD/cats and NetBSD/ |
2251 |
|
|
netwinder get quite a bit further now. |
2252 |
|
|
Applying a patch to dev_wdc, and a one-liner to dev_pcic, to |
2253 |
|
|
make them work better when emulating new versions of OpenBSD. |
2254 |
|
|
(Thanks to Alexander Yurchenko for the patches.) |
2255 |
|
|
Also doing some other minor updates to dev_wdc. (Some cleanup, |
2256 |
|
|
and finally converting to devinit, etc.) |
2257 |
|
|
20050912 IRIX doesn't have u_int64_t by default (noticed by Andreas |
2258 |
|
|
<avr@gnulinux.nl>); configure updated to reflect this. |
2259 |
|
|
Working on ARM register bank switching, CPSR vs SPSR issues, |
2260 |
|
|
and beginning the work on interrupt/exception support. |
2261 |
|
|
20050913 Various minor ARM updates (speeding up load/store multiple, |
2262 |
|
|
and fixing a ROR bug in R(); NetBSD/cats now boots as far as |
2263 |
|
|
OpenBSD/cats). |
2264 |
|
|
20050917 Adding a dummy Atmel AVR (8-bit) cpu family skeleton. |
2265 |
|
|
20050918 Various minor updates. |
2266 |
|
|
20050919 Symbols are now loaded from Mach-O executables. |
2267 |
|
|
Continuing the work on adding ARM exception support. |
2268 |
|
|
20050920 More work on ARM stuff: OpenBSD/cats and NetBSD/cats reach |
2269 |
|
|
userland! :-) |
2270 |
|
|
20050921 Some more progress on ARM interrupt specifics. |
2271 |
|
|
20050923 Fixing linesize for VR4121 (patch by Yurchenko). Also fixing |
2272 |
|
|
linesizes/cachesizes for some other VR4xxx. |
2273 |
|
|
Adding a dummy Acer Labs M1543 PCI-ISA bridge (for CATS) and a |
2274 |
|
|
dummy Symphony Labs 83C553 bridge (for Netwinder), usable by |
2275 |
|
|
dev_footbridge. |
2276 |
|
|
20050924 Some PPC progress. |
2277 |
|
|
20050925 More PPC progress. |
2278 |
|
|
20050926 PPC progress (fixing some bugs etc); Darwin's kernel gets |
2279 |
|
|
slightly further than before. |
2280 |
|
|
20050928 Various updates: footbridge/ISA/pciide stuff, and finally |
2281 |
|
|
fixing the VGA text scroll-by-changing-the-base-offset bug. |
2282 |
|
|
20050930 Adding a dummy S3 ViRGE pci card for CATS emulation, which |
2283 |
|
|
both NetBSD and OpenBSD detects as VGA. |
2284 |
|
|
Continuing on Footbridge (timers, ISA interrupt stuff). |
2285 |
|
|
20051001 Continuing... there are still bugs, probably interrupt- |
2286 |
|
|
related. |
2287 |
|
|
20051002 More work on the Footbridge (interrupt stuff). |
2288 |
|
|
20051003 Various minor updates. (Trying to find the bug(s).) |
2289 |
|
|
20051004 Continuing on the ARM stuff. |
2290 |
|
|
20051005 More ARM-related fixes. |
2291 |
|
|
20051007 FINALLY! Found and fixed 2 ARM bugs: 1 memory related, and the |
2292 |
|
|
other was because of an error in the ARM manual (load multiple |
2293 |
|
|
with the S-bit set should _NOT_ load usermode registers, as the |
2294 |
|
|
manual says, but it should load saved registers, which may or |
2295 |
|
|
may not happen to be usermode registers). |
2296 |
|
|
NetBSD/cats and OpenBSD/cats seem to install fine now :-) |
2297 |
|
|
except for a minor bug at the end of the OpenBSD/cats install. |
2298 |
|
|
Updating the documentation, preparing for the next release. |
2299 |
|
|
20051008 Continuing with release testing and cleanup. |
2300 |
dpavlin |
16 |
|
2301 |
|
|
============== RELEASE 0.3.6 ============== |
2302 |
|
|
|
2303 |
|
|
20051008 The bug was not because of faulty ARM documentation after all, |
2304 |
|
|
but it was related to those parts of the code. |
2305 |
|
|
Fixing the RTC (dev_mc146818) to work with CATS. |
2306 |
|
|
20051009 Rewriting the R() function; now there are 8192 automatically |
2307 |
|
|
generated smaller functions doing the same thing, but hopefully |
2308 |
|
|
faster. This also fixes some bugs which were triggered when |
2309 |
|
|
trying to compile GXemul inside itself. :-) |
2310 |
|
|
Adding a dummy dev_lpt. |
2311 |
|
|
20051010 Small hack to not update virtual translation tables if memory |
2312 |
|
|
accesses are done with the NO_EXCEPTION flag; a time reduction |
2313 |
|
|
of almost a factor 2 for a full NetBSD/cats install. :-) |
2314 |
dpavlin |
18 |
20051011 Passing -A as the default boot arg for CATS (works fine with |
2315 |
|
|
OpenBSD/cats). |
2316 |
dpavlin |
16 |
|
2317 |
|
|
============== RELEASE 0.3.6.1 ============== |
2318 |
|
|
|
2319 |
dpavlin |
18 |
20051012 Fixing the VGA cursor offset bug, and speeding up framebuffer |
2320 |
|
|
redraws if character cells contain the same thing as during |
2321 |
|
|
the last redraw. |
2322 |
|
|
20051013 Adding a slow strd ARM instruction hack. |
2323 |
|
|
20051017 Minor updates: Adding a dummy i80321 Verde controller (for |
2324 |
|
|
XScale emulation), fixing the disassembly of the ARM "ldrd" |
2325 |
|
|
instruction, adding "support" for less-than-4KB pages for ARM |
2326 |
|
|
(by not adding them to translation tables). |
2327 |
|
|
20051020 Continuing on some HPCarm stuff. A NetBSD/hpcarm kernel prints |
2328 |
|
|
some boot messages on an emulated Jornada 720. |
2329 |
|
|
Making dev_ram work better with dyntrans (speeds up some things |
2330 |
|
|
quite a bit). |
2331 |
|
|
20051021 Automatically generating some of the most common ARM load/store |
2332 |
|
|
multiple instructions. |
2333 |
|
|
20051022 Better statistics gathering for the ARM load/store multiple. |
2334 |
|
|
Various other dyntrans and device updates. |
2335 |
|
|
20051023 Various minor updates. |
2336 |
|
|
20051024 Continuing; minor device and dyntrans fine-tuning. Adding the |
2337 |
|
|
first "reasonable" instruction combination hacks for ARM (the |
2338 |
|
|
cores of NetBSD/cats' memset and memcpy). |
2339 |
|
|
20051025 Fixing a dyntrans-related bug in dev_vga. Also changing the |
2340 |
|
|
dyntrans low/high access notification to only be updated on |
2341 |
|
|
writes, not reads. Hopefully it will be enough. (dev_vga in |
2342 |
|
|
charcell mode now seems to work correctly with both reads and |
2343 |
|
|
writes.) |
2344 |
|
|
Experimenting with gathering dyntrans statistics (which parts |
2345 |
|
|
of emulated RAM that are actually executed), and adding |
2346 |
|
|
instruction combination hacks for cache cleaning and a part of |
2347 |
|
|
NetBSD's scanc() function. |
2348 |
|
|
20051026 Adding a bitmap for ARM emulation which indicates if a page is |
2349 |
|
|
(specifically) user accessible; loads and stores with the t- |
2350 |
|
|
flag set can now use the translation arrays, which results in |
2351 |
|
|
a measurable speedup. |
2352 |
|
|
20051027 Dyntrans updates; adding an extra bitmap array for 32-bit |
2353 |
|
|
emulation modes, speeding up the check whether a physical page |
2354 |
|
|
has any code translations or not (O(n) -> O(1)). Doing a |
2355 |
|
|
similar reduction of O(n) to O(1) by avoiding the scan through |
2356 |
|
|
the translation entries on a translation update (32-bit mode |
2357 |
|
|
only). |
2358 |
|
|
Various other minor hacks. |
2359 |
|
|
20051029 Quick release, without any testing at all. |
2360 |
|
|
|
2361 |
|
|
============== RELEASE 0.3.6.2 ============== |
2362 |
|
|
|
2363 |
dpavlin |
20 |
20051031 Adding disassembly support for more ARM instructions (clz, |
2364 |
|
|
smul* etc), and adding a hack to support "new tiny" pages |
2365 |
|
|
for StrongARM. |
2366 |
|
|
20051101 Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD |
2367 |
|
|
3.7 -> 3.8, and lots of testing). |
2368 |
|
|
Changing from 1-sector PIO mode 0 transfers to 128-sector PIO |
2369 |
|
|
mode 3 (in dev_wdc). |
2370 |
|
|
Various minor ARM dyntrans updates (pc-relative loads from |
2371 |
|
|
within the same page as the instruction are now treated as |
2372 |
|
|
constant "mov"). |
2373 |
|
|
20051102 Re-enabling instruction combinations (they were accidentally |
2374 |
|
|
disabled). |
2375 |
|
|
Dyntrans TLB entries are now overwritten using a round-robin |
2376 |
|
|
scheme instead of randomly. This increases performance. |
2377 |
|
|
Fixing a typo in file.c (thanks to Chuan-Hua Chang for |
2378 |
|
|
noticing it). |
2379 |
|
|
Experimenting with adding ATAPI support to dev_wdc (to make |
2380 |
|
|
emulated *BSD detect cdroms as cdroms, not harddisks). |
2381 |
|
|
20051104 Various minor updates. |
2382 |
|
|
20051105 Continuing on the ATAPI emulation. Seems to work well enough |
2383 |
|
|
for a NetBSD/cats installation, but not OpenBSD/cats. |
2384 |
|
|
Various other updates. |
2385 |
|
|
20051106 Modifying the -Y command line option to allow scaleup with |
2386 |
|
|
certain graphic controllers (only dev_vga so far), not just |
2387 |
|
|
scaledown. |
2388 |
|
|
Some minor dyntrans cleanups. |
2389 |
|
|
20051107 Beginning a cleanup up the PCI subsystem (removing the |
2390 |
|
|
read_register hack, etc). |
2391 |
|
|
20051108 Continuing the cleanup; splitting up some pci devices into a |
2392 |
|
|
normal autodev device and some separate pci glue code. |
2393 |
|
|
20051109 Continuing on the PCI bus stuff; all old pci_*.c have been |
2394 |
|
|
incorporated into normal devices and/or rewritten as glue code |
2395 |
|
|
only, adding a dummy Intel 82371AB PIIX4 for Malta (not really |
2396 |
|
|
tested yet). |
2397 |
|
|
Minor pckbc fix so that Linux doesn't complain. |
2398 |
|
|
Working on the DEC 21143 NIC (ethernet mac rom stuff mostly). |
2399 |
|
|
Various other minor fixes. |
2400 |
|
|
20051110 Some more ARM dyntrans fine-tuning (e.g. some instruction |
2401 |
|
|
combinations (cmps followed by conditional branch within the |
2402 |
|
|
same page) and special cases for DPIs with regform when the |
2403 |
|
|
shifter isn't used). |
2404 |
|
|
20051111 ARM dyntrans updates: O(n)->O(1) for just-mark-as-non- |
2405 |
|
|
writable in the generic pc_to_pointers function, and some other |
2406 |
|
|
minor hacks. |
2407 |
|
|
Merging Cobalt and evbmips (Malta) ISA interrupt handling, |
2408 |
|
|
and some minor fixes to allow Linux to accept harddisk irqs. |
2409 |
|
|
20051112 Minor device updates (pckbc, dec21143, lpt, ...), most |
2410 |
|
|
importantly fixing the ALI M1543/M5229 so that harddisk irqs |
2411 |
|
|
work with Linux/CATS. |
2412 |
|
|
20051113 Some more generalizations of the PCI subsystem. |
2413 |
|
|
Finally took the time to add a hack for SCSI CDROM TOCs; this |
2414 |
|
|
enables OpenBSD to use partition 'a' (as needed by the OpenBSD |
2415 |
|
|
installer), and Windows NT's installer to get a bit further. |
2416 |
|
|
Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs. |
2417 |
|
|
Continuing on the DEC 21143. |
2418 |
|
|
20051114 Minor ARM dyntrans tweaks; ARM cmps+branch optimization when |
2419 |
|
|
comparing with 0, and generalizing the xchg instr. comb. |
2420 |
|
|
Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}. |
2421 |
|
|
20051115 Continuing on various PPC things (BATs, other address trans- |
2422 |
|
|
lation things, various loads/stores, BeBox emulation, etc.). |
2423 |
|
|
Beginning to work on PPC interrupt/exception support. |
2424 |
|
|
20051116 Factoring out some code which initializes legacy ISA devices |
2425 |
|
|
from those machines that use them (bus_isa). |
2426 |
|
|
Continuing on PPC interrupt/exception support. |
2427 |
|
|
20051117 Minor Malta fixes: RTC year offset = 80, disabling a speed hack |
2428 |
|
|
which caused NetBSD to detect a too fast cpu, and adding a new |
2429 |
|
|
hack to make Linux detect a faster cpu. |
2430 |
|
|
Continuing on the Artesyn PM/PPC emulation mode. |
2431 |
|
|
Adding an Algor emulation skeleton (P4032 and P5064); |
2432 |
|
|
implementing some of the basics. |
2433 |
|
|
Continuing on PPC emulation in general; usage of unimplemented |
2434 |
|
|
SPRs is now easier to track, continuing on memory/exception |
2435 |
|
|
related issues, etc. |
2436 |
|
|
20051118 More work on PPC emulation (tgpr0..3, exception handling, |
2437 |
|
|
memory stuff, syscalls, etc.). |
2438 |
|
|
20051119 Changing the ARM dyntrans code to mostly use cpu->pc, and not |
2439 |
|
|
necessarily use arm reg 15. Seems to work. |
2440 |
|
|
Various PPC updates; continuing on the PReP emulation mode. |
2441 |
|
|
20051120 Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep |
2442 |
|
|
to detect the clock. |
2443 |
|
|
20051121 More cleanup of the PCI bus (memory and I/O bases, etc). |
2444 |
|
|
Continuing on various PPC things (decrementer and timebase, |
2445 |
|
|
WDCs on obio (on PReP) use irq 13, not 14/15). |
2446 |
|
|
20051122 Continuing on the CPC700 controller (interrupts etc) for PMPPC, |
2447 |
|
|
and on PPC stuff in general. |
2448 |
|
|
Finally! After some bug fixes to the virtual to physical addr |
2449 |
|
|
translation, NetBSD/{prep,pmppc} 2.1 reach userland and are |
2450 |
|
|
stable enough to be interacted with. |
2451 |
|
|
More PCI updates; reverse-endian device access for PowerPC etc. |
2452 |
|
|
20051123 Generalizing the IEEE floating point subsystem (moving it out |
2453 |
|
|
from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c). |
2454 |
|
|
Input via slave xterms was sometimes not really working; fixing |
2455 |
|
|
this for ns16550, and a warning message is now displayed if |
2456 |
|
|
multiple non-xterm consoles are active. |
2457 |
|
|
Adding some PPC floating point support, etc. |
2458 |
|
|
Various interrupt related updates (dev_wdc, _ns16550, _8259, |
2459 |
|
|
and the isa32 common code in machine.c). |
2460 |
|
|
NetBSD/prep can now be installed! :-) (Well, with some manual |
2461 |
|
|
commands necessary before running sysinst.) Updating the |
2462 |
|
|
documentation and various other things to reflect this. |
2463 |
|
|
20051124 Various minor documentation updates. |
2464 |
|
|
Continuing the work on the DEC 21143 NIC. |
2465 |
|
|
20051125 LOTS of work on the 21143. Both OpenBSD and NetBSD work fine |
2466 |
|
|
with it now, except that OpenBSD sometimes gives a time-out |
2467 |
|
|
warning. |
2468 |
|
|
Minor documentation updates. |
2469 |
|
|
|
2470 |
|
|
============== RELEASE 0.3.7 ============== |
2471 |
|
|
|
2472 |
dpavlin |
22 |
20051126 Cobalt and PReP now work with the 21143 NIC. |
2473 |
|
|
Continuing on Alpha dyntrans things. |
2474 |
|
|
Fixing some more left-shift-by-24 to unsigned. |
2475 |
|
|
20051127 Working on OpenFirmware emulation; major cleanup/redesign. |
2476 |
|
|
Progress on MacPPC emulation: NetBSD detects two CPUs (when |
2477 |
|
|
running with -n 2), framebuffer output (for text) works. |
2478 |
|
|
Adding quick-hack Bandit PCI controller and "gc" interrupt |
2479 |
|
|
controller for MacPPC. |
2480 |
|
|
20051128 Changing from a Bandit to a Uni-North controller for macppc. |
2481 |
|
|
Continuing on OpenFirmware and MacPPC emulation in general |
2482 |
|
|
(obio controller, and wdc attached to the obio seems to work). |
2483 |
|
|
20051129 More work on MacPPC emulation (adding a dummy ADB controller). |
2484 |
|
|
Continuing the PCI bus cleanup (endianness and tag composition) |
2485 |
|
|
and rewriting all PCI controllers' access functions. |
2486 |
|
|
20051130 Various minor PPC dyntrans optimizations. |
2487 |
|
|
Manually inlining some parts of the framebuffer redraw routine. |
2488 |
|
|
Slowly beginning the conversion of the old MIPS emulation into |
2489 |
|
|
dyntrans (but this will take quite some time to get right). |
2490 |
|
|
Generalizing quick_pc_to_pointers. |
2491 |
|
|
20051201 Documentation update (David Muse has made available a kernel |
2492 |
|
|
which simplifies Debian/DECstation installation). |
2493 |
|
|
Continuing on the ADB bus controller. |
2494 |
|
|
20051202 Beginning a rewrite of the Zilog serial controller (dev_zs). |
2495 |
|
|
20051203 Continuing on the zs rewrite (now called dev_z8530); conversion |
2496 |
|
|
to devinit style. |
2497 |
|
|
Reworking some of the input-only vs output-only vs input-output |
2498 |
|
|
details of src/console.c, better warning messages, and adding |
2499 |
|
|
a debug dump. |
2500 |
|
|
Removing the concept of "device state"; it wasn't really used. |
2501 |
|
|
Changing some debug output (-vv should now be used to show all |
2502 |
|
|
details about devices and busses; not shown during normal |
2503 |
|
|
startup anymore). |
2504 |
|
|
Beginning on some SPARC instruction disassembly support. |
2505 |
|
|
20051204 Minor PPC updates (WALNUT skeleton stuff). |
2506 |
|
|
Continuing on the MIPS dyntrans rewrite. |
2507 |
|
|
More progress on the ADB controller (a keyboard is "detected" |
2508 |
|
|
by NetBSD and OpenBSD). |
2509 |
|
|
Downgrading OpenBSD/arc as a guest OS from "working" to |
2510 |
|
|
"almost working" in the documentation. |
2511 |
|
|
Progress on Algor emulation ("v3" PCI controller). |
2512 |
|
|
20051205 Minor updates. |
2513 |
|
|
20051207 Sorting devices according to address; this reduces complexity |
2514 |
|
|
of device lookups from O(n) to O(log n) in memory_rw (but no |
2515 |
|
|
real performance increase (yet) in experiments). |
2516 |
|
|
20051210 Beginning the work on native dyntrans backends (by making a |
2517 |
|
|
simple skeleton; so far only for Alpha hosts). |
2518 |
|
|
20051211 Some very minor SPARC updates. |
2519 |
|
|
20051215 Fixing a bug in the MIPS mul (note: not mult) instruction, |
2520 |
|
|
so it also works with non-64-bit emulation. (Thanks to Alec |
2521 |
|
|
Voropay for noticing the problem.) |
2522 |
|
|
20051216 More work on the fake/empty/simple/skeleton/whatever backend; |
2523 |
|
|
performance doesn't increase, so this isn't really worth it, |
2524 |
|
|
but it was probably worth it to prepare for a real backend |
2525 |
|
|
later. |
2526 |
|
|
20051219 More instr call statistics gathering and analysis stuff. |
2527 |
|
|
20051220 Another fix for MIPS 'mul'. Also converting mul and {d,}cl{o,z} |
2528 |
|
|
to dyntrans. |
2529 |
|
|
memory_ppc.c syntax error fix (noticed by Peter Valchev). |
2530 |
|
|
Beginning to move out machines from src/machine.c into |
2531 |
|
|
individual files in src/machines (in a way similar to the |
2532 |
|
|
autodev system for devices). |
2533 |
|
|
20051222 Updating the documentation regarding NetBSD/pmax 3.0. |
2534 |
|
|
20051223 - " - NetBSD/cats 3.0. |
2535 |
|
|
20051225 - " - NetBSD/hpcmips 3.0. |
2536 |
|
|
20051226 Continuing on the machine registry redesign. |
2537 |
|
|
Adding support for ARM rrx (33-bit rotate). |
2538 |
|
|
Fixing some signed/unsigned issues (exposed by gcc -W). |
2539 |
|
|
20051227 Fixing the bug which prevented a NetBSD/prep 3.0 install kernel |
2540 |
|
|
from starting (triggered when an mtmsr was the last instruction |
2541 |
|
|
on a page). Unfortunately not enough to get the kernel to run |
2542 |
|
|
as well as the 2.1 kernels did. |
2543 |
|
|
20051230 Some dyntrans refactoring. |
2544 |
|
|
20051231 Continuing on the machine registry redesign. |
2545 |
|
|
20060101-10 Continuing... moving more machines. Moving MD interrupt stuff |
2546 |
|
|
from machine.c into a new src/machines/interrupts.c. |
2547 |
|
|
20060114 Adding various mvmeppc machine skeletons. |
2548 |
|
|
20060115 Continuing on mvme* stuff. NetBSD/mvmeppc prints boot messages |
2549 |
|
|
(for MVME1600) and reaches the root device prompt, but no |
2550 |
|
|
specific hardware devices are emulated yet. |
2551 |
|
|
20060116 Minor updates to the mvme1600 emulation mode; the Eagle PCI bus |
2552 |
|
|
seems to work without much modification, and a 21143 can be |
2553 |
|
|
detected, interrupts might work (but untested so far). |
2554 |
|
|
Adding a fake MK48Txx (mkclock) device, for NetBSD/mvmeppc. |
2555 |
|
|
20060121 Adding an aux control register for ARM. (A BIG thank you to |
2556 |
|
|
Olivier Houchard for tracking down this bug.) |
2557 |
|
|
20060122 Adding more ARM instructions (smulXY), and dev_iq80321_7seg. |
2558 |
|
|
20060124 Adding disassembly of more ARM instructions (mia*, mra/mar), |
2559 |
|
|
and some semi-bogus XScale and i80321 registers. |
2560 |
|
|
20060201-02 Various minor updates. Moving the last machines out of |
2561 |
|
|
machine.c. |
2562 |
|
|
20060204 Adding a -c command line option, for running debugger commands |
2563 |
|
|
before the simulation starts, but after all files have been |
2564 |
|
|
loaded. |
2565 |
|
|
Minor iq80321-related updates. |
2566 |
|
|
20060209 Minor hacks (DEVINIT macro, etc). |
2567 |
|
|
Preparing for the generalization of the 64-bit dyntrans address |
2568 |
|
|
translation subsystem. |
2569 |
|
|
20060216 Adding ARM ldrd (double-register load). |
2570 |
|
|
20060217 Continuing on various ARM-related stuff. |
2571 |
|
|
20060218 More progress on the ATA/wdc emulation for NetBSD/iq80321. |
2572 |
|
|
NetBSD/evbarm can now be installed :-) Updating the docs, etc. |
2573 |
|
|
Continuing on Algor emulation. |
2574 |
|
|
|
2575 |
|
|
============== RELEASE 0.3.8 ============== |
2576 |
|
|
|
2577 |
dpavlin |
24 |
20060219 Various minor updates. Removing the old MIPS16 skeleton code, |
2578 |
|
|
because it will need to be rewritten for dyntrans anyway. |
2579 |
|
|
20060220-22 Removing the non-working dyntrans backend support. |
2580 |
|
|
Continuing on the 64-bit dyntrans virtual memory generalization. |
2581 |
|
|
20060223 More work on the 64-bit vm generalization. |
2582 |
|
|
20060225 Beginning on MIPS dyntrans load/store instructions. |
2583 |
|
|
Minor PPC updates (64-bit load/store, etc). |
2584 |
|
|
Fixes for the variable-instruction-length framework, some |
2585 |
|
|
minor AVR updates (a simple Hello World program works!). |
2586 |
|
|
Beginning on a skeleton for automatically generating documen- |
2587 |
|
|
tation (for devices etc.). |
2588 |
|
|
20060226 PPC updates (adding some more 64-bit instructions, etc). |
2589 |
|
|
AVR updates (more instructions). |
2590 |
|
|
FINALLY found and fixed the zs bug, making NetBSD/macppc |
2591 |
|
|
accept the serial console. |
2592 |
|
|
20060301 Adding more AVR instructions. |
2593 |
|
|
20060304 Continuing on AVR-related stuff. Beginning on a framework for |
2594 |
|
|
cycle-accurate device emulation. Adding an experimental "PAL |
2595 |
|
|
TV" device (just a dummy so far). |
2596 |
|
|
20060305 Adding more AVR instructions. |
2597 |
|
|
Adding a dummy epcom serial controller (for TS7200 emulation). |
2598 |
|
|
20060310 Removing the emul() command from configuration files, so only |
2599 |
|
|
net() and machine() are supported. |
2600 |
|
|
Minor progress on the MIPS dyntrans rewrite. |
2601 |
|
|
20060311 Continuing on the MIPS dyntrans rewrite (adding more |
2602 |
|
|
instructions, etc). |
2603 |
|
|
20060315 Adding more instructions (sllv, srav, srlv, bgtz[l], blez[l], |
2604 |
|
|
beql, bnel, slti[u], various loads and stores). |
2605 |
|
|
20060316 Removing the ALWAYS_SIGNEXTEND_32 option, since it was rarely |
2606 |
|
|
used. |
2607 |
|
|
Adding more MIPS dyntrans instructions, and fixing bugs. |
2608 |
|
|
20060318 Implementing fast loads/stores for MIPS dyntrans (big/little |
2609 |
|
|
endian, 32-bit and 64-bit modes). |
2610 |
|
|
20060320 Making MIPS dyntrans the default configure option; use |
2611 |
|
|
"--enable-oldmips" to use the old bintrans system. |
2612 |
|
|
Adding MIPS dyntrans dmult[u]; minor updates. |
2613 |
|
|
20060322 Continuing... adding some more instructions. |
2614 |
|
|
Adding a simple skeleton for demangling C++ "_ZN" symbols. |
2615 |
|
|
20060323 Moving src/debugger.c into a new directory (src/debugger/). |
2616 |
|
|
20060324 Fixing the hack used to load PPC ELFs (useful for relocated |
2617 |
|
|
Linux/ppc kernels), and adding a dummy G3 machine mode. |
2618 |
|
|
20060325-26 Beginning to experiment with GDB remote serial protocol |
2619 |
|
|
connections; adding a -G command line option for selecting |
2620 |
|
|
which TCP port to listen to. |
2621 |
|
|
20060330 Beginning a major cleanup to replace things like "0x%016llx" |
2622 |
|
|
with more correct "0x%016"PRIx64, etc. |
2623 |
|
|
Continuing on the GDB remote serial protocol support. |
2624 |
|
|
20060331 More cleanup, and some minor GDB remote progress. |
2625 |
|
|
20060402 Adding a hack to the configure script, to allow compilation |
2626 |
|
|
on systems that lack PRIx64 etc. |
2627 |
|
|
20060406 Removing the temporary FreeBSD/arm hack in dev_ns16550.c and |
2628 |
|
|
replacing it with a better fix from Olivier Houchard. |
2629 |
|
|
20060407 A remote debugger (gdb or ddd) can now start and stop the |
2630 |
|
|
emulator using the GDB remote serial protocol, and registers |
2631 |
|
|
and memory can be read. MIPS only for now. |
2632 |
|
|
20060408 More GDB progress: single-stepping also works, and also adding |
2633 |
|
|
support for ARM, PowerPC, and Alpha targets. |
2634 |
|
|
Continuing on the delay-slot-across-page-boundary issue. |
2635 |
|
|
20060412 Minor update: beginning to add support for the SPARC target |
2636 |
|
|
to the remote GDB functionality. |
2637 |
|
|
20060414 Various MIPS updates: adding more instructions for dyntrans |
2638 |
|
|
(eret, add), and making some exceptions work. Fixing a bug |
2639 |
|
|
in dmult[u]. |
2640 |
|
|
Implementing the first SPARC instructions (sethi, or). |
2641 |
|
|
20060415 Adding "magic trap" instructions so that PROM calls can be |
2642 |
|
|
software emulated in MIPS dyntrans. |
2643 |
|
|
Adding more MIPS dyntrans instructions (ddiv, dadd) and |
2644 |
|
|
fixing another bug in dmult. |
2645 |
|
|
20060416 More MIPS dyntrans progress: adding [d]addi, movn, movz, dsllv, |
2646 |
|
|
rfi, an ugly hack for supporting R2000/R3000 style faked caches, |
2647 |
|
|
preliminary interrupt support, and various other updates and |
2648 |
|
|
bugfixes. |
2649 |
|
|
20060417 Adding more SPARC instructions (add, sub, sll[x], sra[x], |
2650 |
|
|
srl[x]), and useful SPARC header definitions. |
2651 |
|
|
Adding the first (trivial) x86/AMD64 dyntrans instructions (nop, |
2652 |
|
|
cli/sti, stc/clc, std/cld, simple mov, inc ax). Various other |
2653 |
|
|
x86 updates related to variable instruction length stuff. |
2654 |
|
|
Adding unaligned loads/stores to the MIPS dyntrans mode (but |
2655 |
|
|
still using the pre-dyntrans (slow) imlementation). |
2656 |
|
|
20060419 Fixing a MIPS dyntrans exception-in-delay-slot bug. |
2657 |
|
|
Removing the old "show opcode statistics" functionality, since |
2658 |
|
|
it wasn't really useful and isn't implemented for dyntrans. |
2659 |
|
|
Single-stepping (or running with instruction trace) now looks |
2660 |
|
|
ok with dyntrans with delay-slot architectures. |
2661 |
|
|
20060420 Minor hacks (removing the -B command line option when compiled |
2662 |
|
|
for non-bintrans, and some other very minor updates). |
2663 |
|
|
Adding (slow) MIPS dyntrans load-linked/store-conditional. |
2664 |
|
|
20060422 Applying fixes for bugs discovered by Nils Weller's nwcc |
2665 |
|
|
(static DEC memmap => now per machine, and adding an extern |
2666 |
|
|
keyword in cpu_arm_instr.c). |
2667 |
|
|
Finally found one of the MIPS dyntrans bugs that I've been |
2668 |
|
|
looking for (copy/paste spelling error BIG vs LITTLE endian in |
2669 |
|
|
cpu_mips_instr_loadstore.c for 16-bit fast stores). |
2670 |
|
|
FINALLY found the major MIPS dyntrans bug: slti vs sltiu |
2671 |
|
|
signed/unsigned code in cpu_mips_instr.c. :-) |
2672 |
|
|
Adding more MIPS dyntrans instructions (lwc1, swc1, bgezal[l], |
2673 |
|
|
ctc1, tlt[u], tge[u], tne, beginning on rdhwr). |
2674 |
|
|
NetBSD/hpcmips can now reach userland when using dyntrans :-) |
2675 |
|
|
Adding some more x86 dyntrans instructions. |
2676 |
|
|
Finally removed the old Alpha-specific virtual memory code, |
2677 |
|
|
and replaced it with the generic 64-bit version. |
2678 |
|
|
Beginning to add disassembly support for SPECIAL3 MIPS opcodes. |
2679 |
|
|
20060423 Continuing on the delay-slot-across-page-boundary issue; |
2680 |
|
|
adding an end_of_page2 ic slot (like I had planned before, but |
2681 |
|
|
had removed for some reason). |
2682 |
|
|
Adding a quick-and-dirty fallback to legacy coprocessor 1 |
2683 |
|
|
code (i.e. skipping dyntrans implementation for now). |
2684 |
|
|
NetBSD/hpcmips and NetBSD/pmax (when running on an emulated |
2685 |
|
|
R4400) can now be installed and run. :-) (Many bugs left |
2686 |
|
|
to fix, though.) |
2687 |
|
|
Adding more MIPS dyntrans instructions: madd[u], msub[u]. |
2688 |
|
|
Cleaning up the SPECIAL2 vs R5900/TX79/C790 "MMI" opcode |
2689 |
|
|
maps somewhat (disassembly and dyntrans instruction decoding). |
2690 |
|
|
20060424 Adding an isa_revision field to mips_cpu_types.h, and making |
2691 |
|
|
sure that SPECIAL3 opcodes cause Reserved Instruction |
2692 |
|
|
exceptions on MIPS32/64 revisions lower than 2. |
2693 |
|
|
Adding the SPARC 'ba', 'call', 'jmpl/retl', 'and', and 'xor' |
2694 |
|
|
instructions. |
2695 |
|
|
20060425 Removing the -m command line option ("run at most x |
2696 |
|
|
instructions") and -T ("single_step_on_bad_addr"), because |
2697 |
|
|
they never worked correctly with dyntrans anyway. |
2698 |
|
|
Freshening up the man page. |
2699 |
|
|
20060428 Adding more MIPS dyntrans instructions: bltzal[l], idle. |
2700 |
|
|
Enabling MIPS dyntrans compare interrupts. |
2701 |
|
|
20060429 FINALLY found the weird dyntrans bug, causing NetBSD etc. to |
2702 |
|
|
behave strangely: some floating point code (conditional |
2703 |
|
|
coprocessor branches) could not be reused from the old |
2704 |
|
|
non-dyntrans code. The "quick-and-dirty fallback" only appeared |
2705 |
|
|
to work. Fixing by implementing bc1* for MIPS dyntrans. |
2706 |
|
|
More MIPS instructions: [d]sub, sdc1, ldc1, dmtc1, dmfc1, cfc0. |
2707 |
|
|
Freshening up MIPS floating point disassembly appearance. |
2708 |
|
|
20060430 Continuing on C790/R5900/TX79 disassembly; implementing 128-bit |
2709 |
|
|
"por" and "pextlw". |
2710 |
|
|
20060504 Disabling -u (userland emulation) unless compiled as unstable |
2711 |
|
|
development version. |
2712 |
|
|
Beginning on freshening up the testmachine include files, |
2713 |
|
|
to make it easier to reuse those files (placing them in |
2714 |
|
|
src/include/testmachine/), and beginning on a set of "demos" |
2715 |
|
|
or "tutorials" for the testmachine functionality. |
2716 |
|
|
Minor updates to the MIPS GDB remote protocol stub. |
2717 |
|
|
Refreshing doc/experiments.html and gdb_remote.html. |
2718 |
|
|
Enabling Alpha emulation in the stable release configuration, |
2719 |
|
|
even though no guest OSes for Alpha can run yet. |
2720 |
|
|
20060505 Adding a generic 'settings' object, which will contain |
2721 |
|
|
references to settable variables (which will later be possible |
2722 |
|
|
to access using the debugger). |
2723 |
|
|
20060506 Updating dev_disk and corresponding demo/documentation (and |
2724 |
|
|
switching from SCSI to IDE disk types, so it actually works |
2725 |
|
|
with current test machines :-). |
2726 |
|
|
20060510 Adding a -D_LARGEFILE_SOURCE hack for 64-bit Linux hosts, |
2727 |
|
|
so that fseeko() doesn't give a warning. |
2728 |
|
|
Updating the section about how dyntrans works (the "runnable |
2729 |
|
|
IR") in doc/intro.html. |
2730 |
|
|
Instruction updates (some x64=1 checks, some more R5900 |
2731 |
|
|
dyntrans stuff: better mul/mult separation from MIPS32/64, |
2732 |
|
|
adding ei and di). |
2733 |
|
|
Updating MIPS cpuregs.h to a newer one (from NetBSD). |
2734 |
|
|
Adding more MIPS dyntrans instructions: deret, ehb. |
2735 |
|
|
20060514 Adding disassembly and beginning implementation of SPARC wr |
2736 |
|
|
and wrpr instructions. |
2737 |
|
|
20060515 Adding a SUN SPARC machine mode, with dummy SS20 and Ultra1 |
2738 |
|
|
machines. Adding the 32-bit "rd psr" instruction. |
2739 |
|
|
20060517 Disassembly support for the general SPARC rd instruction. |
2740 |
|
|
Partial implementation of the cmp (subcc) instruction. |
2741 |
|
|
Some other minor updates (making sure that R5900 processors |
2742 |
|
|
start up with the EIE bit enabled, otherwise Linux/playstation2 |
2743 |
|
|
receives no interrupts). |
2744 |
|
|
20060519 Minor MIPS updates/cleanups. |
2745 |
|
|
20060521 Moving the MeshCube machine into evbmips; this seems to work |
2746 |
|
|
reasonably well with a snapshot of a NetBSD MeshCube kernel. |
2747 |
|
|
Cleanup/fix of MIPS config0 register initialization. |
2748 |
|
|
20060529 Minor MIPS fixes, including a sign-extension fix to the |
2749 |
|
|
unaligned load/store code, which makes NetBSD/pmax on R3000 |
2750 |
|
|
work better with dyntrans. (Ultrix and Linux/DECstation still |
2751 |
|
|
don't work, though.) |
2752 |
|
|
20060530 Minor updates to the Alpha machine mode: adding an AlphaBook |
2753 |
|
|
mode, an LCA bus (forwarding accesses to an ISA bus), etc. |
2754 |
|
|
20060531 Applying a bugfix for the MIPS dyntrans sc[d] instruction from |
2755 |
|
|
Ondrej Palkovsky. (Many thanks.) |
2756 |
|
|
20060601 Minifix to allow ARM immediate msr instruction to not give |
2757 |
|
|
an error for some valid values. |
2758 |
|
|
More Alpha updates. |
2759 |
|
|
20060602 Some minor Alpha updates. |
2760 |
|
|
20060603 Adding the Alpha cmpbge instruction. NetBSD/alpha prints its |
2761 |
|
|
first boot messages :-) on an emulated Alphabook 1. |
2762 |
|
|
20060612 Minor updates; adding a dev_ether.h include file for the |
2763 |
|
|
testmachine ether device. Continuing the hunt for the dyntrans |
2764 |
|
|
bug which makes Linux and Ultrix on DECstation behave |
2765 |
|
|
strangely... FINALLY found it! It seems to be related to |
2766 |
|
|
invalidation of the translation cache, on tlbw{r,i}. There |
2767 |
|
|
also seems to be some remaining interrupt-related problems. |
2768 |
|
|
20060614 Correcting the implementation of ldc1/sdc1 for MIPS dyntrans |
2769 |
|
|
(so that it uses 16 32-bit registers if the FR bit in the |
2770 |
|
|
status register is not set). |
2771 |
|
|
20060616 REMOVING BINTRANS COMPLETELY! |
2772 |
|
|
Removing the old MIPS interpretation mode. |
2773 |
|
|
Removing the MFHILO_DELAY and instruction delay stuff, because |
2774 |
|
|
they wouldn't work with dyntrans anyway. |
2775 |
|
|
20060617 Some documentation updates (adding "NetBSD-archive" to some |
2776 |
|
|
URLs, and new Debian/DECstation installation screenshots). |
2777 |
|
|
Removing the "tracenull" and "enable-caches" configure options. |
2778 |
|
|
Improving MIPS dyntrans performance somewhat (only invalidate |
2779 |
|
|
translations if necessary, on writes to the entryhi register, |
2780 |
|
|
instead of doing it for all cop0 writes). |
2781 |
|
|
20060618 More cleanup after the removal of the old MIPS emulation. |
2782 |
|
|
Trying to fix the MIPS dyntrans performance bugs/bottlenecks; |
2783 |
|
|
only semi-successful so far (for R3000). |
2784 |
|
|
20060620 Minor update to allow clean compilation again on Tru64/Alpha. |
2785 |
|
|
20060622 MIPS cleanup and fixes (removing the pc_last stuff, which |
2786 |
|
|
doesn't make sense with dyntrans anyway, and fixing a cross- |
2787 |
|
|
page-delay-slot-with-exception case in end_of_page). |
2788 |
|
|
Removing the old max_random_cycles_per_chunk stuff, and the |
2789 |
|
|
concept of cycles vs instructions for MIPS emulation. |
2790 |
|
|
FINALLY found and fixed the bug which caused NetBSD/pmax |
2791 |
|
|
clocks to behave strangely (it was a load to the zero register, |
2792 |
|
|
which was treated as a NOP; now it is treated as a load to a |
2793 |
|
|
dummy scratch register). |
2794 |
|
|
20060623 Increasing the dyntrans chunk size back to |
2795 |
|
|
N_SAFE_DYNTRANS_LIMIT, instead of N_SAFE_DYNTRANS_LIMIT/2. |
2796 |
|
|
Preparing for a quick release, even though there are known |
2797 |
|
|
bugs, and performance for non-R3000 MIPS emulation is very |
2798 |
|
|
poor. :-/ |
2799 |
|
|
Reverting to half the dyntrans chunk size again, because |
2800 |
|
|
NetBSD/cats seemed less stable with full size chunks. :( |
2801 |
|
|
NetBSD/sgimips 3.0 can now run :-) (With release 0.3.8, only |
2802 |
|
|
NetBSD/sgimips 2.1 worked, not 3.0.) |
2803 |
|
|
|
2804 |
|
|
============== RELEASE 0.4.0 ============== |
2805 |
|
|
|
2806 |
dpavlin |
26 |
20060624 Replacing the error-prone machine type initialization stuff |
2807 |
|
|
with something more reasonable. |
2808 |
|
|
Finally removing the old "cpu_run" kludge; moving around stuff |
2809 |
|
|
in machine.c and emul.c to better suit the dyntrans system. |
2810 |
|
|
Various minor dyntrans cleanups (renaming translate_address to |
2811 |
|
|
translate_v2p, and experimenting with template physpages). |
2812 |
|
|
20060625 Removing the speed hack which separated the vph entries into |
2813 |
|
|
two halves (code vs data); things seem a lot more stable now. |
2814 |
|
|
Minor performance hack: R2000/R3000 cache isolation now only |
2815 |
|
|
clears address translations when going into isolation, not |
2816 |
|
|
when going out of it. |
2817 |
|
|
Fixing the MIPS interrupt problems by letting mtc0 immediately |
2818 |
|
|
cause interrupts. |
2819 |
|
|
|
2820 |
|
|
============== RELEASE 0.4.0.1 ============== |
2821 |
|
|
|
2822 |
dpavlin |
28 |
20060626 Continuing on SPARC emulation (beginning on the 'save' |
2823 |
|
|
instruction, register windows, etc). |
2824 |
|
|
20060629 Planning statistics gathering (new -s command line option), |
2825 |
|
|
and renaming speed_tricks to allow_instruction_combinations. |
2826 |
|
|
20060630 Some minor manual page updates. |
2827 |
|
|
Various cleanups. |
2828 |
|
|
Implementing the -s command line option. |
2829 |
|
|
20060701 FINALLY found the bug which prevented Linux and Ultrix from |
2830 |
|
|
running without the ugly hack in the R2000/R3000 cache isol |
2831 |
|
|
code; it was the phystranslation hint array which was buggy. |
2832 |
|
|
Removing the phystranslation hint code completely, for now. |
2833 |
|
|
20060702 Minor dyntrans cleanups; invalidation of physpages now only |
2834 |
|
|
invalidate those parts of a page that have actually been |
2835 |
|
|
translated. (32 parts per page.) |
2836 |
|
|
Some MIPS non-R3000 speed fixes. |
2837 |
|
|
Experimenting with MIPS instruction combination for some |
2838 |
|
|
addiu+bne+sw loops, and sw+sw+sw. |
2839 |
|
|
Adding support (again) for larger-than-4KB pages in MIPS tlbw*. |
2840 |
|
|
Continuing on SPARC emulation: adding load/store instructions. |
2841 |
|
|
20060704 Fixing a virtual vs physical page shift bug in the new tlbw* |
2842 |
|
|
implementation. Problem noticed by Jakub Jermar. (Many thanks.) |
2843 |
|
|
Moving rfe and eret to cpu_mips_instr.c, since that is the |
2844 |
|
|
only place that uses them nowadays. |
2845 |
|
|
20060705 Removing the BSD license from the "testmachine" include files, |
2846 |
|
|
placing them in the public domain instead; this enables the |
2847 |
|
|
testmachine stuff to be used from projects which are |
2848 |
|
|
incompatible with the BSD license for some reason. |
2849 |
|
|
20060707 Adding instruction combinations for the R2000/R3000 L1 |
2850 |
|
|
I-cache invalidation code used by NetBSD/pmax 3.0, lui+addiu, |
2851 |
|
|
various branches followed by addiu or nop, and jr ra followed |
2852 |
|
|
by addiu. The time it takes to perform a full NetBSD/pmax R3000 |
2853 |
|
|
install on the laptop has dropped from 573 seconds to 539. :-) |
2854 |
|
|
20060708 Adding a framebuffer controller device (dev_fbctrl), which so |
2855 |
|
|
far can be used to change the fb resolution during runtime, but |
2856 |
|
|
in the future will also be useful for accelerated block fill/ |
2857 |
|
|
copy, and possibly also simplified character output. |
2858 |
|
|
Adding an instruction combination for NetBSD/pmax' strlen. |
2859 |
|
|
20060709 Minor fixes: reading raw files in src/file.c wasn't memblock |
2860 |
|
|
aligned, removing buggy multi_sw MIPS instruction combination, |
2861 |
|
|
etc. |
2862 |
|
|
20060711 Adding a machine_qemu.c, which contains a "qemu_mips" machine. |
2863 |
|
|
(It mimics QEMU's MIPS machine mode, so that a test kernel |
2864 |
|
|
made for QEMU_MIPS also can run in GXemul... at least to some |
2865 |
|
|
extent.) Adding a short section about how to run this mode to |
2866 |
|
|
doc/guestoses.html. |
2867 |
|
|
20060714 Misc. minor code cleanups. |
2868 |
|
|
20060715 Applying a patch which adds getchar() to promemul/yamon.c |
2869 |
|
|
(from Oleksandr Tymoshenko). |
2870 |
|
|
Adding yamon.h from NetBSD, and rewriting yamon.c to use it |
2871 |
|
|
(instead of ugly hardcoded numbers) + some cleanup. |
2872 |
|
|
20060716 Found and fixed the bug which broke single-stepping of 64-bit |
2873 |
|
|
programs between 0.4.0 and 0.4.0.1 (caused by too quick |
2874 |
|
|
refactoring and no testing). Hopefully this fix will not |
2875 |
|
|
break too many other things. |
2876 |
|
|
20060718 Continuing on the 8253 PIT; it now works with Linux/QEMU_MIPS. |
2877 |
|
|
Re-adding the sw+sw+sw instr comb (the problem was that I had |
2878 |
|
|
ignored endian issues); however, it doesn't seem to give any |
2879 |
|
|
big performance gain. |
2880 |
|
|
20060720 Adding a dummy Transputer mode (T414, T800 etc) skeleton (only |
2881 |
|
|
the 'j' and 'ldc' instructions are implemented so far). :-} |
2882 |
|
|
20060721 Adding gtreg.h from NetBSD, updating dev_gt.c to use it, plus |
2883 |
|
|
misc. other updates to get Linux 2.6 for evbmips/malta working |
2884 |
|
|
(thanks to Alec Voropay for the details). |
2885 |
|
|
FINALLY found and fixed the bug which made tlbw* for non-R3000 |
2886 |
|
|
buggy; it was a reference count problem in the dyntrans core. |
2887 |
|
|
20060722 Testing stuff; things seem stable enough for a new release. |
2888 |
|
|
|
2889 |
|
|
============== RELEASE 0.4.1 ============== |
2890 |
|
|
|
2891 |
dpavlin |
30 |
20060723 More Transputer instructions (pfix, nfix, opr, mint, ldl, ldlp, |
2892 |
|
|
eqc, rev, ajw, stl, stlf, sthf, sub, ldnl, ldnlp, ldpi, move, |
2893 |
|
|
wcnt, add, bcnt). |
2894 |
|
|
Adding more SPARC instructions (andcc, addcc, bl, rdpr). |
2895 |
|
|
Progress on the igsfb framebuffer used by NetBSD/netwinder. |
2896 |
|
|
Enabling 8-bit fills in dev_fb. |
2897 |
|
|
NetBSD/netwinder 3.0.1 can now run from a disk image :-) |
2898 |
|
|
20060724 Cleanup/performance fix for 64-bit virtual translation table |
2899 |
|
|
updates (by removing the "timestamp" stuff). A full NetBSD/pmax |
2900 |
|
|
3.0.1 install for R4400 has dropped from 667 seconds to 584 :) |
2901 |
|
|
Fixing the igsfb "almost vga" color (it is 24-bit, not 18-bit). |
2902 |
|
|
Adding some MIPS instruction combinations (3*lw, and 3*addu). |
2903 |
|
|
The 8048 keyboard now turns off interrupt enable between the |
2904 |
|
|
KBR_ACK and the KBR_RSTDONE, to work better with Linux 2.6. |
2905 |
|
|
Not causing PPC DEC interrupts if PPC_NO_DEC is set for a |
2906 |
|
|
specific CPU; NetBSD/bebox gets slightly further than before. |
2907 |
|
|
Adding some more SPARC instructions: branches, udiv. |
2908 |
|
|
20060725 Refreshing dev_pckbc.c a little. |
2909 |
|
|
Cleanups for the SH emulation mode, and adding the first |
2910 |
|
|
"compact" (16-bit) instructions: various simple movs, nop, |
2911 |
|
|
shll, stc, or, ldc. |
2912 |
|
|
20060726 Adding dummy "pcn" (AMD PCnet NIC) PCI glue. |
2913 |
|
|
20060727 Various cleanups; removing stuff from cpu.h, such as |
2914 |
|
|
running_translated (not really meaningful anymore), and |
2915 |
|
|
page flags (breaking into the debugger clears all translations |
2916 |
|
|
anyway). |
2917 |
|
|
Minor MIPS instruction combination updates. |
2918 |
|
|
20060807 Expanding the 3*sw and 3*lw MIPS instruction combinations to |
2919 |
|
|
work with 2* and 4* too, resulting in a minor performance gain. |
2920 |
|
|
Implementing a usleep hack for the RM52xx/MIPS32/MIPS64 "wait" |
2921 |
|
|
instruction (when emulating 1 cpu). |
2922 |
|
|
20060808 Experimenting with some more MIPS instruction combinations. |
2923 |
|
|
Implementing support for showing a (hardcoded 12x22) text |
2924 |
|
|
cursor in igsfb. |
2925 |
|
|
20060809 Simplifying the NetBSD/evbmips (Malta) install instructions |
2926 |
|
|
somewhat (by using a NetBSD/pmax ramdisk install kernel). |
2927 |
|
|
20060812 Experimenting more with the MIPS 'wait' instruction. |
2928 |
|
|
PCI configuration register writes can now be handled, which |
2929 |
|
|
allow PCI IDE controllers to work with NetBSD/Malta 3.0.1 and |
2930 |
|
|
NetBSD/cobalt 3.0.1. (Previously only NetBSD 2.1 worked.) |
2931 |
|
|
20060813 Updating dev_gt.c based on numbers from Alec Voropay, to enable |
2932 |
|
|
Linux 2.6 to use PCI on Malta. |
2933 |
|
|
Continuing on Algor interrupt stuff. |
2934 |
|
|
20060814 Adding support for routing ISA interrupts to two different |
2935 |
|
|
interrupts, making it possible to run NetBSD/algor :-) |
2936 |
|
|
20060814-15 Testing for the release. |
2937 |
|
|
|
2938 |
|
|
============== RELEASE 0.4.2 ============== |
2939 |
|
|
|