1 |
$Id: HISTORY,v 1.905 2005/08/16 09:16:24 debug Exp $ |
$Id: HISTORY,v 1.1421 2006/11/06 05:32:37 debug Exp $ |
2 |
|
|
3 |
Changelog for GXemul: |
Changelog for GXemul: |
4 |
--------------------- |
--------------------- |
2194 |
|
|
2195 |
============== RELEASE 0.3.5 ============== |
============== RELEASE 0.3.5 ============== |
2196 |
|
|
2197 |
|
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 |
|
|
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 |
|
|
2319 |
|
20051012 Fixing the VGA cursor offset bug, and speeding up framebuffer |
2320 |
|
redraws if character cells contain the same thing as during |
2321 |
|
the last redraw. |
2322 |
|
20051013 Adding a slow strd ARM instruction hack. |
2323 |
|
20051017 Minor updates: Adding a dummy i80321 Verde controller (for |
2324 |
|
XScale emulation), fixing the disassembly of the ARM "ldrd" |
2325 |
|
instruction, adding "support" for less-than-4KB pages for ARM |
2326 |
|
(by not adding them to translation tables). |
2327 |
|
20051020 Continuing on some HPCarm stuff. A NetBSD/hpcarm kernel prints |
2328 |
|
some boot messages on an emulated Jornada 720. |
2329 |
|
Making dev_ram work better with dyntrans (speeds up some things |
2330 |
|
quite a bit). |
2331 |
|
20051021 Automatically generating some of the most common ARM load/store |
2332 |
|
multiple instructions. |
2333 |
|
20051022 Better statistics gathering for the ARM load/store multiple. |
2334 |
|
Various other dyntrans and device updates. |
2335 |
|
20051023 Various minor updates. |
2336 |
|
20051024 Continuing; minor device and dyntrans fine-tuning. Adding the |
2337 |
|
first "reasonable" instruction combination hacks for ARM (the |
2338 |
|
cores of NetBSD/cats' memset and memcpy). |
2339 |
|
20051025 Fixing a dyntrans-related bug in dev_vga. Also changing the |
2340 |
|
dyntrans low/high access notification to only be updated on |
2341 |
|
writes, not reads. Hopefully it will be enough. (dev_vga in |
2342 |
|
charcell mode now seems to work correctly with both reads and |
2343 |
|
writes.) |
2344 |
|
Experimenting with gathering dyntrans statistics (which parts |
2345 |
|
of emulated RAM that are actually executed), and adding |
2346 |
|
instruction combination hacks for cache cleaning and a part of |
2347 |
|
NetBSD's scanc() function. |
2348 |
|
20051026 Adding a bitmap for ARM emulation which indicates if a page is |
2349 |
|
(specifically) user accessible; loads and stores with the t- |
2350 |
|
flag set can now use the translation arrays, which results in |
2351 |
|
a measurable speedup. |
2352 |
|
20051027 Dyntrans updates; adding an extra bitmap array for 32-bit |
2353 |
|
emulation modes, speeding up the check whether a physical page |
2354 |
|
has any code translations or not (O(n) -> O(1)). Doing a |
2355 |
|
similar reduction of O(n) to O(1) by avoiding the scan through |
2356 |
|
the translation entries on a translation update (32-bit mode |
2357 |
|
only). |
2358 |
|
Various other minor hacks. |
2359 |
|
20051029 Quick release, without any testing at all. |
2360 |
|
|
2361 |
|
============== RELEASE 0.3.6.2 ============== |
2362 |
|
|
2363 |
|
20051031 Adding disassembly support for more ARM instructions (clz, |
2364 |
|
smul* etc), and adding a hack to support "new tiny" pages |
2365 |
|
for StrongARM. |
2366 |
|
20051101 Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD |
2367 |
|
3.7 -> 3.8, and lots of testing). |
2368 |
|
Changing from 1-sector PIO mode 0 transfers to 128-sector PIO |
2369 |
|
mode 3 (in dev_wdc). |
2370 |
|
Various minor ARM dyntrans updates (pc-relative loads from |
2371 |
|
within the same page as the instruction are now treated as |
2372 |
|
constant "mov"). |
2373 |
|
20051102 Re-enabling instruction combinations (they were accidentally |
2374 |
|
disabled). |
2375 |
|
Dyntrans TLB entries are now overwritten using a round-robin |
2376 |
|
scheme instead of randomly. This increases performance. |
2377 |
|
Fixing a typo in file.c (thanks to Chuan-Hua Chang for |
2378 |
|
noticing it). |
2379 |
|
Experimenting with adding ATAPI support to dev_wdc (to make |
2380 |
|
emulated *BSD detect cdroms as cdroms, not harddisks). |
2381 |
|
20051104 Various minor updates. |
2382 |
|
20051105 Continuing on the ATAPI emulation. Seems to work well enough |
2383 |
|
for a NetBSD/cats installation, but not OpenBSD/cats. |
2384 |
|
Various other updates. |
2385 |
|
20051106 Modifying the -Y command line option to allow scaleup with |
2386 |
|
certain graphic controllers (only dev_vga so far), not just |
2387 |
|
scaledown. |
2388 |
|
Some minor dyntrans cleanups. |
2389 |
|
20051107 Beginning a cleanup up the PCI subsystem (removing the |
2390 |
|
read_register hack, etc). |
2391 |
|
20051108 Continuing the cleanup; splitting up some pci devices into a |
2392 |
|
normal autodev device and some separate pci glue code. |
2393 |
|
20051109 Continuing on the PCI bus stuff; all old pci_*.c have been |
2394 |
|
incorporated into normal devices and/or rewritten as glue code |
2395 |
|
only, adding a dummy Intel 82371AB PIIX4 for Malta (not really |
2396 |
|
tested yet). |
2397 |
|
Minor pckbc fix so that Linux doesn't complain. |
2398 |
|
Working on the DEC 21143 NIC (ethernet mac rom stuff mostly). |
2399 |
|
Various other minor fixes. |
2400 |
|
20051110 Some more ARM dyntrans fine-tuning (e.g. some instruction |
2401 |
|
combinations (cmps followed by conditional branch within the |
2402 |
|
same page) and special cases for DPIs with regform when the |
2403 |
|
shifter isn't used). |
2404 |
|
20051111 ARM dyntrans updates: O(n)->O(1) for just-mark-as-non- |
2405 |
|
writable in the generic pc_to_pointers function, and some other |
2406 |
|
minor hacks. |
2407 |
|
Merging Cobalt and evbmips (Malta) ISA interrupt handling, |
2408 |
|
and some minor fixes to allow Linux to accept harddisk irqs. |
2409 |
|
20051112 Minor device updates (pckbc, dec21143, lpt, ...), most |
2410 |
|
importantly fixing the ALI M1543/M5229 so that harddisk irqs |
2411 |
|
work with Linux/CATS. |
2412 |
|
20051113 Some more generalizations of the PCI subsystem. |
2413 |
|
Finally took the time to add a hack for SCSI CDROM TOCs; this |
2414 |
|
enables OpenBSD to use partition 'a' (as needed by the OpenBSD |
2415 |
|
installer), and Windows NT's installer to get a bit further. |
2416 |
|
Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs. |
2417 |
|
Continuing on the DEC 21143. |
2418 |
|
20051114 Minor ARM dyntrans tweaks; ARM cmps+branch optimization when |
2419 |
|
comparing with 0, and generalizing the xchg instr. comb. |
2420 |
|
Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}. |
2421 |
|
20051115 Continuing on various PPC things (BATs, other address trans- |
2422 |
|
lation things, various loads/stores, BeBox emulation, etc.). |
2423 |
|
Beginning to work on PPC interrupt/exception support. |
2424 |
|
20051116 Factoring out some code which initializes legacy ISA devices |
2425 |
|
from those machines that use them (bus_isa). |
2426 |
|
Continuing on PPC interrupt/exception support. |
2427 |
|
20051117 Minor Malta fixes: RTC year offset = 80, disabling a speed hack |
2428 |
|
which caused NetBSD to detect a too fast cpu, and adding a new |
2429 |
|
hack to make Linux detect a faster cpu. |
2430 |
|
Continuing on the Artesyn PM/PPC emulation mode. |
2431 |
|
Adding an Algor emulation skeleton (P4032 and P5064); |
2432 |
|
implementing some of the basics. |
2433 |
|
Continuing on PPC emulation in general; usage of unimplemented |
2434 |
|
SPRs is now easier to track, continuing on memory/exception |
2435 |
|
related issues, etc. |
2436 |
|
20051118 More work on PPC emulation (tgpr0..3, exception handling, |
2437 |
|
memory stuff, syscalls, etc.). |
2438 |
|
20051119 Changing the ARM dyntrans code to mostly use cpu->pc, and not |
2439 |
|
necessarily use arm reg 15. Seems to work. |
2440 |
|
Various PPC updates; continuing on the PReP emulation mode. |
2441 |
|
20051120 Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep |
2442 |
|
to detect the clock. |
2443 |
|
20051121 More cleanup of the PCI bus (memory and I/O bases, etc). |
2444 |
|
Continuing on various PPC things (decrementer and timebase, |
2445 |
|
WDCs on obio (on PReP) use irq 13, not 14/15). |
2446 |
|
20051122 Continuing on the CPC700 controller (interrupts etc) for PMPPC, |
2447 |
|
and on PPC stuff in general. |
2448 |
|
Finally! After some bug fixes to the virtual to physical addr |
2449 |
|
translation, NetBSD/{prep,pmppc} 2.1 reach userland and are |
2450 |
|
stable enough to be interacted with. |
2451 |
|
More PCI updates; reverse-endian device access for PowerPC etc. |
2452 |
|
20051123 Generalizing the IEEE floating point subsystem (moving it out |
2453 |
|
from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c). |
2454 |
|
Input via slave xterms was sometimes not really working; fixing |
2455 |
|
this for ns16550, and a warning message is now displayed if |
2456 |
|
multiple non-xterm consoles are active. |
2457 |
|
Adding some PPC floating point support, etc. |
2458 |
|
Various interrupt related updates (dev_wdc, _ns16550, _8259, |
2459 |
|
and the isa32 common code in machine.c). |
2460 |
|
NetBSD/prep can now be installed! :-) (Well, with some manual |
2461 |
|
commands necessary before running sysinst.) Updating the |
2462 |
|
documentation and various other things to reflect this. |
2463 |
|
20051124 Various minor documentation updates. |
2464 |
|
Continuing the work on the DEC 21143 NIC. |
2465 |
|
20051125 LOTS of work on the 21143. Both OpenBSD and NetBSD work fine |
2466 |
|
with it now, except that OpenBSD sometimes gives a time-out |
2467 |
|
warning. |
2468 |
|
Minor documentation updates. |
2469 |
|
|
2470 |
|
============== RELEASE 0.3.7 ============== |
2471 |
|
|
2472 |
|
20051126 Cobalt and PReP now work with the 21143 NIC. |
2473 |
|
Continuing on Alpha dyntrans things. |
2474 |
|
Fixing some more left-shift-by-24 to unsigned. |
2475 |
|
20051127 Working on OpenFirmware emulation; major cleanup/redesign. |
2476 |
|
Progress on MacPPC emulation: NetBSD detects two CPUs (when |
2477 |
|
running with -n 2), framebuffer output (for text) works. |
2478 |
|
Adding quick-hack Bandit PCI controller and "gc" interrupt |
2479 |
|
controller for MacPPC. |
2480 |
|
20051128 Changing from a Bandit to a Uni-North controller for macppc. |
2481 |
|
Continuing on OpenFirmware and MacPPC emulation in general |
2482 |
|
(obio controller, and wdc attached to the obio seems to work). |
2483 |
|
20051129 More work on MacPPC emulation (adding a dummy ADB controller). |
2484 |
|
Continuing the PCI bus cleanup (endianness and tag composition) |
2485 |
|
and rewriting all PCI controllers' access functions. |
2486 |
|
20051130 Various minor PPC dyntrans optimizations. |
2487 |
|
Manually inlining some parts of the framebuffer redraw routine. |
2488 |
|
Slowly beginning the conversion of the old MIPS emulation into |
2489 |
|
dyntrans (but this will take quite some time to get right). |
2490 |
|
Generalizing quick_pc_to_pointers. |
2491 |
|
20051201 Documentation update (David Muse has made available a kernel |
2492 |
|
which simplifies Debian/DECstation installation). |
2493 |
|
Continuing on the ADB bus controller. |
2494 |
|
20051202 Beginning a rewrite of the Zilog serial controller (dev_zs). |
2495 |
|
20051203 Continuing on the zs rewrite (now called dev_z8530); conversion |
2496 |
|
to devinit style. |
2497 |
|
Reworking some of the input-only vs output-only vs input-output |
2498 |
|
details of src/console.c, better warning messages, and adding |
2499 |
|
a debug dump. |
2500 |
|
Removing the concept of "device state"; it wasn't really used. |
2501 |
|
Changing some debug output (-vv should now be used to show all |
2502 |
|
details about devices and busses; not shown during normal |
2503 |
|
startup anymore). |
2504 |
|
Beginning on some SPARC instruction disassembly support. |
2505 |
|
20051204 Minor PPC updates (WALNUT skeleton stuff). |
2506 |
|
Continuing on the MIPS dyntrans rewrite. |
2507 |
|
More progress on the ADB controller (a keyboard is "detected" |
2508 |
|
by NetBSD and OpenBSD). |
2509 |
|
Downgrading OpenBSD/arc as a guest OS from "working" to |
2510 |
|
"almost working" in the documentation. |
2511 |
|
Progress on Algor emulation ("v3" PCI controller). |
2512 |
|
20051205 Minor updates. |
2513 |
|
20051207 Sorting devices according to address; this reduces complexity |
2514 |
|
of device lookups from O(n) to O(log n) in memory_rw (but no |
2515 |
|
real performance increase (yet) in experiments). |
2516 |
|
20051210 Beginning the work on native dyntrans backends (by making a |
2517 |
|
simple skeleton; so far only for Alpha hosts). |
2518 |
|
20051211 Some very minor SPARC updates. |
2519 |
|
20051215 Fixing a bug in the MIPS mul (note: not mult) instruction, |
2520 |
|
so it also works with non-64-bit emulation. (Thanks to Alec |
2521 |
|
Voropay for noticing the problem.) |
2522 |
|
20051216 More work on the fake/empty/simple/skeleton/whatever backend; |
2523 |
|
performance doesn't increase, so this isn't really worth it, |
2524 |
|
but it was probably worth it to prepare for a real backend |
2525 |
|
later. |
2526 |
|
20051219 More instr call statistics gathering and analysis stuff. |
2527 |
|
20051220 Another fix for MIPS 'mul'. Also converting mul and {d,}cl{o,z} |
2528 |
|
to dyntrans. |
2529 |
|
memory_ppc.c syntax error fix (noticed by Peter Valchev). |
2530 |
|
Beginning to move out machines from src/machine.c into |
2531 |
|
individual files in src/machines (in a way similar to the |
2532 |
|
autodev system for devices). |
2533 |
|
20051222 Updating the documentation regarding NetBSD/pmax 3.0. |
2534 |
|
20051223 - " - NetBSD/cats 3.0. |
2535 |
|
20051225 - " - NetBSD/hpcmips 3.0. |
2536 |
|
20051226 Continuing on the machine registry redesign. |
2537 |
|
Adding support for ARM rrx (33-bit rotate). |
2538 |
|
Fixing some signed/unsigned issues (exposed by gcc -W). |
2539 |
|
20051227 Fixing the bug which prevented a NetBSD/prep 3.0 install kernel |
2540 |
|
from starting (triggered when an mtmsr was the last instruction |
2541 |
|
on a page). Unfortunately not enough to get the kernel to run |
2542 |
|
as well as the 2.1 kernels did. |
2543 |
|
20051230 Some dyntrans refactoring. |
2544 |
|
20051231 Continuing on the machine registry redesign. |
2545 |
|
20060101-10 Continuing... moving more machines. Moving MD interrupt stuff |
2546 |
|
from machine.c into a new src/machines/interrupts.c. |
2547 |
|
20060114 Adding various mvmeppc machine skeletons. |
2548 |
|
20060115 Continuing on mvme* stuff. NetBSD/mvmeppc prints boot messages |
2549 |
|
(for MVME1600) and reaches the root device prompt, but no |
2550 |
|
specific hardware devices are emulated yet. |
2551 |
|
20060116 Minor updates to the mvme1600 emulation mode; the Eagle PCI bus |
2552 |
|
seems to work without much modification, and a 21143 can be |
2553 |
|
detected, interrupts might work (but untested so far). |
2554 |
|
Adding a fake MK48Txx (mkclock) device, for NetBSD/mvmeppc. |
2555 |
|
20060121 Adding an aux control register for ARM. (A BIG thank you to |
2556 |
|
Olivier Houchard for tracking down this bug.) |
2557 |
|
20060122 Adding more ARM instructions (smulXY), and dev_iq80321_7seg. |
2558 |
|
20060124 Adding disassembly of more ARM instructions (mia*, mra/mar), |
2559 |
|
and some semi-bogus XScale and i80321 registers. |
2560 |
|
20060201-02 Various minor updates. Moving the last machines out of |
2561 |
|
machine.c. |
2562 |
|
20060204 Adding a -c command line option, for running debugger commands |
2563 |
|
before the simulation starts, but after all files have been |
2564 |
|
loaded. |
2565 |
|
Minor iq80321-related updates. |
2566 |
|
20060209 Minor hacks (DEVINIT macro, etc). |
2567 |
|
Preparing for the generalization of the 64-bit dyntrans address |
2568 |
|
translation subsystem. |
2569 |
|
20060216 Adding ARM ldrd (double-register load). |
2570 |
|
20060217 Continuing on various ARM-related stuff. |
2571 |
|
20060218 More progress on the ATA/wdc emulation for NetBSD/iq80321. |
2572 |
|
NetBSD/evbarm can now be installed :-) Updating the docs, etc. |
2573 |
|
Continuing on Algor emulation. |
2574 |
|
|
2575 |
|
============== RELEASE 0.3.8 ============== |
2576 |
|
|
2577 |
|
20060219 Various minor updates. Removing the old MIPS16 skeleton code, |
2578 |
|
because it will need to be rewritten for dyntrans anyway. |
2579 |
|
20060220-22 Removing the non-working dyntrans backend support. |
2580 |
|
Continuing on the 64-bit dyntrans virtual memory generalization. |
2581 |
|
20060223 More work on the 64-bit vm generalization. |
2582 |
|
20060225 Beginning on MIPS dyntrans load/store instructions. |
2583 |
|
Minor PPC updates (64-bit load/store, etc). |
2584 |
|
Fixes for the variable-instruction-length framework, some |
2585 |
|
minor AVR updates (a simple Hello World program works!). |
2586 |
|
Beginning on a skeleton for automatically generating documen- |
2587 |
|
tation (for devices etc.). |
2588 |
|
20060226 PPC updates (adding some more 64-bit instructions, etc). |
2589 |
|
AVR updates (more instructions). |
2590 |
|
FINALLY found and fixed the zs bug, making NetBSD/macppc |
2591 |
|
accept the serial console. |
2592 |
|
20060301 Adding more AVR instructions. |
2593 |
|
20060304 Continuing on AVR-related stuff. Beginning on a framework for |
2594 |
|
cycle-accurate device emulation. Adding an experimental "PAL |
2595 |
|
TV" device (just a dummy so far). |
2596 |
|
20060305 Adding more AVR instructions. |
2597 |
|
Adding a dummy epcom serial controller (for TS7200 emulation). |
2598 |
|
20060310 Removing the emul() command from configuration files, so only |
2599 |
|
net() and machine() are supported. |
2600 |
|
Minor progress on the MIPS dyntrans rewrite. |
2601 |
|
20060311 Continuing on the MIPS dyntrans rewrite (adding more |
2602 |
|
instructions, etc). |
2603 |
|
20060315 Adding more instructions (sllv, srav, srlv, bgtz[l], blez[l], |
2604 |
|
beql, bnel, slti[u], various loads and stores). |
2605 |
|
20060316 Removing the ALWAYS_SIGNEXTEND_32 option, since it was rarely |
2606 |
|
used. |
2607 |
|
Adding more MIPS dyntrans instructions, and fixing bugs. |
2608 |
|
20060318 Implementing fast loads/stores for MIPS dyntrans (big/little |
2609 |
|
endian, 32-bit and 64-bit modes). |
2610 |
|
20060320 Making MIPS dyntrans the default configure option; use |
2611 |
|
"--enable-oldmips" to use the old bintrans system. |
2612 |
|
Adding MIPS dyntrans dmult[u]; minor updates. |
2613 |
|
20060322 Continuing... adding some more instructions. |
2614 |
|
Adding a simple skeleton for demangling C++ "_ZN" symbols. |
2615 |
|
20060323 Moving src/debugger.c into a new directory (src/debugger/). |
2616 |
|
20060324 Fixing the hack used to load PPC ELFs (useful for relocated |
2617 |
|
Linux/ppc kernels), and adding a dummy G3 machine mode. |
2618 |
|
20060325-26 Beginning to experiment with GDB remote serial protocol |
2619 |
|
connections; adding a -G command line option for selecting |
2620 |
|
which TCP port to listen to. |
2621 |
|
20060330 Beginning a major cleanup to replace things like "0x%016llx" |
2622 |
|
with more correct "0x%016"PRIx64, etc. |
2623 |
|
Continuing on the GDB remote serial protocol support. |
2624 |
|
20060331 More cleanup, and some minor GDB remote progress. |
2625 |
|
20060402 Adding a hack to the configure script, to allow compilation |
2626 |
|
on systems that lack PRIx64 etc. |
2627 |
|
20060406 Removing the temporary FreeBSD/arm hack in dev_ns16550.c and |
2628 |
|
replacing it with a better fix from Olivier Houchard. |
2629 |
|
20060407 A remote debugger (gdb or ddd) can now start and stop the |
2630 |
|
emulator using the GDB remote serial protocol, and registers |
2631 |
|
and memory can be read. MIPS only for now. |
2632 |
|
20060408 More GDB progress: single-stepping also works, and also adding |
2633 |
|
support for ARM, PowerPC, and Alpha targets. |
2634 |
|
Continuing on the delay-slot-across-page-boundary issue. |
2635 |
|
20060412 Minor update: beginning to add support for the SPARC target |
2636 |
|
to the remote GDB functionality. |
2637 |
|
20060414 Various MIPS updates: adding more instructions for dyntrans |
2638 |
|
(eret, add), and making some exceptions work. Fixing a bug |
2639 |
|
in dmult[u]. |
2640 |
|
Implementing the first SPARC instructions (sethi, or). |
2641 |
|
20060415 Adding "magic trap" instructions so that PROM calls can be |
2642 |
|
software emulated in MIPS dyntrans. |
2643 |
|
Adding more MIPS dyntrans instructions (ddiv, dadd) and |
2644 |
|
fixing another bug in dmult. |
2645 |
|
20060416 More MIPS dyntrans progress: adding [d]addi, movn, movz, dsllv, |
2646 |
|
rfi, an ugly hack for supporting R2000/R3000 style faked caches, |
2647 |
|
preliminary interrupt support, and various other updates and |
2648 |
|
bugfixes. |
2649 |
|
20060417 Adding more SPARC instructions (add, sub, sll[x], sra[x], |
2650 |
|
srl[x]), and useful SPARC header definitions. |
2651 |
|
Adding the first (trivial) x86/AMD64 dyntrans instructions (nop, |
2652 |
|
cli/sti, stc/clc, std/cld, simple mov, inc ax). Various other |
2653 |
|
x86 updates related to variable instruction length stuff. |
2654 |
|
Adding unaligned loads/stores to the MIPS dyntrans mode (but |
2655 |
|
still using the pre-dyntrans (slow) imlementation). |
2656 |
|
20060419 Fixing a MIPS dyntrans exception-in-delay-slot bug. |
2657 |
|
Removing the old "show opcode statistics" functionality, since |
2658 |
|
it wasn't really useful and isn't implemented for dyntrans. |
2659 |
|
Single-stepping (or running with instruction trace) now looks |
2660 |
|
ok with dyntrans with delay-slot architectures. |
2661 |
|
20060420 Minor hacks (removing the -B command line option when compiled |
2662 |
|
for non-bintrans, and some other very minor updates). |
2663 |
|
Adding (slow) MIPS dyntrans load-linked/store-conditional. |
2664 |
|
20060422 Applying fixes for bugs discovered by Nils Weller's nwcc |
2665 |
|
(static DEC memmap => now per machine, and adding an extern |
2666 |
|
keyword in cpu_arm_instr.c). |
2667 |
|
Finally found one of the MIPS dyntrans bugs that I've been |
2668 |
|
looking for (copy/paste spelling error BIG vs LITTLE endian in |
2669 |
|
cpu_mips_instr_loadstore.c for 16-bit fast stores). |
2670 |
|
FINALLY found the major MIPS dyntrans bug: slti vs sltiu |
2671 |
|
signed/unsigned code in cpu_mips_instr.c. :-) |
2672 |
|
Adding more MIPS dyntrans instructions (lwc1, swc1, bgezal[l], |
2673 |
|
ctc1, tlt[u], tge[u], tne, beginning on rdhwr). |
2674 |
|
NetBSD/hpcmips can now reach userland when using dyntrans :-) |
2675 |
|
Adding some more x86 dyntrans instructions. |
2676 |
|
Finally removed the old Alpha-specific virtual memory code, |
2677 |
|
and replaced it with the generic 64-bit version. |
2678 |
|
Beginning to add disassembly support for SPECIAL3 MIPS opcodes. |
2679 |
|
20060423 Continuing on the delay-slot-across-page-boundary issue; |
2680 |
|
adding an end_of_page2 ic slot (like I had planned before, but |
2681 |
|
had removed for some reason). |
2682 |
|
Adding a quick-and-dirty fallback to legacy coprocessor 1 |
2683 |
|
code (i.e. skipping dyntrans implementation for now). |
2684 |
|
NetBSD/hpcmips and NetBSD/pmax (when running on an emulated |
2685 |
|
R4400) can now be installed and run. :-) (Many bugs left |
2686 |
|
to fix, though.) |
2687 |
|
Adding more MIPS dyntrans instructions: madd[u], msub[u]. |
2688 |
|
Cleaning up the SPECIAL2 vs R5900/TX79/C790 "MMI" opcode |
2689 |
|
maps somewhat (disassembly and dyntrans instruction decoding). |
2690 |
|
20060424 Adding an isa_revision field to mips_cpu_types.h, and making |
2691 |
|
sure that SPECIAL3 opcodes cause Reserved Instruction |
2692 |
|
exceptions on MIPS32/64 revisions lower than 2. |
2693 |
|
Adding the SPARC 'ba', 'call', 'jmpl/retl', 'and', and 'xor' |
2694 |
|
instructions. |
2695 |
|
20060425 Removing the -m command line option ("run at most x |
2696 |
|
instructions") and -T ("single_step_on_bad_addr"), because |
2697 |
|
they never worked correctly with dyntrans anyway. |
2698 |
|
Freshening up the man page. |
2699 |
|
20060428 Adding more MIPS dyntrans instructions: bltzal[l], idle. |
2700 |
|
Enabling MIPS dyntrans compare interrupts. |
2701 |
|
20060429 FINALLY found the weird dyntrans bug, causing NetBSD etc. to |
2702 |
|
behave strangely: some floating point code (conditional |
2703 |
|
coprocessor branches) could not be reused from the old |
2704 |
|
non-dyntrans code. The "quick-and-dirty fallback" only appeared |
2705 |
|
to work. Fixing by implementing bc1* for MIPS dyntrans. |
2706 |
|
More MIPS instructions: [d]sub, sdc1, ldc1, dmtc1, dmfc1, cfc0. |
2707 |
|
Freshening up MIPS floating point disassembly appearance. |
2708 |
|
20060430 Continuing on C790/R5900/TX79 disassembly; implementing 128-bit |
2709 |
|
"por" and "pextlw". |
2710 |
|
20060504 Disabling -u (userland emulation) unless compiled as unstable |
2711 |
|
development version. |
2712 |
|
Beginning on freshening up the testmachine include files, |
2713 |
|
to make it easier to reuse those files (placing them in |
2714 |
|
src/include/testmachine/), and beginning on a set of "demos" |
2715 |
|
or "tutorials" for the testmachine functionality. |
2716 |
|
Minor updates to the MIPS GDB remote protocol stub. |
2717 |
|
Refreshing doc/experiments.html and gdb_remote.html. |
2718 |
|
Enabling Alpha emulation in the stable release configuration, |
2719 |
|
even though no guest OSes for Alpha can run yet. |
2720 |
|
20060505 Adding a generic 'settings' object, which will contain |
2721 |
|
references to settable variables (which will later be possible |
2722 |
|
to access using the debugger). |
2723 |
|
20060506 Updating dev_disk and corresponding demo/documentation (and |
2724 |
|
switching from SCSI to IDE disk types, so it actually works |
2725 |
|
with current test machines :-). |
2726 |
|
20060510 Adding a -D_LARGEFILE_SOURCE hack for 64-bit Linux hosts, |
2727 |
|
so that fseeko() doesn't give a warning. |
2728 |
|
Updating the section about how dyntrans works (the "runnable |
2729 |
|
IR") in doc/intro.html. |
2730 |
|
Instruction updates (some x64=1 checks, some more R5900 |
2731 |
|
dyntrans stuff: better mul/mult separation from MIPS32/64, |
2732 |
|
adding ei and di). |
2733 |
|
Updating MIPS cpuregs.h to a newer one (from NetBSD). |
2734 |
|
Adding more MIPS dyntrans instructions: deret, ehb. |
2735 |
|
20060514 Adding disassembly and beginning implementation of SPARC wr |
2736 |
|
and wrpr instructions. |
2737 |
|
20060515 Adding a SUN SPARC machine mode, with dummy SS20 and Ultra1 |
2738 |
|
machines. Adding the 32-bit "rd psr" instruction. |
2739 |
|
20060517 Disassembly support for the general SPARC rd instruction. |
2740 |
|
Partial implementation of the cmp (subcc) instruction. |
2741 |
|
Some other minor updates (making sure that R5900 processors |
2742 |
|
start up with the EIE bit enabled, otherwise Linux/playstation2 |
2743 |
|
receives no interrupts). |
2744 |
|
20060519 Minor MIPS updates/cleanups. |
2745 |
|
20060521 Moving the MeshCube machine into evbmips; this seems to work |
2746 |
|
reasonably well with a snapshot of a NetBSD MeshCube kernel. |
2747 |
|
Cleanup/fix of MIPS config0 register initialization. |
2748 |
|
20060529 Minor MIPS fixes, including a sign-extension fix to the |
2749 |
|
unaligned load/store code, which makes NetBSD/pmax on R3000 |
2750 |
|
work better with dyntrans. (Ultrix and Linux/DECstation still |
2751 |
|
don't work, though.) |
2752 |
|
20060530 Minor updates to the Alpha machine mode: adding an AlphaBook |
2753 |
|
mode, an LCA bus (forwarding accesses to an ISA bus), etc. |
2754 |
|
20060531 Applying a bugfix for the MIPS dyntrans sc[d] instruction from |
2755 |
|
Ondrej Palkovsky. (Many thanks.) |
2756 |
|
20060601 Minifix to allow ARM immediate msr instruction to not give |
2757 |
|
an error for some valid values. |
2758 |
|
More Alpha updates. |
2759 |
|
20060602 Some minor Alpha updates. |
2760 |
|
20060603 Adding the Alpha cmpbge instruction. NetBSD/alpha prints its |
2761 |
|
first boot messages :-) on an emulated Alphabook 1. |
2762 |
|
20060612 Minor updates; adding a dev_ether.h include file for the |
2763 |
|
testmachine ether device. Continuing the hunt for the dyntrans |
2764 |
|
bug which makes Linux and Ultrix on DECstation behave |
2765 |
|
strangely... FINALLY found it! It seems to be related to |
2766 |
|
invalidation of the translation cache, on tlbw{r,i}. There |
2767 |
|
also seems to be some remaining interrupt-related problems. |
2768 |
|
20060614 Correcting the implementation of ldc1/sdc1 for MIPS dyntrans |
2769 |
|
(so that it uses 16 32-bit registers if the FR bit in the |
2770 |
|
status register is not set). |
2771 |
|
20060616 REMOVING BINTRANS COMPLETELY! |
2772 |
|
Removing the old MIPS interpretation mode. |
2773 |
|
Removing the MFHILO_DELAY and instruction delay stuff, because |
2774 |
|
they wouldn't work with dyntrans anyway. |
2775 |
|
20060617 Some documentation updates (adding "NetBSD-archive" to some |
2776 |
|
URLs, and new Debian/DECstation installation screenshots). |
2777 |
|
Removing the "tracenull" and "enable-caches" configure options. |
2778 |
|
Improving MIPS dyntrans performance somewhat (only invalidate |
2779 |
|
translations if necessary, on writes to the entryhi register, |
2780 |
|
instead of doing it for all cop0 writes). |
2781 |
|
20060618 More cleanup after the removal of the old MIPS emulation. |
2782 |
|
Trying to fix the MIPS dyntrans performance bugs/bottlenecks; |
2783 |
|
only semi-successful so far (for R3000). |
2784 |
|
20060620 Minor update to allow clean compilation again on Tru64/Alpha. |
2785 |
|
20060622 MIPS cleanup and fixes (removing the pc_last stuff, which |
2786 |
|
doesn't make sense with dyntrans anyway, and fixing a cross- |
2787 |
|
page-delay-slot-with-exception case in end_of_page). |
2788 |
|
Removing the old max_random_cycles_per_chunk stuff, and the |
2789 |
|
concept of cycles vs instructions for MIPS emulation. |
2790 |
|
FINALLY found and fixed the bug which caused NetBSD/pmax |
2791 |
|
clocks to behave strangely (it was a load to the zero register, |
2792 |
|
which was treated as a NOP; now it is treated as a load to a |
2793 |
|
dummy scratch register). |
2794 |
|
20060623 Increasing the dyntrans chunk size back to |
2795 |
|
N_SAFE_DYNTRANS_LIMIT, instead of N_SAFE_DYNTRANS_LIMIT/2. |
2796 |
|
Preparing for a quick release, even though there are known |
2797 |
|
bugs, and performance for non-R3000 MIPS emulation is very |
2798 |
|
poor. :-/ |
2799 |
|
Reverting to half the dyntrans chunk size again, because |
2800 |
|
NetBSD/cats seemed less stable with full size chunks. :( |
2801 |
|
NetBSD/sgimips 3.0 can now run :-) (With release 0.3.8, only |
2802 |
|
NetBSD/sgimips 2.1 worked, not 3.0.) |
2803 |
|
|
2804 |
|
============== RELEASE 0.4.0 ============== |
2805 |
|
|
2806 |
|
20060624 Replacing the error-prone machine type initialization stuff |
2807 |
|
with something more reasonable. |
2808 |
|
Finally removing the old "cpu_run" kludge; moving around stuff |
2809 |
|
in machine.c and emul.c to better suit the dyntrans system. |
2810 |
|
Various minor dyntrans cleanups (renaming translate_address to |
2811 |
|
translate_v2p, and experimenting with template physpages). |
2812 |
|
20060625 Removing the speed hack which separated the vph entries into |
2813 |
|
two halves (code vs data); things seem a lot more stable now. |
2814 |
|
Minor performance hack: R2000/R3000 cache isolation now only |
2815 |
|
clears address translations when going into isolation, not |
2816 |
|
when going out of it. |
2817 |
|
Fixing the MIPS interrupt problems by letting mtc0 immediately |
2818 |
|
cause interrupts. |
2819 |
|
|
2820 |
|
============== RELEASE 0.4.0.1 ============== |
2821 |
|
|
2822 |
|
20060626 Continuing on SPARC emulation (beginning on the 'save' |
2823 |
|
instruction, register windows, etc). |
2824 |
|
20060629 Planning statistics gathering (new -s command line option), |
2825 |
|
and renaming speed_tricks to allow_instruction_combinations. |
2826 |
|
20060630 Some minor manual page updates. |
2827 |
|
Various cleanups. |
2828 |
|
Implementing the -s command line option. |
2829 |
|
20060701 FINALLY found the bug which prevented Linux and Ultrix from |
2830 |
|
running without the ugly hack in the R2000/R3000 cache isol |
2831 |
|
code; it was the phystranslation hint array which was buggy. |
2832 |
|
Removing the phystranslation hint code completely, for now. |
2833 |
|
20060702 Minor dyntrans cleanups; invalidation of physpages now only |
2834 |
|
invalidate those parts of a page that have actually been |
2835 |
|
translated. (32 parts per page.) |
2836 |
|
Some MIPS non-R3000 speed fixes. |
2837 |
|
Experimenting with MIPS instruction combination for some |
2838 |
|
addiu+bne+sw loops, and sw+sw+sw. |
2839 |
|
Adding support (again) for larger-than-4KB pages in MIPS tlbw*. |
2840 |
|
Continuing on SPARC emulation: adding load/store instructions. |
2841 |
|
20060704 Fixing a virtual vs physical page shift bug in the new tlbw* |
2842 |
|
implementation. Problem noticed by Jakub Jermar. (Many thanks.) |
2843 |
|
Moving rfe and eret to cpu_mips_instr.c, since that is the |
2844 |
|
only place that uses them nowadays. |
2845 |
|
20060705 Removing the BSD license from the "testmachine" include files, |
2846 |
|
placing them in the public domain instead; this enables the |
2847 |
|
testmachine stuff to be used from projects which are |
2848 |
|
incompatible with the BSD license for some reason. |
2849 |
|
20060707 Adding instruction combinations for the R2000/R3000 L1 |
2850 |
|
I-cache invalidation code used by NetBSD/pmax 3.0, lui+addiu, |
2851 |
|
various branches followed by addiu or nop, and jr ra followed |
2852 |
|
by addiu. The time it takes to perform a full NetBSD/pmax R3000 |
2853 |
|
install on the laptop has dropped from 573 seconds to 539. :-) |
2854 |
|
20060708 Adding a framebuffer controller device (dev_fbctrl), which so |
2855 |
|
far can be used to change the fb resolution during runtime, but |
2856 |
|
in the future will also be useful for accelerated block fill/ |
2857 |
|
copy, and possibly also simplified character output. |
2858 |
|
Adding an instruction combination for NetBSD/pmax' strlen. |
2859 |
|
20060709 Minor fixes: reading raw files in src/file.c wasn't memblock |
2860 |
|
aligned, removing buggy multi_sw MIPS instruction combination, |
2861 |
|
etc. |
2862 |
|
20060711 Adding a machine_qemu.c, which contains a "qemu_mips" machine. |
2863 |
|
(It mimics QEMU's MIPS machine mode, so that a test kernel |
2864 |
|
made for QEMU_MIPS also can run in GXemul... at least to some |
2865 |
|
extent.) Adding a short section about how to run this mode to |
2866 |
|
doc/guestoses.html. |
2867 |
|
20060714 Misc. minor code cleanups. |
2868 |
|
20060715 Applying a patch which adds getchar() to promemul/yamon.c |
2869 |
|
(from Oleksandr Tymoshenko). |
2870 |
|
Adding yamon.h from NetBSD, and rewriting yamon.c to use it |
2871 |
|
(instead of ugly hardcoded numbers) + some cleanup. |
2872 |
|
20060716 Found and fixed the bug which broke single-stepping of 64-bit |
2873 |
|
programs between 0.4.0 and 0.4.0.1 (caused by too quick |
2874 |
|
refactoring and no testing). Hopefully this fix will not |
2875 |
|
break too many other things. |
2876 |
|
20060718 Continuing on the 8253 PIT; it now works with Linux/QEMU_MIPS. |
2877 |
|
Re-adding the sw+sw+sw instr comb (the problem was that I had |
2878 |
|
ignored endian issues); however, it doesn't seem to give any |
2879 |
|
big performance gain. |
2880 |
|
20060720 Adding a dummy Transputer mode (T414, T800 etc) skeleton (only |
2881 |
|
the 'j' and 'ldc' instructions are implemented so far). :-} |
2882 |
|
20060721 Adding gtreg.h from NetBSD, updating dev_gt.c to use it, plus |
2883 |
|
misc. other updates to get Linux 2.6 for evbmips/malta working |
2884 |
|
(thanks to Alec Voropay for the details). |
2885 |
|
FINALLY found and fixed the bug which made tlbw* for non-R3000 |
2886 |
|
buggy; it was a reference count problem in the dyntrans core. |
2887 |
|
20060722 Testing stuff; things seem stable enough for a new release. |
2888 |
|
|
2889 |
|
============== RELEASE 0.4.1 ============== |
2890 |
|
|
2891 |
|
20060723 More Transputer instructions (pfix, nfix, opr, mint, ldl, ldlp, |
2892 |
|
eqc, rev, ajw, stl, stlf, sthf, sub, ldnl, ldnlp, ldpi, move, |
2893 |
|
wcnt, add, bcnt). |
2894 |
|
Adding more SPARC instructions (andcc, addcc, bl, rdpr). |
2895 |
|
Progress on the igsfb framebuffer used by NetBSD/netwinder. |
2896 |
|
Enabling 8-bit fills in dev_fb. |
2897 |
|
NetBSD/netwinder 3.0.1 can now run from a disk image :-) |
2898 |
|
20060724 Cleanup/performance fix for 64-bit virtual translation table |
2899 |
|
updates (by removing the "timestamp" stuff). A full NetBSD/pmax |
2900 |
|
3.0.1 install for R4400 has dropped from 667 seconds to 584 :) |
2901 |
|
Fixing the igsfb "almost vga" color (it is 24-bit, not 18-bit). |
2902 |
|
Adding some MIPS instruction combinations (3*lw, and 3*addu). |
2903 |
|
The 8048 keyboard now turns off interrupt enable between the |
2904 |
|
KBR_ACK and the KBR_RSTDONE, to work better with Linux 2.6. |
2905 |
|
Not causing PPC DEC interrupts if PPC_NO_DEC is set for a |
2906 |
|
specific CPU; NetBSD/bebox gets slightly further than before. |
2907 |
|
Adding some more SPARC instructions: branches, udiv. |
2908 |
|
20060725 Refreshing dev_pckbc.c a little. |
2909 |
|
Cleanups for the SH emulation mode, and adding the first |
2910 |
|
"compact" (16-bit) instructions: various simple movs, nop, |
2911 |
|
shll, stc, or, ldc. |
2912 |
|
20060726 Adding dummy "pcn" (AMD PCnet NIC) PCI glue. |
2913 |
|
20060727 Various cleanups; removing stuff from cpu.h, such as |
2914 |
|
running_translated (not really meaningful anymore), and |
2915 |
|
page flags (breaking into the debugger clears all translations |
2916 |
|
anyway). |
2917 |
|
Minor MIPS instruction combination updates. |
2918 |
|
20060807 Expanding the 3*sw and 3*lw MIPS instruction combinations to |
2919 |
|
work with 2* and 4* too, resulting in a minor performance gain. |
2920 |
|
Implementing a usleep hack for the RM52xx/MIPS32/MIPS64 "wait" |
2921 |
|
instruction (when emulating 1 cpu). |
2922 |
|
20060808 Experimenting with some more MIPS instruction combinations. |
2923 |
|
Implementing support for showing a (hardcoded 12x22) text |
2924 |
|
cursor in igsfb. |
2925 |
|
20060809 Simplifying the NetBSD/evbmips (Malta) install instructions |
2926 |
|
somewhat (by using a NetBSD/pmax ramdisk install kernel). |
2927 |
|
20060812 Experimenting more with the MIPS 'wait' instruction. |
2928 |
|
PCI configuration register writes can now be handled, which |
2929 |
|
allow PCI IDE controllers to work with NetBSD/Malta 3.0.1 and |
2930 |
|
NetBSD/cobalt 3.0.1. (Previously only NetBSD 2.1 worked.) |
2931 |
|
20060813 Updating dev_gt.c based on numbers from Alec Voropay, to enable |
2932 |
|
Linux 2.6 to use PCI on Malta. |
2933 |
|
Continuing on Algor interrupt stuff. |
2934 |
|
20060814 Adding support for routing ISA interrupts to two different |
2935 |
|
interrupts, making it possible to run NetBSD/algor :-) |
2936 |
|
20060814-15 Testing for the release. |
2937 |
|
|
2938 |
|
============== RELEASE 0.4.2 ============== |
2939 |
|
|
2940 |
|
20060816 Adding a framework for emulated/virtual timers (src/timer.c), |
2941 |
|
using only setitimer(). |
2942 |
|
Rewriting the mc146818 to use the new timer framework. |
2943 |
|
20060817 Adding a call to gettimeofday() every now and then (once every |
2944 |
|
second, at the moment) to resynch the timer if it drifts. |
2945 |
|
Beginning to convert the ISA timer interrupt mechanism (8253 |
2946 |
|
and 8259) to use the new timer framework. |
2947 |
|
Removing the -I command line option. |
2948 |
|
20060819 Adding the -I command line option again, with new semantics. |
2949 |
|
Working on Footbridge timer interrupts; NetBSD/NetWinder and |
2950 |
|
NetBSD/CATS now run at correct speed, but unfortunately with |
2951 |
|
HUGE delays during bootup. |
2952 |
|
20060821 Some minor m68k updates. Adding the first instruction: nop. :) |
2953 |
|
Minor Alpha emulation updates. |
2954 |
|
20060822 Adding a FreeBSD development specific YAMON environment |
2955 |
|
variable ("khz") (as suggested by Bruce M. Simpson). |
2956 |
|
Moving YAMON environment variable initialization from |
2957 |
|
machine_evbmips.c into promemul/yamon.c, and adding some more |
2958 |
|
variables. |
2959 |
|
Continuing on the LCA PCI bus controller (for Alpha machines). |
2960 |
|
20060823 Continuing on the timer stuff: experimenting with MIPS count/ |
2961 |
|
compare interrupts connected to the timer framework. |
2962 |
|
20060825 Adding bogus SCSI commands 0x51 (SCSICDROM_READ_DISCINFO) and |
2963 |
|
0x52 (SCSICDROM_READ_TRACKINFO) to the SCSI emulation layer, |
2964 |
|
to allow NetBSD/pmax 4.0_BETA to be installed from CDROM. |
2965 |
|
Minor updates to the LCA PCI controller. |
2966 |
|
20060827 Implementing a CHIP8 cpu mode, and a corresponding CHIP8 |
2967 |
|
machine, for fun. Disassembly support for all instructions, |
2968 |
|
and most of the common instructions have been implemented: mvi, |
2969 |
|
mov_imm, add_imm, jmp, rand, cls, sprite, skeq_imm, jsr, |
2970 |
|
skne_imm, bcd, rts, ldr, str, mov, or, and, xor, add, sub, |
2971 |
|
font, ssound, sdelay, gdelay, bogus skup/skpr, skeq, skne. |
2972 |
|
20060828 Beginning to convert the CHIP8 cpu in the CHIP8 machine to a |
2973 |
|
(more correct) RCA 180x cpu. (Disassembly for all 1802 |
2974 |
|
instructions has been implemented, but no execution yet, and |
2975 |
|
no 1805 extended instructions.) |
2976 |
|
20060829 Minor Alpha emulation updates. |
2977 |
|
20060830 Beginning to experiment a little with PCI IDE for SGI O2. |
2978 |
|
Fixing the cursor key mappings for MobilePro 770 emulation. |
2979 |
|
Fixing the LK201 warning caused by recent NetBSD/pmax. |
2980 |
|
The MIPS R41xx standby, suspend, and hibernate instructions now |
2981 |
|
behave like the RM52xx/MIPS32/MIPS64 wait instruction. |
2982 |
|
Fixing dev_wdc so it calculates correct (64-bit) offsets before |
2983 |
|
giving them to diskimage_access(). |
2984 |
|
20060831 Continuing on Alpha emulation (OSF1 PALcode). |
2985 |
|
20060901 Minor Alpha updates; beginning on virtual memory pagetables. |
2986 |
|
Removed the limit for max nr of devices (in preparation for |
2987 |
|
allowing devices' base addresses to be changed during runtime). |
2988 |
|
Adding a hack for MIPS [d]mfc0 select 0 (except the count |
2989 |
|
register), so that the coproc register is simply copied. |
2990 |
|
The MIPS suspend instruction now exits the emulator, instead |
2991 |
|
of being treated as a wait instruction (this causes NetBSD/ |
2992 |
|
hpcmips to get correct 'halt' behavior). |
2993 |
|
The VR41xx RTC now returns correct time. |
2994 |
|
Connecting the VR41xx timer to the timer framework (fixed at |
2995 |
|
128 Hz, for now). |
2996 |
|
Continuing on SPARC emulation, adding more instructions: |
2997 |
|
restore, ba_xcc, ble. The rectangle drawing demo works :) |
2998 |
|
Removing the last traces of the old ENABLE_CACHE_EMULATION |
2999 |
|
MIPS stuff (not usable with dyntrans anyway). |
3000 |
|
20060902 Splitting up src/net.c into several smaller files in its own |
3001 |
|
subdirectory (src/net/). |
3002 |
|
20060903 Cleanup of the files in src/net/, to make them less ugly. |
3003 |
|
20060904 Continuing on the 'settings' subsystem. |
3004 |
|
Minor progress on the SPARC emulation mode. |
3005 |
|
20060905 Cleanup of various things, and connecting the settings |
3006 |
|
infrastructure to various subsystems (emul, machine, cpu, etc). |
3007 |
|
Changing the lk201 mouse update routine to not rely on any |
3008 |
|
emulated hardware framebuffer cursor coordinates, but instead |
3009 |
|
always do (semi-usable) relative movements. |
3010 |
|
20060906 Continuing on the lk201 mouse stuff. Mouse behaviour with |
3011 |
|
multiple framebuffers (which was working in Ultrix) is now |
3012 |
|
semi-broken (but it still works, in a way). |
3013 |
|
Moving the documentation about networking into its own file |
3014 |
|
(networking.html), and refreshing it a bit. Adding an example |
3015 |
|
of how to use ethernet frame direct-access (udp_snoop). |
3016 |
|
20060907 Continuing on the settings infrastructure. |
3017 |
|
20060908 Minor updates to SH emulation: for 32-bit emulation: delay |
3018 |
|
slots and the 'jsr @Rn' instruction. I'm putting 64-bit SH5 on |
3019 |
|
ice, for now. |
3020 |
|
20060909-10 Implementing some more 32-bit SH instructions. Removing the |
3021 |
|
64-bit mode completely. Enough has now been implemented to run |
3022 |
|
the rectangle drawing demo. :-) |
3023 |
|
20060912 Adding more SH instructions. |
3024 |
|
20060916 Continuing on SH emulation (some more instructions: div0u, |
3025 |
|
div1, rotcl/rotcr, more mov instructions, dt, braf, sets, sett, |
3026 |
|
tst_imm, dmuls.l, subc, ldc_rm_vbr, movt, clrt, clrs, clrmac). |
3027 |
|
Continuing on the settings subsystem (beginning on reading/ |
3028 |
|
writing settings, removing bugs, and connecting more cpus to |
3029 |
|
the framework). |
3030 |
|
20060919 More work on SH emulation; adding an ldc banked instruction, |
3031 |
|
and attaching a 640x480 framebuffer to the Dreamcast machine |
3032 |
|
mode (NetBSD/dreamcast prints the NetBSD copyright banner :-), |
3033 |
|
and then panics). |
3034 |
|
20060920 Continuing on the settings subsystem. |
3035 |
|
20060921 Fixing the Footbridge timer stuff so that NetBSD/cats and |
3036 |
|
NetBSD/netwinder boot up without the delays. |
3037 |
|
20060922 Temporarily hardcoding MIPS timer interrupt to 100 Hz. With |
3038 |
|
'wait' support disabled, NetBSD/malta and Linux/malta run at |
3039 |
|
correct speed. |
3040 |
|
20060923 Connecting dev_gt to the timer framework, so that NetBSD/cobalt |
3041 |
|
runs at correct speed. |
3042 |
|
Moving SH4-specific memory mapped registers into its own |
3043 |
|
device (dev_sh4.c). |
3044 |
|
Running with -N now prints "idling" instead of bogus nr of |
3045 |
|
instrs/second (which isn't valid anyway) while idling. |
3046 |
|
20060924 Algor emulation should now run at correct speed. |
3047 |
|
Adding disassembly support for some MIPS64 revision 2 |
3048 |
|
instructions: ext, dext, dextm, dextu. |
3049 |
|
20060926 The timer framework now works also when the MIPS wait |
3050 |
|
instruction is used. |
3051 |
|
20060928 Re-implementing checks for coprocessor availability for MIPS |
3052 |
|
cop0 instructions. (Thanks to Carl van Schaik for noticing the |
3053 |
|
lack of cop0 availability checks.) |
3054 |
|
20060929 Implementing an instruction combination hack which treats |
3055 |
|
NetBSD/pmax' idle loop as a wait-like instruction. |
3056 |
|
20060930 The ENTRYHI_R_MASK was missing in (at least) memory_mips_v2p.c, |
3057 |
|
causing TLB lookups to sometimes succeed when they should have |
3058 |
|
failed. (A big thank you to Juli Mallett for noticing the |
3059 |
|
problem.) |
3060 |
|
Adding disassembly support for more MIPS64 revision 2 opcodes |
3061 |
|
(seb, seh, wsbh, jalr.hb, jr.hb, synci, ins, dins, dinsu, |
3062 |
|
dinsm, dsbh, dshd, ror, dror, rorv, drorv, dror32). Also |
3063 |
|
implementing seb, seh, dsbh, dshd, and wsbh. |
3064 |
|
Implementing an instruction combination hack for Linux/pmax' |
3065 |
|
idle loop, similar to the NetBSD/pmax case. |
3066 |
|
20061001 Changing the NetBSD/sgimips install instructions to extract |
3067 |
|
files from an iso image, instead of downloading them via ftp. |
3068 |
|
20061002 More-than-31-bit userland addresses in memory_mips_v2p.c were |
3069 |
|
not actually working; applying a fix from Carl van Schaik to |
3070 |
|
enable them to work + making some other updates (adding kuseg |
3071 |
|
support). |
3072 |
|
Fixing hpcmips (vr41xx) timer initialization. |
3073 |
|
Experimenting with O(n)->O(1) reduction in the MIPS TLB lookup |
3074 |
|
loop. Seems to work both for R3000 and non-R3000. |
3075 |
|
20061003 Continuing a little on SH emulation (adding more control |
3076 |
|
registers; mini-cleanup of memory_sh.c). |
3077 |
|
20061004 Beginning on a dev_rtc, a clock/timer device for the test |
3078 |
|
machines; also adding a demo, and some documentation. |
3079 |
|
Fixing a bug in SH "mov.w @(disp,pc),Rn" (the result wasn't |
3080 |
|
sign-extended), and adding the addc and ldtlb instructions. |
3081 |
|
20061005 Contining on SH emulation: virtual to physical address |
3082 |
|
translation, and a skeleton exception mechanism. |
3083 |
|
20061006 Adding more SH instructions (various loads and stores, rte, |
3084 |
|
negc, muls.w, various privileged register-move instructions). |
3085 |
|
20061007 More SH instructions: various move instructions, trapa, div0s, |
3086 |
|
float, fdiv, ftrc. |
3087 |
|
Continuing on dev_rtc; removing the rtc demo. |
3088 |
|
20061008 Adding a dummy Dreamcast PROM module. (Homebrew Dreamcast |
3089 |
|
programs using KOS libs need this.) |
3090 |
|
Adding more SH instructions: "stc vbr,rn", rotl, rotr, fsca, |
3091 |
|
fmul, fadd, various floating-point moves, etc. A 256-byte |
3092 |
|
demo for Dreamcast runs :-) |
3093 |
|
20061012 Adding the SH "lds Rm,pr" and bsr instructions. |
3094 |
|
20061013 More SH instructions: "sts fpscr,rn", tas.b, and some more |
3095 |
|
floating point instructions, cmp/str, and more moves. |
3096 |
|
Adding a dummy dev_pvr (Dreamcast graphics controller). |
3097 |
|
20061014 Generalizing the expression evaluator (used in the built-in |
3098 |
|
debugger) to support parentheses and +-*/%^&|. |
3099 |
|
20061015 Removing the experimental tlb index hint code in |
3100 |
|
mips_memory_v2p.c, since it didn't really have any effect. |
3101 |
|
20061017 Minor SH updates; adding the "sts pr,Rn", fcmp/gt, fneg, |
3102 |
|
frchg, and some other instructions. Fixing missing sign- |
3103 |
|
extension in an 8-bit load instruction. |
3104 |
|
20061019 Adding a simple dev_dreamcast_rtc. |
3105 |
|
Implementing memory-mapped access to the SH ITLB/UTLB arrays. |
3106 |
|
20061021 Continuing on various SH and Dreamcast things: sh4 timers, |
3107 |
|
debug messages for dev_pvr, fixing some virtual address |
3108 |
|
translation bugs, adding the bsrf instruction. |
3109 |
|
The NetBSD/dreamcast GENERIC_MD kernel now reaches userland :) |
3110 |
|
Adding a dummy dev_dreamcast_asic.c (not really useful yet). |
3111 |
|
Implementing simple support for Store Queues. |
3112 |
|
Beginning on the PVR Tile Accelerator. |
3113 |
|
20061022 Generalizing the PVR framebuffer to support off-screen drawing, |
3114 |
|
multiple bit-depths, etc. (A small speed penalty, but most |
3115 |
|
likely worth it.) |
3116 |
|
Adding more SH instructions (mulu.w, fcmp/eq, fsub, fmac, |
3117 |
|
fschg, and some more); correcting bugs in "fsca" and "float". |
3118 |
|
20061024 Adding the SH ftrv (matrix * vector) instruction. Marcus |
3119 |
|
Comstedt's "tatest" example runs :) (wireframe only). |
3120 |
|
Correcting disassembly for SH floating point instructions that |
3121 |
|
use the xd* registers. |
3122 |
|
Adding the SH fsts instruction. |
3123 |
|
In memory_device_dyntrans_access(), only the currently used |
3124 |
|
range is now invalidated, and not the entire device range. |
3125 |
|
20061025 Adding a dummy AVR32 cpu mode skeleton. |
3126 |
|
20061026 Various Dreamcast updates; beginning on a Maple bus controller. |
3127 |
|
20061027 Continuing on the Maple bus. A bogus Controller, Keyboard, and |
3128 |
|
Mouse can now be detected by NetBSD and KOS homebrew programs. |
3129 |
|
Cleaning up the SH4 Timer Management Unit, and beginning on |
3130 |
|
SH4 interrupts. |
3131 |
|
Implementing the Dreamcast SYSASIC. |
3132 |
|
20061028 Continuing on the SYSASIC. |
3133 |
|
Adding the SH fsqrt instruction. |
3134 |
|
memory_sh.c now actually scans the ITLB. |
3135 |
|
Fixing a bug in dev_sh4.c, related to associative writes into |
3136 |
|
the memory-mapped UTLB array. NetBSD/dreamcast now reaches |
3137 |
|
userland stably, and prints the "Terminal type?" message :-] |
3138 |
|
Implementing enough of the Dreamcast keyboard to make NetBSD |
3139 |
|
accept it for input. |
3140 |
|
Enabling SuperH for stable (non-development) builds. |
3141 |
|
Adding NetBSD/dreamcast to the documentation, although it |
3142 |
|
doesn't support root-on-nfs yet. |
3143 |
|
20061029 Changing usleep(1) calls in the debugger to to usleep(10000) |
3144 |
|
(according to Brian Foley, this makes GXemul run better on |
3145 |
|
MacOS X). |
3146 |
|
Making the Maple "Controller" do something (enough to barely |
3147 |
|
interact with dcircus.elf). |
3148 |
|
20061030-31 Some progress on the PVR. More test programs start running (but |
3149 |
|
with strange output). |
3150 |
|
Various other SH4-related updates. |
3151 |
|
20061102 Various Dreamcast and SH4 updates; more KOS demos run now. |
3152 |
|
20061104 Adding a skeleton dev_mb8696x.c (the Dreamcast's LAN adapter). |
3153 |
|
20061105 Continuing on the MB8696x; NetBSD/dreamcast detects it as mbe0. |
3154 |
|
Testing for the release. |
3155 |
|
|
3156 |
|
============== RELEASE 0.4.3 ============== |
3157 |
|
|