1 |
$Id: HISTORY,v 1.982 2005/10/07 22:45:32 debug Exp $ |
$Id: HISTORY,v 1.1121 2006/02/18 21:03:08 debug Exp $ |
2 |
|
|
3 |
Changelog for GXemul: |
Changelog for GXemul: |
4 |
--------------------- |
--------------------- |
2297 |
except for a minor bug at the end of the OpenBSD/cats install. |
except for a minor bug at the end of the OpenBSD/cats install. |
2298 |
Updating the documentation, preparing for the next release. |
Updating the documentation, preparing for the next release. |
2299 |
20051008 Continuing with release testing and cleanup. |
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 |
|
|