--- trunk/HISTORY 2007/10/08 16:21:34 36 +++ trunk/HISTORY 2007/10/08 16:22:32 42 @@ -1,4 +1,4 @@ -$Id: HISTORY,v 1.1497 2007/03/18 03:41:36 debug Exp $ +$Id: HISTORY,v 1.1613 2007/06/15 20:11:26 debug Exp $ Changelog for GXemul: --------------------- @@ -3343,3 +3343,271 @@ ============== RELEASE 0.4.4.1 ============== +20070324 Adding a "--debug" option to the configure script, to disable + optimizations in unstable development builds. + Moving out SCSI-specific stuff from diskimage.c into a new + diskimage_scsicmd.c. + Applying Håvard Eidnes' patch for SCSICDROM_READ_DISKINFO and + SCSICDROM_READ_TRACKINFO. (Not really tested yet.) + Implementing disk image "overlays" (to allow simple roll-back + to previous disk state). Adding a 'V' disk flag for this, and + updating the man page and misc.html. +20070325 Stability fix to cpu_dyntrans.c, when multiple physical pages + share the same initial table entry. (The ppp == NULL check + should be physpage_ofs == 0.) Bug found by analysing GXemul + against a version patched for Godson. + Fixing a second occurance of the same problem (also in + cpu_dyntrans.c). + Fixing a MAJOR physical page leak in cpu_dyntrans.c; pages + weren't _added_ to the set of translated pages, they _replaced_ + all previous pages. It's amazing that this bug has been able + to live for this long. (Triggered when emulating >128MB RAM.) +20070326 Removing the GDB debugging stub support; it was too hackish + and ugly. +20070328 Moving around some native code generation skeleton code. +20070329 The -lm check in the configure script now also checks for sin() + in addition to sqrt(). (Thanks to Nigel Horne for noticing that + sqrt was not enough on Fedora Core 6.) (Not verified yet.) +20070330 Fixing an indexing bug in dev_sh4.c, found by using gcc version + 4.3.0 20070323. +20070331 Some more experimentation with native code generation. +20070404 Attempting to fix some more SH4 SCIF interrupt bugs; rewriting + the SH interrupt assertion/deassertion code somewhat. +20070410 Splitting src/file.c into separate files in src/file/. + Cleanup: Removing the dummy TS7200, Walnut, PB1000, and + Meshcube emulation modes, and dev_epcom and dev_au1x00. + Removing the experimental CHIP8/RCA180x code; it wasn't really + working much lately, anyway. It was fun while it lasted. + Also removing the experimental Transputer CPU support. +20070412 Moving the section about how the dynamic translation system + works from intro.html to a separate translation.html file. + Minor SH fixes; attempting to get OpenBSD/landisk to run + without randomly bugging out, but no success yet. +20070413 SH SCI (serial bit interface) should now work together with a + (new) RS5C313 clock device (for Landisk emulation). +20070414 Moving Redhat/MIPS down from supported to experimental, in + guestoses.html. + Preparing for a new release; doing some regression testing etc. + +============== RELEASE 0.4.5 ============== + +20070415 Landisk PCLOCK should be 33.33 MHz, not 50 MHz. (This makes + the clock run at correct speed.) + FINALLY found and fixed the bug which caused OpenBSD/landisk + to randomly bug out: an &-sign was missing in the special case + handling of FPSCR in the 'LDS.L @Rm+,FPSCR' instruction. + Adding similar special case handling for 'LDC.L @Rm+,SR' + (calling sh_update_sr() instead of just loading). + Implementing the 'FCNVSD FPUL,DRn' and 'FCNVDS DRm,FPUL' + SuperH instructions. + The 'LDC Rm,SR' instruction now immediately breaks out of the + dyntrans loop if an interrupt is to be triggered. +20070416 In memory_rw.c, if mapping a page as writable, make sure to + invalidate code translations even if the data access was a + read. + Minor SuperH updates. +20070418 Removing the dummy M68K emulation mode. + Minor SH update (turning unnecessary sts_mach_rn, sts_macl_rn, + and sts_pr_rn instruction handlers into mov_rm_rn). +20070419 Beginning to add a skeleton for an M88K mode: Adding a hack to + allow OpenBSD/m88k a.out binaries to be loaded, and disassembly + of a few simple 88K instructions. + Commenting out the 'LDC Rm,SR' fix from a few days ago, because + it made Linux/dreamcast bug out. + Adding a hack to dev_sh4.c (an extra translation cache + invalidation), which allows OpenBSD/landisk to boot ok after + an install. Upgrading the Landisk machine mode to stable, + updating documentation, etc. +20070420 Experimenting with adding a PCI controller (pcic) to dev_sh4. + Adding a dummy Realtek 8139C+ skeleton device (dev_rtl8139c). + Implementing the first M88K instructions (br, or[.u] imm), and + adding disassembly of some more instructions. +20070421 Continuing a little on dev_rtl8139c. +20070422 Implementing the 9346 EEPROM "read" command for dev_rtl8139c. + Finally found and fixed an old bug in the log n symbol search + (it sometimes missed symbols). Debug trace (-i, -t etc) should + now show more symbols. :-) +20070423 Continuing a little on M88K disassembly. +20070428 Fixing a memset arg order bug in src/net/net.c (thanks to + Nigel Horne for noticing the bug). + Applying parts of a patch from Carl van Schaik to clear out + bottom bits of MIPS addresses more correctly, when using large + page sizes, and doing some other minor cleanup/refactoring. + Fixing a couple of warnings given by gcc with the -W option (a + few more warnings than just plain -Wall). + Reducing SuperH dyntrans physical address space from 64-bit to + 32-bit (since SH5/SH64 isn't imlemented yet anyway). + Adding address-to-symbol annotation to a few more instructions + in the SuperH instruction trace output. + Beginning regression testing for the next release. + Reverting the value of SCIF_DELAYED_TX_VALUE from 1 to 2, + because OpenBSD/landisk may otherwise hang randomly. +20070429 The ugly hack/workaround to get OpenBSD/landisk booting without + crashing does NOT work anymore (with the April 21 snapshot + of OpenBSD/landisk). Strangely enough, removing the hack + completely causes OpenBSD/landisk to work (!). + More regression testing (re-testing everything SuperH-related, + and some other things). + Cobalt interrupts were actually broken; fixing by commenting + out the DEC21143s in the Cobalt machine. +20070430 More regression testing. +20070501 Updating the OpenBSD/landisk install instructions to use + 4.1 instead of the current snapshot. + GAAAH! OpenBSD/landisk 4.1 _needs_ the ugly hack/workaround; + reintroducing it again. (The 4.1 kernel is actually from + 2007-03-11.) + Simplifying the NetBSD/evbarm install instructions a bit. + More regression testing. + +============== RELEASE 0.4.5.1 ============== + +20070501 Continuing a little on m88k disassembly (control registers, + more instructions). + Adding a dummy mvme88k machine mode. +20070502 Re-adding MIPS load/store alignment exceptions. +20070503 Implementing more of the M88K disassembly code. +20070504 Adding disassembly of some more M88K load/store instructions. + Implementing some relatively simple M88K instructions (br.n, + xor[.u] imm, and[.u] imm). +20070505 Implementing M88K three-register and, or, xor, and jmp[.n], + bsr[.n] including function call trace stuff. + Applying a patch from Bruce M. Simpson which implements the + SYSCON_BOARD_CPU_CLOCK_FREQ_ID object of the syscon call in + the yamon PROM emulation. +20070506 Implementing M88K bb0[.n] and bb1[.n], and skeletons for + ldcr and stcr (although no control regs are implemented yet). +20070509 Found and fixed the bug which caused Linux for QEMU_MIPS to + stop working in 0.4.5.1: It was a faulty change to the MIPS + 'sc' and 'scd' instructions I made while going through gcc -W + warnings on 20070428. +20070510 Updating the Linux/QEMU_MIPS section in guestoses.html to + use mips-test-0.2.tar.gz instead of 0.1. + A big thank you to Miod Vallat for sending me M88K manuals. + Implementing more M88K instructions (addu, subu, div[u], mulu, + ext[u], clr, set, cmp). +20070511 Fixing bugs in the M88K "and" and "and.u" instructions (found + by comparing against the manual). + Implementing more M88K instructions (mask[.u], mak, bcnd (auto- + generated)) and some more control register details. + Cleanup: Removing the experimental AVR emulation mode and + corresponding devices; AVR emulation wasn't really meaningful. + Implementing autogeneration of most M88K loads/stores. The + rectangle drawing demo (with -O0) for M88K runs :-) + Beginning on M88K exception handling. + More M88K instructions: tb0, tb1, rte, sub, jsr[.n]. + Adding some skeleton MVME PROM ("BUG") emulation. +20070512 Fixing a bug in the M88K cmp instruction. + Adding the M88K lda (scaled register) instruction. + Fixing bugs in 64-bit (32-bit pairs) M88K loads/stores. + Removing the unused tick_hz stuff from the machine struct. + Implementing the M88K xmem instruction. OpenBSD/mvme88k gets + far enough to display the Copyright banner :-) + Implementing subu.co (guess), addu.co, addu.ci, ff0, and ff1. + Adding a dev_mvme187, for MVME187-specific devices/registers. + OpenBSD/mvme88k prints more boot messages. :) +20070515 Continuing on MVME187 emulation (adding more devices, beginning + on the CMMUs, etc). + Adding the M88K and.c, xor.c, and or.c instructions, and making + sure that mul, div, etc cause exceptions if executed when SFD1 + is disabled. +20070517 Continuing on M88K and MVME187 emulation in general; moving + the CMMU registers to the CPU struct, separating dev_pcc2 from + dev_mvme187, and beginning on memory_m88k.c (BATC and PATC). + Fixing a bug in 64-bit (32-bit pairs) M88K fast stores. + Implementing the clock part of dev_mk48txx. + Implementing the M88K fstcr and xcr instructions. + Implementing m88k_cpu_tlbdump(). + Beginning on the implementation of a separate address space + for M88K .usr loads/stores. +20070520 Removing the non-working (skeleton) Sandpoint, SonyNEWS, SHARK + Dnard, and Zaurus machine modes. + Experimenting with dyntrans to_be_translated read-ahead. It + seems to give a very small performance increase for MIPS + emulation, but a large performance degradation for SuperH. Hm. +20070522 Disabling correct SuperH ITLB emulation; it does not seem to be + necessary in order to let SH4 guest OSes run, and it slows down + userspace code. + Implementing "samepage" branches for SuperH emulation, and some + other minor speed hacks. +20070525 Continuing on M88K memory-related stuff: exceptions, memory + transaction register contents, etc. + Implementing the M88K subu.ci instruction. + Removing the non-working (skeleton) Iyonix machine mode. + OpenBSD/mvme88k reaches userland :-), starts executing + /sbin/init's instructions, and issues a few syscalls, before + crashing. +20070526 Fixing bugs in dev_mk48txx, so that OpenBSD/mvme88k detects + the correct time-of-day. + Implementing a generic IRQ controller for the test machines + (dev_irqc), similar to a proposed patch from Petr Stepan. + Experimenting some more with translation read-ahead. + Adding an "expect" script for automated OpenBSD/landisk + install regression/performance tests. +20070527 Adding a dummy mmEye (SH3) machine mode skeleton. + FINALLY found the strange M88K bug I have been hunting: I had + not emulated the SNIP value for exceptions occurring in + branch delay slots correctly. + Implementing correct exceptions for 64-bit M88K loads/stores. + Address to symbol lookups are now disabled when M88K is + running in usermode (because usermode addresses don't have + anything to do with supervisor addresses). +20070531 Removing the mmEye machine mode skeleton. +20070604 Some minor code cleanup. +20070605 Moving src/useremul.c into a subdir (src/useremul/), and + cleaning up some more legacy constructs. + Adding -Wstrict-aliasing and -fstrict-aliasing detection to + the configure script. +20070606 Adding a check for broken GCC on Solaris to the configure + script. (GCC 3.4.3 on Solaris cannot handle static variables + which are initialized to 0 or NULL. :-/) + Removing the old (non-working) ARC emulation modes: NEC RD94, + R94, R96, and R98, and the last traces of Olivetti M700 and + Deskstation Tyne. + Removing the non-working skeleton WDSC device (dev_wdsc). +20070607 Thinking about how to use the host's cc + ld at runtime to + generate native code. (See experiments/native_cc_ld_test.i + for an example.) +20070608 Adding a program counter sampling timer, which could be useful + for native code generation experiments. + The KN02_CSR_NRMMOD bit in the DECstation 5000/200 (KN02) CSR + should always be set, to allow a 5000/200 PROM to boot. +20070609 Moving out breakpoint details from the machine struct into + a helper struct, and removing the limit on max nr of + breakpoints. +20070610 Moving out tick functions into a helper struct as well (which + also gets rid of the max limit). +20070612 FINALLY figured out why Debian/DECstation stopped working when + translation read-ahead was enabled: in src/memory_rw.c, the + call to invalidate_code_translation was made also if the + memory access was an instruction load (if the page was mapped + as writable); it shouldn't be called in that case. +20070613 Implementing some more MIPS32/64 revision 2 instructions: di, + ei, ext, dext, dextm, dextu, and ins. +20070614 Implementing an instruction combination for the NetBSD/arm + idle loop (making the host not use any cpu if NetBSD/arm + inside the emulator is not using any cpu). + Increasing the nr of ARM VPH entries from 128 to 384. +20070615 Removing the ENABLE_arch stuff from the configure script, so + that all included architectures are included in both release + and development builds. + Moving memory related helper functions from misc.c to memory.c. + Adding preliminary instructions for netbooting NetBSD/pmppc to + guestoses.html; it doesn't work yet, there are weird timeouts. + Beginning a total rewrite of the userland emulation modes + (removing all emulation modes, beginning from scratch with + NetBSD/MIPS and FreeBSD/Alpha only). +20070616 After fixing a bug in the DEC21143 NIC (the TDSTAT_OWN bit was + only cleared for the last segment when transmitting, not all + segments), NetBSD/pmppc boots with root-on-nfs without the + timeouts. Updating guestoses.html. + Removing the skeleton PSP (Playstation Portable) mode. + Moving X11-related stuff in the machine struct into a helper + struct. + Cleanup of out-of-memory checks, to use a new CHECK_ALLOCATION + macro (which prints a meaningful error message). + Adding a COMMENT to each machine and device (for automagic + .index comment generation). + Doing regression testing for the next release. + +============== RELEASE 0.4.6 ============== +