1 |
dpavlin |
16 |
$Id: HISTORY,v 1.988 2005/10/11 03:53:57 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 |
|
|
20051011 Passing -A as the default boot arg for CATS (works fine with |
2315 |
|
|
OpenBSD/cats). |
2316 |
|
|
|
2317 |
|
|
============== RELEASE 0.3.6.1 ============== |
2318 |
|
|
|