1 |
$Id: HISTORY,v 1.1055 2005/11/25 22:48:36 debug Exp $ |
$Id: HISTORY,v 1.1256 2006/06/23 20:43:44 debug Exp $ |
2 |
|
|
3 |
Changelog for GXemul: |
Changelog for GXemul: |
4 |
--------------------- |
--------------------- |
2469 |
|
|
2470 |
============== RELEASE 0.3.7 ============== |
============== 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 |
|
|