📄 changelog
字号:
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.17-May-2006----------- - Some basic work on the hypervisor main modules (cleanup). 19-May-2006----------- - bugfix: base MAC address setup broken (reported by Greg). - Added global deletion of: ATM/FR switches, NetIO bridges, NetIO descriptors, C7200 instances ... - Added "hypervisor reset" command to go back to a clean state.20-May-2006----------- - Modified the CPU synchronization system which was not working correctly.21-May-2006----------- - bugfix: NIO unset in PA-4T+/PA-8T driver. - Added C7200 PA cleanup code.22-May-2006----------- - Better handling of PA/NIO removal. - Base MAC addresses are now generated automatically if not specified. ("cafe.<instance_id>.0000")23-May-2006----------- - Added "VDE" NetIO type to connect to UML switches / Virtual Distributed Ethernet switches. - Some cleanups in NetIO code. - Added shutdown code for MTS32/MTS64 (not used yet).24-May-2006----------- - Minor optimizations for non-JIT mode. - bugfix: crash when dumping instruction block tree (JIT). - Some memory leak fixes (again with Valgrind, definitely this tool rocks). TOFIX: * clpd6729 + PCI I/O space (to check carefully). * IO/supplemental memory created with dev_create_ram(). - Use of MTS shutdown code.25-May-2006----------- - The compressed IOS images were not booting anymore: fixed the MIPS config register at startup (reported by Davide Brini). - Minor code cleanup for MIPS CPU reset. - I/O and supplemental memory are now created with dev_ram_init(). - bugfix: in PA shutdown code, the driver shutdown operation was called even if the driver was not initialized. - bugfix: order of memory freeing in c7200_free_instance() wasn't good, producing a segfault (seen on windows machines).26-May-2006----------- - Played with the PA-POS-OC3 driver, it seems that it is working. Need to check if the TX ring guess is correct (ie, with "routing" conditions).27-May-2006----------- - PA-POS-OC3: Fixed the TX ring part to work with multiple buffers. There is still a problem with buffer addresses (doesn't work with platforms using SRAM).29-May-2006----------- - Playing with ISDN emulation (PA-4B), and Munich32 chip. Interfaces are only visible for now.30-May-2006----------- - Moved VM lockfile deletion to VM instance freeing function. - Ugly hack to allow the POS driver to work with SRAM-based platforms. - Added support for "VDE" NIO in hypervisor. - Beginning of hypervisor documentation (README.hypervisor).31-May-2006----------- - Removed "c7200 trigger_oir" hypervisor command which was redundant.01-Jun-2006----------- - bugfix: fixed some reference counting leaks with default ATM and Frame-Relay switches and NIO bridge. - bugfix: DLCI were not announced in ascending order in LMI packets. - studied a bit how to use larger bootflash sizes.02-Jun-2006----------- - DEC21140: Added multicast flag management for received frames. - Debugging of ISL problem reported by Valentin. - Added CRC-32 functions to the appropriate module. 03-Jun-2006----------- - ISL is now working with DEC21140. It seems that to handle ISL, another chip (FPGA ?) is present on PA-FE-TX and C7200-IO-FE to add the second FCS field. - Added basic disassembly code (need to do something more generic).04-Jun-2006----------- - Added virtual instruction "bnez" (basic optimization). - Added RM7000 "mul" instruction (not tested). - Added teq/teqi instructions to non-JIT mode.05-Jun-2006----------- - Added output packet exclusion to PCAP module (not possible with WinPCAP though). - Enhanced packet filtering in dec21140 emulation (for Windows users). - bugfix: stupid cast problem in bootflash code preventing proper unmapping. (seen with /proc/<pid>/maps on Linux). - Added debugging message for device removal. - bugfix: memory not freed / file not closed with ELF loader. - bugfix: config register keeping the "ignore config" flag between instance reloads. - Added "c7200 set_conf_reg" hypervisor command. - ==> pre19 - Experiment: Pending IRQ are now checked only at jump instructions.06-Jun-2006----------- - bugfix: bootflash not working anymore with previous bugfix. - Some optimizations for Program Counter (PC) handling in JIT mode. - Some optimizations for non-JIT mode (use of fastcalls). - Added a performance counter.07-Jun-2006----------- - Added configuration saving command for hypervisor ("hypervisor save_config <file>") - The SB-1 DUART is working, allowing NPE-G1 console to work :) - Environmental monitor working with NPE-G1. - NPE-G1 next priorities: Ethernet (because it delays boot) and NVRAM (seems to be at a different address?)08-Jun-2006----------- - NVRAM is now ok on NPE-G1 (it is at a different physical address).13-Jun-2006----------- - Optimizations on fast lw/sw operations (x86 only for now). - Changed offset size for branches (x86_jump32 instead of x86_jump8).14-Jun-2006----------- - Base MAC address now generated from PID and instance ID.15-Jun-2006----------- - Optimizations on fast lw/sw operations (x86_64). - bugfix: fixed console problems when using TCP mode on Windows platforms (Telnet, Putty). It just requires to ignore LF (Line Feed) character (BTS entry #4)16-Jun-2006----------- - bugfix: importing config to NVRAM was broken (device lookup was done on "cacheable" devices only in physmem* functions) (BTS entry #5)17-Jun-2006----------- - bugfix: memory not freed when using host memory to emulate virtual RAM. (BTS entry #8). - Minor enhancements to clpd6729 driver.19-Jun-2006----------- - Included a patch from Peter Ross (suxen_drol@hotmail.com) which allows to bind console and AUX ports to real serial ports. Many thanks to him.20-Jun-2006----------- - Playing with the PCMCIA stuff (especially CIS)21-Jun-2006----------- - Continuing on PCMCIA.22-Jun-2006----------- - The PCMCIA ATA disk is working, although the ATA command set is not completely implemented. 23-Jun-2006----------- - Added virtual ethernet switch module. - bugfix: linux_eth file descriptor was not used correctly with NIO RXL. - Modified the ELF loader to use all sections.26-Jun-2006----------- - Modified the NIO RX handling (packet receiving is done in NIO module).27-Jun-2006----------- - bugfix: PA-4E/PA-8E not working with IOS 12.0T (incorrect device length). (BTS entry #17). - Some cleanups (untested though) in ATM and Frame-Relay switch modules (locking).29-Jun-2006----------- - Added support for 2nd ATA disk. - Added command line options for disk0: and disk1: ATA devices. By default, disk0: has a capacity of 64 Mb, disk1: is not defined. - Added hypervisor commands "c7200 set_disk0" and "c7200 set_disk1". - Fixed some mistakes and typos in documentation. 30-Jun-2006----------- - Factorized code of fast memory operations to have something cleaner.02-Jul-2006----------- - Modified the JIT compiler to translate pages instead of "blocks" (improves performance).03-Jul-2006----------- - Some code cleanup for the new JIT compiler. - bugfix: PA-4T+/PA-8T not working with IOS 12.0T (incorrect device length). (BTS entry #23). - Added JIT flush to limit the memory used for translation. At this time, this is basic, we count the number of translated pages and we flush when this number reaches a threshold (512 pages seems to be a good value). - Integrated a patch from Philipp Brenner (BTS entry #21) Description: "In standard mode it intercepts SIGINT and sends a CTRL+C (0x03) to the target's vtty_con buffer, while in hypervisor mode it gracefully shuts down the hypervisor which causes the application to quit."04-Jul-2006----------- - Fixed a stupid bug in mts_cache (phys_page boundary not checked). - Optimized JIT flushing and insn block allocation. - Changed the maximum number of translated pages to 2048, which seems to be a more adequate value.05-Jul-2006----------- - Added an "exec zone" which is a pool of host executable pages. This zone is limited by default to 64 Mb for Linux/Unix and 16 Mb for Cygwin. When the zone is fully used, the JIT structures are flushed (removed the maximum number of translated pages). Now, there is no need to disable ExecShield or similar systems. - Added explicit error message when failing to open an ELF file. - Fixed getopt_long() usage. - Added CLI option "--exec-area <size>" to define exec zone size for the default VM.06-Jul-2006----------- - Added "tlbwr" (TLB Write Random) instruction and coprocessor 0 random register management. - Added "c7200 set_exec_area" hypervisor command. - Allowed the hypervisor to run on Windows 2000 machines (ip_listen() version is now ok for non-rfc2553 systems).07-Jul-2006----------- - Added command line help for "--exec-area" option. - Updated documentation.11-Jul-2006----------- - bugfix: missing pointer cleanup in c7200_pa_shutdown() (BTS entry #30) - bugfix: incomplete shutdown code for NIO (little memory leak + no freeing code for NIO with null type). - bugfix: memory leak in udp_connect() + incorrect error checking. - Added cleanup code for general log file. - bugfix: memory leak in hypervisor command execution. - Added logging for hypervisor commands. - Invalid instructions in delay slots are now properly handled by the JIT compiler (error message + CPU stop).13-Jul-2006----------- - Added an idle loop detector (--idle-pc CLI option + "Ctrl-] + i" key) - Added "c7200 set_idle_pc" hypervisor command.14-Jul-2006----------- - Updated documentation. - Checked the idle loop system on Windows and Linux x86_64, seems to be working correctly. - Added idle loop system to non-JIT mode. - Fixed a bug in "cache" instruction when used in non-JIT mode.16-Jul-2006----------- - Integrated a patch from Peter Ross (suxen_drol@hotmail.com) for the Makefile.17-Jul-2006----------- - bugfix: no empty mips64_emit_invalid_delay_slot() function for non-JIT build. - Added definition for mmap() MAP_ANONYMOUS flag for systems where only MAP_ANON is defined. - Accurate Timer IRQ (added --timer-itv parameter for tuning).18-Jul-2006
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -