/[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 2 by dpavlin, Mon Oct 8 16:17:48 2007 UTC revision 12 by dpavlin, Mon Oct 8 16:18:38 2007 UTC
# Line 1  Line 1 
1  $Id: HISTORY,v 1.676 2005/04/07 15:14:55 debug Exp $  $Id: HISTORY,v 1.905 2005/08/16 09:16:24 debug Exp $
2    
3  Changelog for GXemul:  Changelog for GXemul:
4  ---------------------  ---------------------
# Line 1817  Changelog for GXemul: Line 1817  Changelog for GXemul:
1817    
1818  ==============  RELEASE 0.3.1  ==============  ==============  RELEASE 0.3.1  ==============
1819    
1820    20050408        Some minor updates to the wdc. Linux now doesn't complain
1821                    anymore if a disk is non-present.
1822    20050409        Various minor fixes (a bintrans bug, and some other things).
1823                    The wdc seems to work with Playstation2 emulation, but there
1824                    is a _long_ annoying delay when disks are detected.
1825                    Fixing a really important bintrans bug (when devices and RAM
1826                    are mixed within 4KB pages), which was triggered with
1827                    NetBSD/playstation2 kernels.
1828    20050410        Adding a dummy dev_ps2_ether (just so that NetBSD doesn't
1829                    complain as much during bootup).
1830                    Symbols starting with '$' are now ignored.
1831                    Renaming dev_ps2_ohci.c to dev_ohci.c, etc.
1832    20050411        Moving the bintrans-cache-isolation check from cpu_mips.c to
1833                    cpu_mips_coproc.c. (I thought this would give a speedup, but
1834                    it's not noticable.)
1835                    Better playstation2 sbus interrupt code.
1836                    Skip ahead many ticks if the count register is read manually.
1837                    (This increases the speed of delay-loops that simply read
1838                    the count register.)
1839    20050412        Updates to the playstation2 timer/interrupt code.
1840                    Some other minor updates.
1841    20050413        NetBSD/cobalt runs from a disk image :-) including userland;
1842                    updating the documentation on how to install NetBSD/cobalt
1843                    using NetBSD/pmax (!).
1844                    Some minor bintrans updates (no real speed improvement) and
1845                    other minor updates (playstation2 now uses the -o options).
1846    20050414        Adding a dummy x86 (and AMD64) mode.
1847    20050415        Adding some (32-bit and 16-bit) x86 instructions.
1848                    Adding some initial support for non-SCSI, non-IDE floppy
1849                    images. (The x86 mode can boot from these, more or less.)
1850                    Moving the devices/ and include/ directories to src/devices/
1851                    and src/include/, respectively.
1852    20050416        Continuing on the x86 stuff. (Adding pc_bios.c and some simple
1853                    support for software interrupts in 16-bit mode.)
1854    20050417        Ripping out most of the x86 instruction decoding stuff, trying
1855                    to rewrite it in a cleaner way.
1856                    Disabling some of the least working CPU families in the
1857                    configure script (sparc, x86, alpha, hppa), so that they are
1858                    not enabled by default.
1859    20050418        Trying to fix the bug which caused problems when turning on
1860                    and off bintrans interactively, by flushing the bintrans cache
1861                    whenever bintrans is manually (re)enabled.
1862    20050419        Adding the 'lswi' ppc instruction.
1863                    Minor updates to the x86 instruction decoding.
1864    20050420        Renaming x86 register name indices from R_xx to X86_R_xx (this
1865                    makes building on Tru64 nicer).
1866    20050422        Adding a check for duplicate MIPS TLB entries on tlbwr/tlbwi.
1867    20050427        Adding screenshots to guestoses.html.
1868                    Some minor fixes and testing for the next release.
1869    
1870    ==============  RELEASE 0.3.2  ==============
1871    
1872    20050428        Disabling the "-fmove-all-movables" option in the configure
1873                    script, because it causes the compile to fail on OpenBSD/sgi.
1874    20050502        Minor updates.
1875    20050503        Removing the WRT54G mode (it was bogus anyway), and adding a
1876                    comment about Windows NT for MIPS in doc/experiments.html.
1877                    Minor updates to the x86 instruction decoding.
1878    20050504        Adding some more x86 instructions.
1879                    Adding support for reading files from ISO9660 CDROMs (including
1880                    gzipped files). It's an ugly hack, but it seems to work.
1881                    Various other minor updates (dev_vga.c, pc_bios.c etc).
1882    20050505        Some more x86-related updates.
1883                    Beginning (what I hope will be) a major code cleanup phase.
1884                    "bootris" (an x86 bootsector) runs :-)
1885    20050506        Adding some more x86 instructions.
1886    20050507        tmpnam => mkstemp.
1887                    Working on a hack to allow VGA charcells to be shown even when
1888                    not running with X11.
1889                    Adding more x86 instructions.
1890    20050508        x86 32-bit SIB addressing fix, and more instructions.
1891    20050509        Adding more x86 instructions.
1892    20050510        Minor documentation updates, and other updates (x86 stuff etc.)
1893    20050511        More x86-related updates.
1894    20050513        Various updates, mostly x86-related. (Trying to fix flag
1895                    calculation, factoring out the ugly shift/rotate code, and
1896                    some other things.)
1897    20050514        Adding support for loading some old i386 a.out executables.
1898                    Finally beginning the cleanup of machine/PROM/bios dependant
1899                    info.
1900                    Some minor documentation updates.
1901                    Trying to clean up ARCBIOS stuff a little.
1902    20050515        Trying to make it possible to actually use more than one disk
1903                    type per machine (floppy, ide, scsi).
1904                    Trying to clean up the kbd vs PROM console stuff. (For PC and
1905                    ARC emulation modes, mostly.)
1906                    Beginning to add an 8259 interrupt controller, and connecting
1907                    it to the x86 emulation.
1908    20050516        The first x86 interrupts seem to work (keyboard stuff).
1909                    Adding a 8253/8254 programmable interval timer skeleton.
1910                    FreeDOS now reaches a command prompt and can be interacted
1911                    with.
1912    20050517        After some bugfixes, MS-DOS also (sometimes) reaches a
1913                    command prompt now.
1914                    Trying to fix the pckbc to work with MS-DOS' keyb.com, but no
1915                    success yet.
1916    20050518        Adding a simple 32-bit x86 MMU skeleton.
1917    20050519        Some more work on the x86 stuff. (Beginning the work on paging,
1918                    and various other fixes).
1919    20050520        More updates. Working on dev_vga (4-bit graphics modes), adding
1920                    40 columns support to the PC bios emulation.
1921                    Trying to add support for resizing windows when switching
1922                    between graphics modes.
1923    20050521        Many more x86-related updates.
1924    20050522        Correcting the initial stack pointer's sign-extension for
1925                    ARCBIOS emulation (thanks to Alec Voropay for noticing the
1926                    error).
1927                    Continuing on the cleanup (ARCBIOS etc).
1928                    dev_vga updates.
1929    20050523        More x86 updates: trying to add some support for protected mode
1930                    interrupts (via gate descriptors) and many other fixes.
1931                    More ARCBIOS cleanup.
1932                    Adding a device flag which indicates that reads cause no
1933                    side-effects. (Useful for the "dump" command in the debugger,
1934                    and other things.)
1935                    Adding support for directly starting up x86 ELFs, skipping the
1936                    bootloader stage. (Most ELFs, however, are not suitable for
1937                    this.)
1938    20050524        Adding simple 32-bit x86 TSS task switching, but no privilege
1939                    level support yet.
1940                    More work on dev_vga. A small "Copper bars" demo works. :-)
1941                    Adding support for Trap Flag (single-step exceptions), at least
1942                    in real mode, and various other x86-related fixes.
1943    20050525        Adding a new disk image prefix (gH;S;) which can be used to
1944                    override the default nr of heads and sectors per track.
1945    20050527        Various bug fixes, more work on the x86 mode (stack change on
1946                    interrupts between different priv.levels), and some minor
1947                    documentation updates.
1948    20050528        Various fixes (x86 stuff).
1949    20050529        More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland
1950                    and can be interacted with (although there are problems with
1951                    key repetition). NetBSD/i386 triggers a serious CISC-related
1952                    problem: instruction fetches across page boundaries, where
1953                    the later part isn't actually part of the instruction.
1954    20050530        Various minor updates. (Documentation updates, etc.)
1955    20050531        Adding some experimental code (experiments/new_test_*) which
1956                    could be useful for dynamic (but not binary) translation in
1957                    the future.
1958    20050602        Adding a dummy ARM skeleton.
1959                    Fixing the pckbc key repetition problem (by adding release
1960                    scancodes for all keypresses).
1961    20050603        Minor updates for the next release.
1962    20050604        Release testing. Minor updates.
1963    
1964    ==============  RELEASE 0.3.3  ==============
1965    
1966    20050604        There'll probably be a 0.3.3.1 release soon, with some very
1967                    very tiny updates.
1968    
1969    ==============  RELEASE 0.3.3.1  ==============
1970    
1971    20050609        Adding simple MIPS IPIs (to dev_mp).
1972    20050611        Adding an ugly hack to track down low-reference bugs
1973                    (define TRACE_NULL_CRASHES, or configure --tracenull).
1974                    Other minor updates.
1975    20050612        Adding a dummy evbmips mode.
1976    
1977    ==============  RELEASE 0.3.3.2  ==============
1978    
1979    20050617        Experimenting some more with netbooting OpenBSD/sgi. Adding
1980                    a hack which allows emulated ethernet networks to be
1981                    distributed across multiple emulator processes.
1982    20050618        Minor updates (documentation, dummy YAMON emulation, etc).
1983    20050620        strcpy/strcat -> strlcpy/strlcat updates.
1984                    Some more progress on evbmips (Malta).
1985    20050621        Adding a section to doc/configfiles.html about ethernet
1986                    emulation across multiple hosts.
1987                    Beginning the work on the ARM translation engine (using the
1988                    dynamic-but-not-binary translation method).
1989                    Fixing a bintrans bug: 0x9fc00000 should always be treated as
1990                    PROM area, just as 0xbfc00000 is.
1991                    Minor progress on Malta emulation (the PCI-ISA bus).
1992    20050622        NetBSD/evbmips can now be installed (using another emulated
1993                    machine) and run (including userland and so on). :-)
1994                    Spliting up the bintrans haddr_entry field into two (one for
1995                    read, one for write). Probably not much of a speed increase,
1996                    though.
1997                    Updating some NetBSD 2.0 -> 2.0.2 in the documentation.
1998    20050623        Minor updates (documentation, the TODO file, etc).
1999                    gzipped kernels are now always automagically gunzipped when
2000                    loaded.
2001    20050624        Adding a dummy Playstation Portable (PSP) mode, just barely
2002                    enough to run Hello World (in weird colors :-).
2003                    Removing the -b command line option; old bintrans is enabled
2004                    by default instead. It makes more sense.
2005                    Trying to finally fix the non-working performance measurement
2006                    thing (instr/second etc).
2007    20050625        Continuing on the essential basics for ARM emulation. Two
2008                    instructions seem to work, a branch and a simple "mov". (The
2009                    mov arguments are not correct yet.) Performance is definitely
2010                    reasonable.
2011                    Various other minor updates.
2012                    Adding the ARM "bl" instruction.
2013                    Adding support for combining multiple ARM instructions into one
2014                    function call. ("mov" + "mov" is the only one implemented so
2015                    far, but it seems to work.)
2016                    Cleaning up some IP32 interrupt things (crime/mace); disabling
2017                    the PS/2 keyboard controller on IP32, so that NetBSD/sgimips
2018                    boots into userland again.
2019    20050626        Finally! NetBSD/sgimips netboots. Adding instructions to
2020                    doc/guestoses.html on how to set up an nfs server etc.
2021                    Various other minor fixes.
2022                    Playstation Portable ".pbp" files can now be used directly.
2023                    (The ELF part of the .pbp is extracted transparently.)
2024                    Converting some sprintf -> snprintf.
2025                    Adding some more instructions to the ARM disassembler.
2026    20050627        More ARM updates. Adding some simple ldr(b), str(b),
2027                    cmps, and conditional branch instructions, enough to run
2028                    a simple Hello World program.
2029                    All ARM instructions are now inlined/generated for all possible
2030                    condition codes.
2031                    Adding add and sub, and more load/store instructions.
2032                    Removing dummy files: cpu_alpha.c, cpu_hppa.c, and cpu_sparc.c.
2033                    Some minor documentation updates; preparing for a 0.3.4
2034                    release. Updating some URLs.
2035    
2036    ==============  RELEASE 0.3.4  ==============
2037    
2038    20050628        Continuing the work on the ARM translation engine. end_of_page
2039                    works. Experimenting with load/store translation caches
2040                    (virtual -> physical -> host).
2041    20050629        More ARM stuff (memory access translation cache, mostly). This
2042                    might break a lot of stuff elsewhere, probably some MIPS-
2043                    related translation things.
2044    20050630        Many load/stores are now automatically generated and included
2045                    into cpu_arm_instr.c; 1024 functions in total (!).
2046                    Fixes based on feedback from Alec Voropay: only print 8 hex
2047                    digits instead of 16 in some cases when emulating 32-bit
2048                    machines; similar 8 vs 16 digit fix for breakpoint addresses;
2049                    4Kc has 16 TLB entries, not 48; the MIPS config select1
2050                    register is now printed with "reg ,0".
2051                    Also changing many other occurances of 16 vs 8 digit output.
2052                    Adding cache associativity fields to mips_cpu_types.h; updating
2053                    some other cache fields; making the output of
2054                    mips_cpu_dumpinfo() look nicer.
2055                    Generalizing the bintrans stuff for device accesses to also
2056                    work with the new translation system. (This might also break
2057                    some MIPS things.)
2058                    Adding multi-load/store instructions to the ARM disassembler
2059                    and the translator, and some optimizations of various kinds.
2060    20050701        Adding a simple dev_disk (it can read/write sectors from
2061                    disk images).
2062    20050712        Adding dev_ether (a simple ethernet send/receive device).
2063                    Debugger command "ninstrs" for toggling show_nr_of_instructions
2064                    during runtime.
2065                    Removing the framebuffer logo.
2066    20050713        Continuing on dev_ether.
2067                    Adding a dummy cpu_alpha (again).
2068    20050714        More work on cpu_alpha.
2069    20050715        More work on cpu_alpha. Many instructions work, enough to run
2070                    a simple framebuffer fill test (similar to the ARM test).
2071    20050716        More Alpha stuff.
2072    20050717        Minor updates (Alpha stuff).
2073    20050718        Minor updates (Alpha stuff).
2074    20050719        Generalizing some Alpha instructions.
2075    20050720        More Alpha-related updates.
2076    20050721        Continuing on cpu_alpha. Importing rpb.h from NetBSD/alpha.
2077    20050722        Alpha-related updates: userland stuff (Hello World using
2078                    write() compiled statically for FreeBSD/Alpha runs fine), and
2079                    more instructions are now implemented.
2080    20050723        Fixing ldq_u and stq_u.
2081                    Adding more instructions (conditional moves, masks, extracts,
2082                    shifts).
2083    20050724        More FreeBSD/Alpha userland stuff, and adding some more
2084                    instructions (inserts).
2085    20050725        Continuing on the Alpha stuff. (Adding dummy ldt/stt.)
2086                    Adding a -A command line option to turn off alignment checks
2087                    in some cases (for translated code).
2088                    Trying to remove the old bintrans code which updated the pc
2089                    and nr_of_executed_instructions for every instruction.
2090    20050726        Making another attempt att removing the pc/nr of instructions
2091                    code. This time it worked, huge performance increase for
2092                    artificial test code, but performance loss for real-world
2093                    code :-( so I'm scrapping that code for now.
2094                    Tiny performance increase on Alpha (by using ret instead of
2095                    jmp, to play nice with the Alpha's branch prediction) for the
2096                    old MIPS bintrans backend.
2097    20050727        Various minor fixes and cleanups.
2098    20050728        Switching from a 2-level virtual to host/physical translation
2099                    system for ARM emulation, to a 1-level translation.
2100                    Trying to switch from 2-level to 1-level for the MIPS bintrans
2101                    system as well (Alpha only, so far), but there is at least one
2102                    problem: caches and/or how they work with device mappings.
2103    20050730        Doing the 2-level to 1-level conversion for the i386 backend.
2104                    The cache/device bug is still there for R2K/3K :(
2105                    Various other minor updates (Malta etc).
2106                    The mc146818 clock now updates the UIP bit in a way which works
2107                    better with Linux for at least sgimips and Malta emulation.
2108                    Beginning the work on refactoring the dyntrans system.
2109    20050731        Continuing the dyntrans refactoring.
2110                    Fixing a small but serious host alignment bug in memory_rw.
2111                    Adding support for big-endian load/stores to the i386 bintrans
2112                    backend.
2113                    Another minor i386 bintrans backend update: stores from the
2114                    zero register are now one (or two) loads shorter.
2115                    The slt and sltu instructions were incorrectly implemented for
2116                    the i386 backend; only using them for 32-bit mode for now.
2117    20050801        Continuing the dyntrans refactoring.
2118                    Cleanup of the ns16550 serial controller (removing unnecessary
2119                    code).
2120                    Bugfix (memory corruption bug) in dev_gt, and a patch/hack from
2121                    Alec Voropay for Linux/Malta.
2122    20050802        More cleanup/refactoring of the dyntrans subsystem: adding
2123                    phys_page pointers to the lookup tables, for quick jumps
2124                    between translated pages.
2125                    Better fix for the ns16550 device (but still no real FIFO
2126                    functionality).
2127                    Converting cpu_ppc to the new dyntrans system. This means that
2128                    I will have to start from scratch with implementing each
2129                    instruction, and figure out how to implement dual 64/32-bit
2130                    modes etc.
2131                    Removing the URISC CPU family, because it was useless.
2132    20050803        When selecting a machine type, the main type can now be omitted
2133                    if the subtype name is unique. (I.e. -E can be omitted.)
2134                    Fixing a dyntrans/device update bug. (Writes to offset 0 of
2135                    a device could sometimes go unnoticed.)
2136                    Adding an experimental "instruction combination" hack for
2137                    ARM for memset-like byte fill loops.
2138    20050804        Minor progress on cpu_alpha and related things.
2139                    Finally fixing the MIPS dmult/dmultu bugs.
2140                    Fixing some minor TODOs.
2141    20050805        Generalizing the 8259 PIC. It now also works with Cobalt
2142                    and evbmips emulation, in addition to the x86 hack.
2143                    Finally converting the ns16550 device to use devinit.
2144                    Continuing the work on the dyntrans system. Thinking about
2145                    how to add breakpoints.
2146    20050806        More dyntrans updates. Breakpoints seem to work now.
2147    20050807        Minor updates: cpu_alpha and related things; removing
2148                    dev_malta (as it isn't used any more).
2149                    Dyntrans: working on general "show trace tree" support.
2150                    The trace tree stuff now works with both the old MIPS code and
2151                    with newer dyntrans modes. :)
2152                    Continuing on Alpha-related stuff (trying to get *BSD to boot
2153                    a bit further, adding more instructions, etc).
2154    20050808        Adding a dummy IA64 cpu family, and continuing the refactoring
2155                    of the dyntrans system.
2156                    Removing the regression test stuff, because it was more or
2157                    less useless.
2158                    Adding loadlinked/storeconditional type instructions to the
2159                    Alpha emulation. (Needed for Linux/alpha. Not very well tested
2160                    yet.)
2161    20050809        The function call trace tree now prints a per-function nr of
2162                    arguments. (Semi-meaningless, since that data isn't read yet
2163                    from the ELFs; some hardcoded symbols such as memcpy() and
2164                    strlen() work fine, though.)
2165                    More dyntrans refactoring; taking out more of the things that
2166                    are common to all cpu families.
2167    20050810        Working on adding support for "dual mode" for PPC dyntrans
2168                    (i.e. both 64-bit and 32-bit modes).
2169                    (Re)adding some simple PPC instructions.
2170    20050811        Adding a dummy M68K cpu family. The dyntrans system isn't ready
2171                    for variable-length ISAs yet, so it's completely bogus so far.
2172                    Re-adding more PPC instructions.
2173                    Adding a hack to src/file.c which allows OpenBSD/mac68k a.out
2174                    kernels to be loaded.
2175                    Beginning to add PPC loads/stores. So far they only work in
2176                    32-bit mode.
2177    20050812        The configure file option "add_remote" now accepts symbolic
2178                    host names, in addition to numeric IPv4 addresses.
2179                    Re-adding more PPC instructions.
2180    20050814        Continuing to port back more PPC instructions.
2181                    Found and fixed the cache/device write-update bug for 32-bit
2182                    MIPS bintrans. :-)
2183                    Triggered a really weird and annoying bug in Compaq's C
2184                    compiler; ccc sometimes outputs code which loads from an
2185                    address _before_ checking whether the pointer was NULL or not.
2186                    (I'm not sure how to handle this problem.)
2187    20050815        Removing all of the old x86 instruction execution code; adding
2188                    a new (dummy) dyntrans module for x86.
2189                    Taking the first steps to extend the dyntrans system to support
2190                    variable-length instructions.
2191                    Slowly preparing for the next release.
2192    20050816        Adding a dummy SPARC cpu module.
2193                    Minor updates (documentation etc) for the release.
2194    
2195    ==============  RELEASE 0.3.5  ==============
2196    

Legend:
Removed from v.2  
changed lines
  Added in v.12

  ViewVC Help
Powered by ViewVC 1.1.26