/[gxemul]/trunk/HISTORY
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 16 by dpavlin, Mon Oct 8 16:19:01 2007 UTC revision 22 by dpavlin, Mon Oct 8 16:19:37 2007 UTC
# Line 1  Line 1 
1  $Id: HISTORY,v 1.988 2005/10/11 03:53:57 debug Exp $  $Id: HISTORY,v 1.1121 2006/02/18 21:03:08 debug Exp $
2    
3  Changelog for GXemul:  Changelog for GXemul:
4  ---------------------  ---------------------
# Line 2311  Changelog for GXemul: Line 2311  Changelog for GXemul:
2311  20051010        Small hack to not update virtual translation tables if memory  20051010        Small hack to not update virtual translation tables if memory
2312                  accesses are done with the NO_EXCEPTION flag; a time reduction                  accesses are done with the NO_EXCEPTION flag; a time reduction
2313                  of almost a factor 2 for a full NetBSD/cats install. :-)                  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  20051011        Passing -A as the default boot arg for CATS (works fine with
2315                  OpenBSD/cats).                  OpenBSD/cats).
2316    
2317  ==============  RELEASE 0.3.6.1  ==============  ==============  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    

Legend:
Removed from v.16  
changed lines
  Added in v.22

  ViewVC Help
Powered by ViewVC 1.1.26