📄 changelog
字号:
15-Jan-2006----------- - Added PCI I/O space management. - Added a fake Cirrus Logic PD6729 PCI-to-PCMCIA host adapter. - Cleanups in NPE initialization code. - Fixed some bridge problems with the NPE-300. - Code factorization in the C7200 initialization module. - Generalization of C7200-IO-FE driver for all NPE types. - Added Fault History support. - Added chassis selection (standard or VXR) - Finally found the bug in the non-jit emulation code! It was a cast problem in mult/multu instructions.16-Jan-2006----------- - Added generic hash tables. - Added "instruction lookup tables" (ILT), which greatly improve performance of non-JIT mode. - Added instruction statistics for the non-JIT mode ("Ctrl-] + j")17-Jan-2006----------- - Added a port for non-x86 hosts. The emulator ran successfully on a Tru64 Unix box (Alpha CPU)! It should also be able to compile and run on MacOS X (PowerPC).24-Jan-2006----------- - Added support for DMA channels on Galileo GT64k controllers since it seems that they may be used by IOS (NPE-400 for sure, other NPE?). 25-Jan-2006----------- - Added Linux Raw Ethernet driver to the NetIO infrastructure. - Hmm, I'm probably missing something in the DMA/SRAM interaction and endianness... 26-Jan-2006----------- - The DMA problem is finally fixed, in fact the SRAM can be accessed with byte-swapping. - Added an unicast limiter to the DEC21140, to receive only trafic directed to the virtual machine (+ multicast/broadcast). This is done by analyzing the setup frames (MAC address filter).27-Jan-2006----------- - The Linux Raw Ethernet driver needs promiscuous mode to be enabled to receive appropriate packets, added the required code. - Added endianness definitions, and replaced hton[sl]/ntoh[sl] by the new definitions (for exchanges between VM and host).28-Jan-2006----------- - Added parser infrastructure.29-Jan-2006----------- - Added a virtual bridge system. - Release 0.2.3b31-Jan-2006----------- - Fixed a stupid bug in DMA handling, which in certain conditions can cause an infinite loop.01-Feb-2006----------- - Added an "instruction block hash" which avoids lookups in the instruction red-black tree. The IBH table takes only 16 Kb of memory. - Added CRC-12 and CRC-16 functions for future use. - Added a "gen_eth" NetIO driver, which allow to access ethernet interfaces in a portable way (tested on Linux and Cygwin). - Fixes to the PowerPC build on Darwin thanks to Olivier Cahagne. - Minor cosmetic changes to display supported/unsupported PA and NPE. - Release 0.2.3c06-Feb-2006----------- - Added working Serial interfaces (PA-4T+) ! - Bug: CDP not working with serial interfaces ("debug cdp events" reports a checksum problem).07-Feb-2006----------- - Started the 0.2.4 release. - Modified the command line parser to allow many NIO per PA (for example for serials). - A lot of code cleanups in the C7200 initialization. - Added PA-8T support. - To fix: CDP with Serial interfaces: using cp_len (instead of cp_len+4) in packet rx fixes the problem but breaks IP. Probably something related to padding, see how a CDP packet is sent (special flag in tx ring ?) - Added virtual "beqz" instruction. - Added the "-X" option, allowing to use host memory directly instead of mapping a file to simulate RAM (faster). - Beginning of code reorganization to allow multiple instance contexts.08-Feb-2006----------- - Added a basic virtual Frame-Relay switch. Unfortunately, LMI must be implemented to maintain links up. - Finally found the problem related to CDP! It was simply a padding problem.09-Feb-2006----------- - Add support of promiscuous mode for the DEC21140 "unicast limiter": promiscuous mode is used in bridging configurations. - Fixed another bug with the serial interfaces: it seems that there is a "length substractor" for the txring.10-Feb-2006----------- - Played a little with the PA-POS-OC3, without success. 14-Feb-2006----------- - Finally implemented the basic LMI stuff (only ANSI Annex D). Fortunately, IOS rocks and uses auto-detection, so no extra configuration is needed. - Integrated a Makefile patch from Max Khon for FreeBSD. - Updated documentation. - Release 0.2.4.15-Feb-2006----------- - Fixed a cosmetic bug when displaying MAC address at startup. - Fixed a stupid bug in "srav" instruction in x86_64 JIT code. The arithmetic shift operation was done on a 64-bit basic instead of 32-bit, causing bad propagation of the sign-bit. - Added support for multiple instances (no CLI present yet).17-Feb-2006----------- - Fixed 2 bugs in Frame-Relay switch: a crash occured when receiving a packet gave an error, and if many DLCI with the same ID on different interfaces were used, only one was announced on one interface.18-Feb-2006----------- - Began work on advanced configuration parsing (instances).19-Feb-2006----------- - Is the count/compare mechanism pertinent ?23-Feb-2006----------- - Continued work on advanced config parsing (instances,NIO). - Added registry infrastructure. - Fixed some mistakes in documentation.28-Feb-2006----------- - Continued work on advanced config parsing (NIO). - Added an IRQ counter. - Continued debugging on recurrent crashes problem. - Added proper checks to mts32_raw_lookup (at least it avoids the coredump...) - Added display of all CP0 registers (except TLB).02-Mar-2006----------- - Hardened a little the IRQ subsystem, but this doesn't fix the problem. - Added a debugging mode to track jumps to address 0 (x86_64 only!). - Fixed the teq/teqi instructions in amd64/x86 modes that were buggy.04-Mar-2006----------- - Added some assembly optimized routines for x86 hosts. - Fixed a stupid bug in mts32_raw_lookup (op_size and op_type were swapped). 06-Mar-2006----------- - Added Unix and Null NETIO types for config files. - Fixes for incorrect behavior in virtual memory access routines, in case of exception.08-Mar-2006----------- - Removed the configuration file parsing, in favor of a remote control system for use with the dynagen project. 09-Mar-2006----------- - Added basic hypervisor infrastructure. - Added basic NIO code to the hypervisor commands. 10-Mar-2006----------- - Added the hypervisor NIO code. - Added Frame-Relay and ATM switches to the hypervisor commands. 11-Mar-2006----------- - Played (successfully) with OIR (Online Insertion and Removal). OIR will require device deletion...12-Mar-2006----------- - Fixed EEPROM code which used global variables. - Added the necessary code for basic OIR. - Added PCI device removal.15-Mar-2006----------- - A lot of work on C3600 integration (although it is not functional). - Added a basic ns16552 driver.17-Mar-2006----------- - Added some hypervisor commands for PA setup and OIR. 20-Mar-2006----------- - Hardened the Mueslix driver: after OIR, a "no shut" on a new interface crashed the virtual router. Now, IRQ status is managed appropriately.24-Mar-2006----------- - Added ptask (periodic task) removal. - Added a basic (nearly empty) C3600 IO FPGA chip.25-Mar-2006----------- - Added a NIO RX multiplexer. - Added NIO unset operation for PA.26-Mar-2006----------- - Modified the virtual ATM/Frame-Relay switches and NIO bridge to use the new NIO RX multiplexer. - Added the NIO bridges to the hypervisor commands. - Fixed a stupid bug in hypervisor ATM/FR switch command, the VC were badly parsed. - Fixed a memory leak in the hypervisor module (tokens not freed).27-Mar-2006----------- - Added appropriate locks to the ATM and Frame-Relay switches. - Added VC removal for ATM and Frame-Relay switches.28-Mar-2006----------- - Added registry management to the ATM/FR switches and NIO bridge.30-Mar-2006----------- - Added a refcount system to the NIO RX multiplexer.31-Mar-2006----------- - Added NIO removal for NIO bridges. - Added NIO bridge removal. - Modified the NIO bridge code to use the registry infrastructure. - Same as above, for ATM and Frame-Relay switches.03-Apr-2006----------- - Added the required infrastructure for online removal. - Added hypervisor commands for PA removal and to display C7200 hardware. - Fixed a bug in PCI device removal. - It's now possible to change cards on the fly! - The Mueslix driver was incorrectly modified: the TX ring scanner must run even if the NIO is not defined. - Modified the DEC21140 driver to report a Link Down when the NIO is not defined.04-Apr-2006----------- - Added packet dump (for debugging) to NetIO receive/send operations.08-Apr-2006----------- - The SMP bug seems to be fixed! The irq_cause field is now manipulated atomically (inline asm for x86 and x86_64, pthread mutex on other machines).12-Apr-2006----------- - Added a VM abstraction layer (for different platforms). - Fix of X86 assembly file for Cygwin. - The IOS config file is now saved with a specific filename from the VM instance.13-Apr-2006----------- - Added per-instance logfile.14-Apr-2006----------- - Fixed a stupid bug in non-JIT mode with IRQs.17-Apr-2006----------- - bugfix: "null" NIO creation didn't record the NIO in registry. - bugfix: mueslix logging. - bugfix: adding an NIO to the RX listener list (bad double linked-list) - bugfix: bad fgets() use in NIO bridge and ATM/FR switches.18-Apr-2006----------- - bugfix: the same NIO could be recorded many times in the NIO RX multiplexer due to bad design in NIO adding.19-Apr-2006----------- - Beginning of work on AMD Am79c971 ethernet controller (used by PA-4E and PA-8E).20-Apr-2006----------- - The emulation of AMD Am79c971 seems to be working very well. - Modified the physical memory dump function to use the VM log file.21-Apr-2006----------- - Modified the PA-4E/PA-8E EEPROM definitions to work with VXR midplanes. - PA-4E is now usable.23-Apr-2006----------- - Added "shutdown" operation for PA-4E/PA-8E drivers.24-Apr-2006----------- - Enhanced lock file management (with POSIX locks). - The devices are now dependent from VMs instead of being dependent of CPU groups. This makes a lot of things cleaner.27-Apr-2006----------- - Added IRQ clearing with GT64K (DMA transfers). - Study of GT64120 controller to understand address decoding process. 28-Apr-2006----------- - Fixed a bug with NPE-175/NPE-225 PEM EEPROM selection. - The NPE-400 is now able to support 512 Mb of DRAM! (the supplemental memory is in fact considered as IO memory) - Added a safety check with RAM size. - The CPU identifier (PRID register) is now fixed depending on the NPE board.01-May-2006----------- - Modified device subsystem to order devices by physical addresses, optimized dev_lookup/dev_lookup_next. - Added infrastructure for various object cleanup. - Added "shutdown" code for SRAM, NVRAM, Bootflash, Zero, remote control devices. - Added CPU deletion support (incomplete).02-May-2006----------- - Added PCI bus removal. - Added "shutdown" code for GT64010 and GT64120. - Added CFC0/CTC0 instructions (R7000) and handling for associated registers. TODO: customized vector spacing.04-May-2006----------- - Introduction of the new MTS64 subsystem! - Note: incorrect uses of assert(), especially in insn_lookup.c module.05-May-2006----------- - Added a free list of chunks for MTS64 + some basic optimizations. - Added basic PCI/HT stuff for SB-1 processor (dev_sb1_pci.c module). - Added AP1011 (Sturgeon HyperTransport-PCI Bridge) device. - Fixed masks for MFC0/MTC0 instructions, and added new definition for MFC0 to access set 1. - Fixed incorrect uses of assert().07-May-2006----------- - Modified the console handling to be more efficient. - Added global invalidation of the MTS64 cache. 08-May-2006----------- - Added selective invalidation of the MTS64 cache (for TLB management). - Added MTS64 statistics. - Modified the MTS64 hash settings. Origin: shift: 12, hash_bits: 16. Replaced by shift: 16, hash_bits: 12 -> more efficient and consumes less memory! (logical since IOS uses large TLB entries). - Modified cp0 module to use an abstraction layer for MTS access, allowing 32 or 64 bit modes.09-May-2006----------- - Fixed MTS64 on x86_64 machines. - The clock divisor can now be set per VM and with an hypervisor command.10-May-2006----------- - Added "shutdown" code for RAM and ROM devices. - Added VM object dump ("Ctrl-] + o")11-May-2006----------- - Bugfix: missing initialization of the address length parameter of accept() in the main hypervisor module. - Bugfix: missing initialization of registry memory pool (noticed with Valgrind). - Added NPE and midplane selections to the hypervisor.12-May-2006----------- - Added NIO deletion to the hypervisor. - Fixed status message in hypervisor for object deletion. - Added "sub" instruction (without exception support).14-May-2006----------- - Fixed CPU state change. It is now possible to reboot at any time using "Ctrl-] + k". - Added VTTY deletion. - Added "c7200 stop" command to the hypervisor (not finished). - The memory-mapped devices of port adapters are now enabled dynamically, depending on the PCI BAR (Base Address Registers) settings. This avoids use of hardcoded values. - Integrated a patch from Philipp Brenner, which fixes ELF loading problem on Cygwin when default text file type is set to DOS. Many thanks to him. (symptom was: "load_elf_image: elf_begin: I/O error: raw read")15-May-2006----------- - Added "c7200 set_config" and "c7200 set_mac_addr" hypervisor commands. - Fixed a stupid bug in PCI bus removal. - Added more complete shutdown code.16-May-2006----------- - Fixed uninitialized MTS64 allocated entries (seen with Valgrind). - Added missing unmapping of memory-mapped files (reported by Greg). - The VTTY shutdown doesn't close stdin anymore (causing terminal problems at exit). - Fixed the shutdown procedure, added VM_STATUS_SHUTDOWN as status for a VM. Adapted the virtual CPU synchronization.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -