--- trunk/HISTORY 2007/10/08 16:18:38 12 +++ upstream/0.3.7/HISTORY 2007/10/08 16:19:28 21 @@ -1,4 +1,4 @@ -$Id: HISTORY,v 1.905 2005/08/16 09:16:24 debug Exp $ +$Id: HISTORY,v 1.1055 2005/11/25 22:48:36 debug Exp $ Changelog for GXemul: --------------------- @@ -2194,3 +2194,278 @@ ============== RELEASE 0.3.5 ============== +20050816 Some success in decoding the way the SGI O2 PROM draws graphics + during bootup; lines/rectangles and bitmaps work, enough to + show the bootlogo etc. :-) + Adding more PPC instructions, and (dummy) BAT registers. +20050817 Updating the pckbc to support scancode type 3 keyboards + (required in order to interact with the SGI O2 PROM). + Adding more PPC instructions. +20050818 Adding more ARM instructions; general register forms. + Importing armreg.h from NetBSD (ARM cpu ids). Adding a (dummy) + CATS machine mode (using SA110 as the default CPU). + Continuing on general dyntrans related stuff. +20050819 Register forms for ARM load/stores. Gaah! The Compaq C Compiler + bug is triggered for ARM loads as well, not just PPC :-( + Adding full support for ARM PC-relative load/stores, and load/ + stores where the PC register is the destination register. + Adding support for ARM a.out binaries. +20050820 Continuing to add more ARM instructions, and correcting some + bugs. Continuing on CATS emulation. + More work on the PPC stuff. +20050821 Minor PPC and ARM updates. Adding more machine types. +20050822 All ARM "data processing instructions" are now generated + automatically. +20050824 Beginning the work on the ARM system control coprocessor. + Adding support for ARM halfword load/stores, and signed loads. +20050825 Fixing an important bug related to the ARM condition codes. + OpenBSD/zaurus and NetBSD/netwinder now print some boot + messages. :) + Adding a dummy SH (Hitachi SuperH) cpu family. + Beginning to add some ARM virtual address translation. + MIPS bugfixes: unaligned PC now cause an ADEL exception (at + least for non-bintrans execution), and ADEL/ADES (not + TLBL/TLBS) are used if userland tries to access kernel space. + (Thanks to Joshua Wise for making me aware of these bugs.) +20050827 More work on the ARM emulation, and various other updates. +20050828 More ARM updates. + Finally taking the time to work on translation invalidation + (i.e. invalidating translated code mappings when memory is + written to). Hopefully this doesn't break anything. +20050829 Moving CPU related files from src/ to a new subdir, src/cpus/. + Moving PROM emulation stuff from src/ to src/promemul/. + Better debug instruction trace for ARM loads and stores. +20050830 Various ARM updates (correcting CMP flag calculation, etc). +20050831 PPC instruction updates. (Flag fixes, etc.) +20050901 Various minor PPC and ARM instruction emulation updates. + Minor OpenFirmware emulation updates. +20050903 Adding support for adding arbitrary ARM coprocessors (with + the i80321 I/O coprocessor as a first test). + Various other ARM and PPC updates. +20050904 Adding some SHcompact disassembly routines. +20050907 (Re)adding a dummy HPPA CPU module, and a dummy i960 module. +20050908 Began hacking on some Apple Partition Table support. +20050909 Adding support for loading Mach-O (Darwin PPC) binaries. +20050910 Fixing an ARM bug (Carry flag was incorrectly updated for some + data processing instructions); OpenBSD/cats and NetBSD/ + netwinder get quite a bit further now. + Applying a patch to dev_wdc, and a one-liner to dev_pcic, to + make them work better when emulating new versions of OpenBSD. + (Thanks to Alexander Yurchenko for the patches.) + Also doing some other minor updates to dev_wdc. (Some cleanup, + and finally converting to devinit, etc.) +20050912 IRIX doesn't have u_int64_t by default (noticed by Andreas + ); configure updated to reflect this. + Working on ARM register bank switching, CPSR vs SPSR issues, + and beginning the work on interrupt/exception support. +20050913 Various minor ARM updates (speeding up load/store multiple, + and fixing a ROR bug in R(); NetBSD/cats now boots as far as + OpenBSD/cats). +20050917 Adding a dummy Atmel AVR (8-bit) cpu family skeleton. +20050918 Various minor updates. +20050919 Symbols are now loaded from Mach-O executables. + Continuing the work on adding ARM exception support. +20050920 More work on ARM stuff: OpenBSD/cats and NetBSD/cats reach + userland! :-) +20050921 Some more progress on ARM interrupt specifics. +20050923 Fixing linesize for VR4121 (patch by Yurchenko). Also fixing + linesizes/cachesizes for some other VR4xxx. + Adding a dummy Acer Labs M1543 PCI-ISA bridge (for CATS) and a + dummy Symphony Labs 83C553 bridge (for Netwinder), usable by + dev_footbridge. +20050924 Some PPC progress. +20050925 More PPC progress. +20050926 PPC progress (fixing some bugs etc); Darwin's kernel gets + slightly further than before. +20050928 Various updates: footbridge/ISA/pciide stuff, and finally + fixing the VGA text scroll-by-changing-the-base-offset bug. +20050930 Adding a dummy S3 ViRGE pci card for CATS emulation, which + both NetBSD and OpenBSD detects as VGA. + Continuing on Footbridge (timers, ISA interrupt stuff). +20051001 Continuing... there are still bugs, probably interrupt- + related. +20051002 More work on the Footbridge (interrupt stuff). +20051003 Various minor updates. (Trying to find the bug(s).) +20051004 Continuing on the ARM stuff. +20051005 More ARM-related fixes. +20051007 FINALLY! Found and fixed 2 ARM bugs: 1 memory related, and the + other was because of an error in the ARM manual (load multiple + with the S-bit set should _NOT_ load usermode registers, as the + manual says, but it should load saved registers, which may or + may not happen to be usermode registers). + NetBSD/cats and OpenBSD/cats seem to install fine now :-) + except for a minor bug at the end of the OpenBSD/cats install. + Updating the documentation, preparing for the next release. +20051008 Continuing with release testing and cleanup. + +============== RELEASE 0.3.6 ============== + +20051008 The bug was not because of faulty ARM documentation after all, + but it was related to those parts of the code. + Fixing the RTC (dev_mc146818) to work with CATS. +20051009 Rewriting the R() function; now there are 8192 automatically + generated smaller functions doing the same thing, but hopefully + faster. This also fixes some bugs which were triggered when + trying to compile GXemul inside itself. :-) + Adding a dummy dev_lpt. +20051010 Small hack to not update virtual translation tables if memory + accesses are done with the NO_EXCEPTION flag; a time reduction + of almost a factor 2 for a full NetBSD/cats install. :-) +20051011 Passing -A as the default boot arg for CATS (works fine with + OpenBSD/cats). + +============== RELEASE 0.3.6.1 ============== + +20051012 Fixing the VGA cursor offset bug, and speeding up framebuffer + redraws if character cells contain the same thing as during + the last redraw. +20051013 Adding a slow strd ARM instruction hack. +20051017 Minor updates: Adding a dummy i80321 Verde controller (for + XScale emulation), fixing the disassembly of the ARM "ldrd" + instruction, adding "support" for less-than-4KB pages for ARM + (by not adding them to translation tables). +20051020 Continuing on some HPCarm stuff. A NetBSD/hpcarm kernel prints + some boot messages on an emulated Jornada 720. + Making dev_ram work better with dyntrans (speeds up some things + quite a bit). +20051021 Automatically generating some of the most common ARM load/store + multiple instructions. +20051022 Better statistics gathering for the ARM load/store multiple. + Various other dyntrans and device updates. +20051023 Various minor updates. +20051024 Continuing; minor device and dyntrans fine-tuning. Adding the + first "reasonable" instruction combination hacks for ARM (the + cores of NetBSD/cats' memset and memcpy). +20051025 Fixing a dyntrans-related bug in dev_vga. Also changing the + dyntrans low/high access notification to only be updated on + writes, not reads. Hopefully it will be enough. (dev_vga in + charcell mode now seems to work correctly with both reads and + writes.) + Experimenting with gathering dyntrans statistics (which parts + of emulated RAM that are actually executed), and adding + instruction combination hacks for cache cleaning and a part of + NetBSD's scanc() function. +20051026 Adding a bitmap for ARM emulation which indicates if a page is + (specifically) user accessible; loads and stores with the t- + flag set can now use the translation arrays, which results in + a measurable speedup. +20051027 Dyntrans updates; adding an extra bitmap array for 32-bit + emulation modes, speeding up the check whether a physical page + has any code translations or not (O(n) -> O(1)). Doing a + similar reduction of O(n) to O(1) by avoiding the scan through + the translation entries on a translation update (32-bit mode + only). + Various other minor hacks. +20051029 Quick release, without any testing at all. + +============== RELEASE 0.3.6.2 ============== + +20051031 Adding disassembly support for more ARM instructions (clz, + smul* etc), and adding a hack to support "new tiny" pages + for StrongARM. +20051101 Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD + 3.7 -> 3.8, and lots of testing). + Changing from 1-sector PIO mode 0 transfers to 128-sector PIO + mode 3 (in dev_wdc). + Various minor ARM dyntrans updates (pc-relative loads from + within the same page as the instruction are now treated as + constant "mov"). +20051102 Re-enabling instruction combinations (they were accidentally + disabled). + Dyntrans TLB entries are now overwritten using a round-robin + scheme instead of randomly. This increases performance. + Fixing a typo in file.c (thanks to Chuan-Hua Chang for + noticing it). + Experimenting with adding ATAPI support to dev_wdc (to make + emulated *BSD detect cdroms as cdroms, not harddisks). +20051104 Various minor updates. +20051105 Continuing on the ATAPI emulation. Seems to work well enough + for a NetBSD/cats installation, but not OpenBSD/cats. + Various other updates. +20051106 Modifying the -Y command line option to allow scaleup with + certain graphic controllers (only dev_vga so far), not just + scaledown. + Some minor dyntrans cleanups. +20051107 Beginning a cleanup up the PCI subsystem (removing the + read_register hack, etc). +20051108 Continuing the cleanup; splitting up some pci devices into a + normal autodev device and some separate pci glue code. +20051109 Continuing on the PCI bus stuff; all old pci_*.c have been + incorporated into normal devices and/or rewritten as glue code + only, adding a dummy Intel 82371AB PIIX4 for Malta (not really + tested yet). + Minor pckbc fix so that Linux doesn't complain. + Working on the DEC 21143 NIC (ethernet mac rom stuff mostly). + Various other minor fixes. +20051110 Some more ARM dyntrans fine-tuning (e.g. some instruction + combinations (cmps followed by conditional branch within the + same page) and special cases for DPIs with regform when the + shifter isn't used). +20051111 ARM dyntrans updates: O(n)->O(1) for just-mark-as-non- + writable in the generic pc_to_pointers function, and some other + minor hacks. + Merging Cobalt and evbmips (Malta) ISA interrupt handling, + and some minor fixes to allow Linux to accept harddisk irqs. +20051112 Minor device updates (pckbc, dec21143, lpt, ...), most + importantly fixing the ALI M1543/M5229 so that harddisk irqs + work with Linux/CATS. +20051113 Some more generalizations of the PCI subsystem. + Finally took the time to add a hack for SCSI CDROM TOCs; this + enables OpenBSD to use partition 'a' (as needed by the OpenBSD + installer), and Windows NT's installer to get a bit further. + Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs. + Continuing on the DEC 21143. +20051114 Minor ARM dyntrans tweaks; ARM cmps+branch optimization when + comparing with 0, and generalizing the xchg instr. comb. + Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}. +20051115 Continuing on various PPC things (BATs, other address trans- + lation things, various loads/stores, BeBox emulation, etc.). + Beginning to work on PPC interrupt/exception support. +20051116 Factoring out some code which initializes legacy ISA devices + from those machines that use them (bus_isa). + Continuing on PPC interrupt/exception support. +20051117 Minor Malta fixes: RTC year offset = 80, disabling a speed hack + which caused NetBSD to detect a too fast cpu, and adding a new + hack to make Linux detect a faster cpu. + Continuing on the Artesyn PM/PPC emulation mode. + Adding an Algor emulation skeleton (P4032 and P5064); + implementing some of the basics. + Continuing on PPC emulation in general; usage of unimplemented + SPRs is now easier to track, continuing on memory/exception + related issues, etc. +20051118 More work on PPC emulation (tgpr0..3, exception handling, + memory stuff, syscalls, etc.). +20051119 Changing the ARM dyntrans code to mostly use cpu->pc, and not + necessarily use arm reg 15. Seems to work. + Various PPC updates; continuing on the PReP emulation mode. +20051120 Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep + to detect the clock. +20051121 More cleanup of the PCI bus (memory and I/O bases, etc). + Continuing on various PPC things (decrementer and timebase, + WDCs on obio (on PReP) use irq 13, not 14/15). +20051122 Continuing on the CPC700 controller (interrupts etc) for PMPPC, + and on PPC stuff in general. + Finally! After some bug fixes to the virtual to physical addr + translation, NetBSD/{prep,pmppc} 2.1 reach userland and are + stable enough to be interacted with. + More PCI updates; reverse-endian device access for PowerPC etc. +20051123 Generalizing the IEEE floating point subsystem (moving it out + from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c). + Input via slave xterms was sometimes not really working; fixing + this for ns16550, and a warning message is now displayed if + multiple non-xterm consoles are active. + Adding some PPC floating point support, etc. + Various interrupt related updates (dev_wdc, _ns16550, _8259, + and the isa32 common code in machine.c). + NetBSD/prep can now be installed! :-) (Well, with some manual + commands necessary before running sysinst.) Updating the + documentation and various other things to reflect this. +20051124 Various minor documentation updates. + Continuing the work on the DEC 21143 NIC. +20051125 LOTS of work on the 21143. Both OpenBSD and NetBSD work fine + with it now, except that OpenBSD sometimes gives a time-out + warning. + Minor documentation updates. + +============== RELEASE 0.3.7 ============== +