📄 changelog
字号:
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----------- - Fixed inter-pages jumps in delay slots (reported by nula) - Added a check preventing to run the idle-pc feature when an idle-pc value is already defined (since it would give biased results). - bugfix: VTTY list not locked in vtty_create() - bugfix: ensure the CPU is running before incrementing pending timer IRQs. - Added a checklist for minimal C7200 hardware components. It checks good init of ram, rom, nvram and zero devices.19-Jul-2006----------- - Some work on JIT tuning (flush).20-Jul-2006----------- - Better info logging for VTTY and C7200 modules. - Added a debug level for VMs. 21-Jul-2006----------- - Various code cleanups. - Added "c7200 set_debug_level" hypervisor command and "--vm-debug" command line option. Now, by default, less details are printed. - Fixed a bug with select() on Cygwin platform: before, only 64 FDs could be used.24-Jul-2006----------- - bugfix: accept_fd was not closed in VTTY module (BTS entry #42) - bugfix: properly handle CR/LF in configuration files (FR, ATM, ...) (BTS entry #36) - bugfix: accept fd not correctly printed in log file. - Added a mini-parser for hypervisor: allows directory with blanks, ... - bugfix: bad use of setsockopt() in the hypervisor.25-Jul-2006----------- - Added the capability to use Null NetIO with the hypervisor ("nio create_null" command). - Added a FIFO NetIO for intra-hypervisor communications. - Merged a patch from Peter Ross for incorrect idle-pc parsing with 64-bit values. - Non-JIT mode optimization for instruction fetch (although it could be enhanced again). - Various code cleanups.26-Jul-2006----------- - Added "ethsw clear_mac_addr_table" to clear MAC address table of a virtual ethernet switch. - Added "ethsw show_mac_addr_table" to show all MAC addresses learnt by a virtual ethernet switch. - Fixed a potential bug with jalr/jr instructions, where the stack is used to save the return PC. If the instruction in the delay slot returned directly to the jit main loop (exception,...), the stack would be in an inconsistent state. This fix is also required for Darwin/x86. 27-Jul-2006----------- - Stack alignment for Darwin/x86 in memop functions and unknown opcode handling. - The Darwin/x86 build requires -mdynamic-no-pic as compilation option. - Fixed some inline assembly mistakes with "lock" prefix. - The Darwin/x86 port seems to be working correctly. - Fixed the amd64 version of "jr" instruction similarly to the x86 version (no problem with "jalr" in this case).29-Jul-2006----------- - Merged a patch from Peter Ross (suxen_drol@hotmail.com): * disable dynamips escape commands for serial * support receipt of char 0x00 * force the device to into raw mode (cfmakeraw) * include additional uart register addresses in c7200 iofpga switch. The README is also updated. - Fixed some sign problems in VTTY module.31-Jul-2006----------- - Merged a parch from Peter Ross for correct handling of Ctrl-C when a TCP console is used. - Code cleanup (JIT usage flag per VM, ...) - C3600: implemented a working ns16552 console driver. - C3600: fixed clpd6719 driver. - C3600: working environmental monitor. - C3600: changed default RAM to 128 Mb. - Fixed clobbered registers on AMD64 platform ("r14" was missing).01-Aug-2006----------- - Added command line support for C3600 instances. - C3600: added appropriate deletion code. - C3600: added mainboard EEPROM support. - C3600: added bootflash of 8 Mb. - C3600: analyzed triggering of various IRQs.03-Aug-2006----------- - C3600: added NM EEPROM support, slot activation now depends on the NM state. - Fixed nmc93c46 EEPROM code to set the data out bit to a high value when not reading data (was required for C3600 NM EEPROM) + various bug-fixes and cleanups.04-Aug-2006----------- - C7200: some cleanups in PA function naming. - C7200: code refactoring for PA drivers. - C7200: ethernet stuff is now independent of dec21140 and am79c971 code. - C3600: added NM management stuff. - Mueslix serial stuff is now independent for C3600 and C7200. - C3600: added NM-1E, NM-1FE and NM-4T network modules. => problems: * no keepalive required for NM-1E/NM-1FE (media status ?) * NM-4T packet delivery failure when end of RX ring is hit.06-Aug-2006----------- - Modified Am79c971 MII registers to keep the link up in FastEthernet mode. - Merged a patch from Peter Ross for Console and AUX ports optimizations (especially with TCP mode) * console and aux FILE streams * reimplement vtty_read_and_store() as state machine: - parse telnet escape codes, instead of forwarding them to router. - display instance and router name in xterm/vt title bar. - Modified the Mueslix driver to have something working for both C3600 and C7200 models. Added some debugging info. - C3600: better ethernet NM code. - C3600: Added NM-4E (4 ethernet ports) network module.07-Aug-2006----------- - Fixed the remote control driver which incorrectly used static variables. - NVRAM address can now be known with the remote control driver. - Command line usage is now correctly displayed depending on the selected platform.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -