--- upstream/dynamips-0.2.5/ChangeLog 2007/10/06 16:01:44 1 +++ upstream/dynamips-0.2.7-RC1/ChangeLog 2007/10/06 16:23:47 7 @@ -1,5 +1,5 @@ /* - * Cisco 7200 (Predator) simulation platform. + * Cisco 7200/3600/2691 simulation platform. */ 15-Aug-2005, the project is starting. @@ -1486,3 +1486,605 @@ - Incorrect display of device name in PLX9060 driver. - Added manpages provided by Erik Wenzel (erik@debian.org). Many thanks to him for this and for his work on packaging for Debian. + - Final 0.2.5 release. + - C7200: Added missing NVRAM checksum. + +15/21-Sep-2006 +----------- + - Working on NM-16ESW. + +22-Sep-2006 +----------- + - NM-16ESW: interfaces are now up (handles specifically the appropriate + MII register). + +23/25-Sep-2006 +-------------- + - Still continuing on the NM-16ESW (first packets received/transmitted). + +26-Sep-2006 +----------- + - NM-16ESW: seems to be working! (although there are still a lot of things + to do). + +28-Sep-2006 +----------- + - Added a hack to allow Ethernet NM to work correctly in 3620/3640 + (seen when directly attached to the real network with very few packets + incoming). + - NM-16ESW: proper support for tx ring scatter/gather support. + - NM-16ESW: fixed a bug in ARL insertion. + - NM-16ESW: send directly BPDU packets to the CPU. + +29-Sep-2006 +----------- + - NM-16ESW: added support for "trunks" (ie etherchannel). + - Added "Ctrl+p" sequence key to dump Port Adapter / Network Module info + (only NM-16ESW reports something at this time). + +30-Sep-2006 +----------- + - NM-16ESW: proper management of station movement (etherchannel is handled). + +01-Oct-2006 +----------- + - NM-16ESW: added register handling. + +02-Oct-2006 +----------- + - NM-16ESW: playing with the port mirroring feature. + +04-Oct-2006 +----------- + - Finally understood how to handle link status changes! Now, + "shut"/"no shut" is working. Better understanding of MII registers + in general. + +05-Oct-2006 +----------- + - Fixed bug described in BTS entry #65 (in the case where two virtual + addresses point at the same physical address, the JIT can use + inappropriate block). This was a "silent" bug. + +07-Oct-2006 +----------- + - Modified the hypervisor parser to allow long lines (to upload IOS configs). + +09-Oct-2006 +----------- + - NM-16ESW: added ingress and egress port mirroring (todo: BPDU and CDP + packets shouldn't be replicated). + +10-Oct-2006 +----------- + - 0.2.6-RC1 release. + - NM-16ESW: implemented ARL count. Fixed the MAC address table display + problems. + +11-Oct-2006 +----------- + - C3600: fixed NVRAM configuration export. + - Merged a patch for Solaris/x86 from Damjan Marion. + - Cleaned the EEPROM stuff to have something more generic. + - NM-16ESW: base MAC address is now automatically generated. + +12-Oct-2006 +----------- + - NM-16ESW: added support to discard input packets. + +13-Oct-2006 +----------- + - NM-16ESW: modified the discard support to let BPDU packets arrive to + the CPU. + - Added online setup of idle-pc through the hypervisor command + "vm set_idle_pc_online ". + - Values computed for idle-pc are now stored in the virtual MIPS CPU + and can be known through the hypervisor command + "vm show_idle_pc_prop ". + +15-Oct-2006 +----------- + - Added a timer module. + - NM-16ESW: added an ARL ager that removes expired MAC addresses. + +18-Oct-2006 +----------- + - Added hypervisor commands to tune idle-pc parameters + ("vm set_idle_max" and "vm set_idle_sleep_time"). + - Centralized NM/PA EEPROM to have common definitions for platforms + with the same type of network interfaces. + - 0.2.6-RC2 release. + +19-Oct-2006 +----------- + - C2691: added sketelon code. + - C2691: working DUART. + - C2691: added mainboard EEPROM. + +20-Oct-2006 +----------- + - Bugfix: dec21140 and amd79c97x were incorrectly discarding frames based + on the source address, preventing HSRP/VRRP to work (BTS entry #75). + - C2691: added hypervisor module to handle instances. + +22-Oct-2006 +----------- + - C2691: trying to understand the network interrupt mechanism. + +23-Oct-2006 +----------- + - C2691: fixed Galileo interrupt (IRQ 3), allowing packets to be received! + - Added a basic GT96100 system controller (for C2691). + - GT96100: added MII registers. + - Added a basic Flash device to be used as ROM+NVRAM for C2691. + - C2691: NVRAM (simulated from flash) is now ok. + - C2691: Analyzed environmental monitor register. No warning anymore. + +24-Oct-2006 +----------- + - C2691: NVRAM config export is working, config import requires more work + (since write operations to flash are not immediate). + - Allowed Galileo DMA IRQ to preempt the idle loop. + - Fixed ATA Flash "current of sectors per card" which must be in LSW/MSW + order and not MSW/LSW. + - Added another ATA Flash access method (for c2691). + - C2691: added support for CompactFlash. + +25-Oct-2006 +----------- + - GT96100: added some definitions for the Ethernet part. + +26-Oct-2006 +----------- + - Working on TX part for GT96100. Unfortunately, don't know yet how to + signal an interrupt for it on the 2691 platform :( + +27-Oct-2006 +----------- + - C2691: found how to announce correctly NM presence in slot 1. + - GT96100: finally found how to notify appropriately the network interrupt: + the Serial Cause Register has to be handled. + - C2691: added the glue code to set up GT96100 ethernet ports. + - GT96100: added RX part. Packets are now sucessfully handled. + - C2691: better understanding of network interrupt status registers. + - C2691: added correct flash code detection. + - GT96100: fixed the "PHY reset" problem. + - C2691: added default correct chassis base MAC address. + +28-Oct-2006 +----------- + - GT96100: added hash function (Mode 0 ok, Mode 1 to fix) for Ethernet + address filtering + appropriate definitions. + +29-Oct-2006 +----------- + - GT96100: fixed hash mode 1 (not tested). + - GT96100: added address filtering process. + +30-Oct-2006 +----------- + - GT96100: added minimal MIB counters. + - Implemented LBA mode for PCMCIA ATA disk devices and fixed data access. + - Changed the default idle sleep time from 50ms to 30ms to avoid timer + IRQ loss and timer drift. + - Added hypervisor command "vm show_timer_drift " + to display potential problem with a given idle-pc value. + - C2691: added proper support for IO memory. + - NM-16ESW: generalized code to support multiple platforms. + - C2691: added support for NM-16ESW. + +31-Oct-2006 +----------- + - C3725: initial support. Hardware very similar to c2691: Cisco rocks! + - C3745: added skeleton. + - C3745: fixed GT96100 address. + - C3745: added PCI bridges. + - C3745: Network Modules are working! + - C3745: CompactFlash working. + +01-Nov-2006 +----------- + - C3745: finally understood how to handle the system EEPROMs. + - Updated documentation (README). + - GT96100: minor enhancement of interrupt handling. + +02-Nov-2006 +----------- + - Added support for "ghost" RAM: instances use a RAM file (previously + created) and use copy-on-write on it. It allows to share common memory + between instances and so less memory is used. + +03-Nov-2006 +----------- + - Better support for ghost RAM, added hypervisor commands + "vm set_ghost_status" and "vm set_ghost_file". + +04-Nov-2006 +----------- + - NM-16ESW: fixed incorrect BPDU handling (which caused to add a 2nd + 802.1Q tag to BPDU packets) and now 0100.0ccc.cccd is recognized as + a BPDU MAC address (BTS entry #). + - DEC21140: fixed CSR8 handling (missed frame counter), which returned + an undefined value (BTS entry #81). + - Merged a patch from Rostislav Opocensky who added support for C3600 + in nvram_export utility. + - Re-enaebled debugging info for NM-16ESW on 2691/3600/37xx. + +05-Nov-2006 +----------- + - NM-16ESW: fixed a crash due to incomplete device removal. + +06-Nov-2006 +----------- + - Validated use of Serial interfaces with 2691/3725/3745. + - Correct config register handling for 3600/2691/3725/3745 platforms + (config register setting was ignored). + - Added detection of empty NVRAM for 2691/3725/3745 to set the ignore config + flag in the config register (to boot faster). + - C3745: Fixed NVRAM properties. + - C7200/C3600: rewrite of configuration push into NVRAM (can now be done + offline). + - C2691/C3725/C3745: added support for config push into ROM flash + (simulated NVRAM). + +07-Nov-2006 +----------- + - Modified config export from NVRAM for all platforms (can now be done + offline). + - Better handling of base MAC address (2691/3725/3745 + NM-16ESW). + +08-Nov-2006 +----------- + - Rework of the MTS subsystem (generalization of MTS64 algorithms to MTS32 + which was broken). + - Fast memory operations for 32-bit mode. + +09-Nov-2006 +----------- + - Rewrite of the MIPS TLB lookup operation. + +10-Nov-2006 +----------- + - Fixed another bug in TLB lookup. + - Beginning of work for PA-MC-8TE1 support. + - Added hypervisor commands to send messages to instances VTTY. + - Working on PLX PCI9054 for PA-MC-8TE1. + +11-Nov-2006 +----------- + - Continuing a bit on PA-MC-8TE1. + +14-Nov-2006 +----------- + - Correct handling of VPN2 mask for TLB lookup. + - bugfix: support of c3745 was missing in the hypervisor. + - Merged a patch from Akim Dreyer for Debian support. + - 0.2.6-RC3 release. + +15-Nov-2006 +----------- + - C2691/C3725: fixed a crash occuring on some IOS images due to incorrect + platform type. + - Modified performance counter to have stats for instructions or blocks + (cannot be used simultaneously). + - "beq" jump code (x86) was incorrectly using non-local jump. + - Bugfix: incorrect number of arguments for hypervisor commands related + to ghost file handling. + - 0.2.6-RC4 release. + +17-Nov-2006 +----------- + - Major code cleanup to make devices independent from the virtual processors. + - Generic CPU stuff. + +20-Nov-2006 +----------- + - Merged of patch from Thomas Pani to list VM TCP console ports (required + for gDynagen). + - NM-16ESW: fixed (again) BPDU handling (incorrect VLAN tagging with non + trunk ports). + - Very minimal PowerPC definitions. Only non-JIT mode at this time. + - PPC: added "crorc", "cror", "crnor", "crnand", "crandc", "crand". + - PPC: added "and", "andc", "andi", "andis", "creqv", "crxor". + - PPC: added "eqv", "isync", "mfmsr", "mtmsr", "nand", "nor", "or", "orc". + - PPC: added "ori", "oris", "sync", "xor", "xori", "xoris", "mfcr". + - PPC: added "addi", "addis". + +21-Nov-2006 +----------- + - PPC: added "cmp", "cmpl", "cmpi", "cmpli", "extsb", "extsh". + - PPC: added "add", "add.", "and.", "andc.", "extsb.", "extsh.". + - PPC: added a dummy memory access function (does nothing yet). + - PPC: added "lbz", "lbzu", "lbzux", "lbzx". + - PPC: added "lhz", "lhzu", "lhzux", "lhzx". + - PPC: added "lwz", "lwzu", "lwzux", "lwzx". + - PPC: added "stb", "stbu", "stbux", "stbx". + - PPC: added "sth", "sthu", "sthux", "sthx". + - PPC: added "stw", "stwu", "stwux", "stwx". + - PPC: added "xor.", "b", "ba", "bl", "bla". + - bugfix: hypervisor commands specific to CPU crashed if the VM was not + started (noticed by Greg). + +22-Nov-2006 +----------- + - PPC: added "addo", "addo.", "addc", "addc.", "addco", "addco." + - PPC: added "addic", "addic.", "adde", "adde.", "addeo", "addeo." + - PPC: added "neg", "neg.", "nego", "nego.", "nand.", "nor.", "or.", "orc." + - PPC: added "slw", "slw.", "srw", "srw." + +23-Nov-2006 +----------- + - PPC: added "rlwimi", "rlwimi.", "rlwinm", "rlwinm.", "rlwnm", "rlwnm." + +24-Nov-2006 +----------- + - PPC: added "mulhw", "mulhw.", "mulhwu", "mulhwu.", "mulli". + - PPC: added "mullw", "mullw.", "mullwo", "mullwo." + - PPC: added "subf", "subf.", "subfo", "subfo." + - PPC: added "bc", "bca", "bcl", "bcla", "bclr", "bclrl". + - PPC: added minimal memory operation glue code. + +25-Nov-2006 +----------- + - PPC: added dump functions for MMU registers. + - PPC: added support for BAT registers. + +26-Nov-2006 +----------- + - PPC: fixed branch offset computation. + - PPC: added a dummy virtual machines for tests. + - PPC: fixed bclrx opcodes. + - PPC: added "mflr", "mtlr". + +27-Nov-2006 +----------- + - PPC: fixes in comparison functions. + - PPC: added "subfc", "subfc.", "subfco", "subfco." + +28-Nov-2006 +----------- + - PPC: added "subfic", "mfctr". + - PPC: fixed a lot of bugs. + +29-Nov-2006 +----------- + - PPC: added "rfi", "lha", "lhau", "lhaux", "lhax", "addze", "addme". + - PPC: fixed "mtcrf". + +30-Nov-2006 +----------- + - Added IRQ routing vectors for virtual machines. + +01-Dec-2006 +----------- + - Playing with NPE-G2, just for fun. + +02-Dec-2006 +----------- + - NPE-G2: environmental monitor is now working! + +03-Dec-2006 +----------- + - PPC: added an empty MV64460 controller (need the datasheet). + - PPC: added "lmw" instruction, fixed "stmw". + - PPC: added "cntlzw". + +05-Dec-2006 +----------- + - NPE-G2: analyzed midplane data: this is similar to other NPE. + - Added a basic PLX6520CB PCI bridge. + - NPE-G2: added appropriate PCI bridges and PCI busses for Port Adapters. + +06-Dec-2006 +----------- + - NPE-G2: added PCI I/O space. + - NPE-G2: added CLPD6729, it is now possible to use PCMCIA ATA disks. + +08-Dec-2006 +----------- + - MV64460: added ugly experimental SDMA support to have a console for the + NPE-G2 (using the GT96100A datasheet). This code must be rewritten. + - MV64460/NPE-G2: playing with the various IRQs. + +09-Dec-2006 +----------- + - PPC: added idle-pc support. + +10-Dec-2006 +----------- + - PPC: added virtual breakpoint support. + +15-Dec-2006 +----------- + - PPC: added functions to manually set up page tables. + - MV64460: added more interrupt definitions (with help of GT96100A manual). + +19-Dec-2006 +----------- + - MV64460: fixed interrupt loss problem. + +20-Dec-2006 +----------- + - Basic port of the microcode for the PowerPC platforms. IOS now starts + normally (like the MIPS64 platforms). + +21-Dec-2006 +----------- + - NPE-G2: found OIR IRQ. + - MV64460: added more definitions (for SDMA). + - Cleanup of MIPS64 JIT code (better naming). + +22-Dec-2006 +----------- + - PPC32: added the minimal JIT core infrastructure. + - PPC32-JIT: added unknown opcode handling. + - PPC32-JIT: added some instructions. + +23-24-Dec-2006 +-------------- + - PPC32-JIT: added more instructions. + +26-Dec-2006 +----------- + - PPC32-JIT: continuing... + +27-Dec-2006 +----------- + - PPC32-JIT: added fast memory operations. + +28-Dec-2006 +----------- + - Added PPC32 nojit support. + - PPC32: better checking for IRQs. + +29-Dec-2006 +----------- + - PPC32-JIT: added "amd64" support. + - PPC32: added "lwbrx" and "stwbrx" instructions. + +30-Dec-2006 +----------- + - PPC32: added "tw"/"twi" instructions. + - PPC32: added TLB support for PowerPC 405. + - PPC32: added "tlbre", "tlbwe", "iccci", "dccci", "mfdcr", "mtdcr" for + PowerPC 405. + - Fixed a bug with ILT tables (incorrect count - last entry was missing). + +31-Dec-2006 +----------- + - PPC32: added "dcbst" instruction. + +05-Jan-2007 +----------- + - NPE-G2: correct handling of DUART interrupt with I/O card. + +07-Jan-2007 +----------- + - NPE-G2: correct console selection (NPE or I/O board) depending on slot 0. + - PPC32: fixup for decrementer interrupt. + - Generic CPU MTS rebuild (mips64/ppc32). + - Split of memory.c / mips64_mem.c. memory.c will only contain generic + functions independent of the CPU model. + - Memlogger is now independent of CPU type (untested). + +08-Jan-2007 +----------- + - Rewrite of the MTS subsystem to have less overhead with inlined + operations -> better performance. + +09-Jan-2007 +----------- + - Finished the MTS rewrite (amd64, statistics). + - NPE-G2: added a 64 Mb bootflash (needs to be tested). + +10-Jan-2007 +----------- + - PPC32: added clean loading of BAT registers. + - Fixed device remapping. + +12-Jan-2007 +----------- + - PPC32: added "lswi", "stswi", "lswx", "stswx". + +13-Jan-2007 +----------- + - PPC32: fixed carry evaluation for "srawi" instruction. + +15-Jan-2007 +----------- + - Playing with c2600 to see if support can be added. + +17-Jan-2007 +----------- + - C2600: adding skeleton code, added NM selection. However, unable + to get a positive result for "sh diag 0". + +19-Jan-2007 +----------- + - Experimenting with sparse memory to reduce virtual memory use in + hypervisor mode. + +20-Jan-2007 +----------- + - Continuing on sparse memory work. + +21-Jan-2007 +----------- + - C2600: added mainboard basic support. + - MPC860: added a basic IDMA support. + - C2600: first packet exchange :) + +22-Jan-2007 +----------- + - C2600: added basic mainboard drivers for integrated Ethernet ports. + - C2600: added IRQ preemption for network interrupt and DUART. + - Fixed use of sparse memory with ghost files. + - Added a command line option to test sparse memory ("--sparse-mem"). + - Added locking for shared ghost images. + +24-Jan-2007 +----------- + - Validation of dynagen 0.8.3 with sparse memory and ghost image enabled. + - MIPS64: fixed a bug of the JIT which incorrectly handled jump instructions + with a delay slot in another page. + +25-Jan-2007 +----------- + - C2600: added NVRAM configuration import/export and appropriate config + register setting if NVRAM is empty at startup. + - C2600: added a basic bootflash support. + +26-Jan-2007 +----------- + - C2600: io-mem size support. + +31-Jan-2007 +----------- + - i8254x: added skeleton code (for PA-2FE-TX). + +01-Feb-2007 +----------- + - i8254x: added MDIO code. + +04-Feb-2006 +----------- + - C2600: added "set_chassis" hypervisor command. + - C2600: possible chassis/mainboards now displayed at command line help. + +05-Feb-2007 +----------- + - Fixed a bug when handling packet discard flag on NM-16ESW (seems to be + only valid for native packets). + +06-Feb-2007 +----------- + - Working on i8254x TX part. Problem with TX ring wrapping. + +08-Feb-2007 +----------- + - Added packet capture to NIO filters, with PCAP output (Greg Anuzelli). + - i82543: RX and TX parts are now basically working (of course, no IP/TCP + checksum offloading, but this doesn't seem to be used). + +09-Feb-2007 +----------- + - C7200: added C7200-IO-2FE card, based on Intel i82543 chips. + - C7200: added PA-GE interface, but TX part is broken. + - i8254x: TDH/TDT and RDH/RDT registers are located at a different address. + PA-GE is now working. + +12-Feb-2007 +----------- + - i8254x: delayed RX IRQ. + - MIPS64: fixed (again) TLB lookup for entries in ksseg and kseg3. + - Added a "byte-swapping" device. + +13-Feb-2007 +----------- + - i8254x: added byte-swapped data transfer. + - PA-POS-OC3: applied byte-swapped data transfer for TX ring (RX ring + doesn't seem to need this - strange). + +14-Feb-2007 +----------- + - C7200: added C7200-IO-GE+E, based on Intel i82543 chips.