/[dynamips]/upstream/dynamips-0.2.6-RC3/ChangeLog
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /upstream/dynamips-0.2.6-RC3/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (show annotations)
Sat Oct 6 16:06:49 2007 UTC (16 years, 5 months ago) by dpavlin
File size: 59279 byte(s)
dynamips-0.2.6-RC3

1 /*
2 * Cisco 7200/3600/2691 simulation platform.
3 */
4
5 15-Aug-2005, the project is starting.
6
7 18-Aug-2005
8 -----------
9 - Added support for: sll, addu/subu.
10 - Fixed bugs with b... branch instructions (bad computation of new pc).
11 - Added patch recording for blocks.
12 - A sequence of MIPS instructions (without memory access instructions)
13 from IOS was successfully run ! (need to check correctness).
14
15 22-Aug-2005
16 -----------
17 - Implemented a basic memory subsystem with an mmaped file.
18 - Added memory access instructions (lb,lbu,lh,lhu,lw,lwu,ld,sb,sh,sw,sd).
19 - Added a cross-compiled test program.
20
21 23-Aug-2005
22 -----------
23 - Fixed slti, sltiu, slt instructions.
24 - Fixed memory endianness.
25 - Fixed host memory addressing (bad haddr computation).
26
27 24-Aug-2005
28 -----------
29 - Added a generic memory address lookup function.
30 - Added a minimal ELF loader.
31
32 28-Aug-2005
33 -----------
34 - ELF loader now loads files page per page.
35 - Added device support (with RAM support).
36 - Added MTS32 support for mapping of 4 Kb pages.
37 - Added MTS32 support for device mapping in kernel mode and generic
38 virtual to physical mapping (preparation for TLB).
39 - Added a dummy console driver.
40 - Added mult,multu,div,divu instructions.
41
42 29-Aug-2005
43 -----------
44 - Added a Red-Black trees module.
45 - Block locator uses RB tree module.
46 - It is now possible to run a program with multiple functions!
47 - ELF loader now support multiple program headers and entry point is
48 now used.
49 - Fixed x86 buffer adjustment.
50 - Modified console to be at the same address than c7200 DUART (to test
51 microcode).
52 - Memory access functions now update PC.
53 - Added sra, srl, sllv, srlv, srav instructions.
54
55 30-Aug-2005
56 -----------
57 - Added dsrl32, dsll32, dsra, dsrav, dsra32 instructions.
58 - Added bgtz, blez, bgez instructions.
59 - Fixed sltu instruction.
60 - ELF Entry point is now sign-extended.
61 - Added blezl, bgtzl instructions.
62 - Fixed the MIPS scanner to use unsigned 64-bits integers for addresses.
63 - Added unknown opcode management (basic, it just print the unhandled
64 opcode value and continues).
65 - Added cache instruction.
66 - Added bltzal, bltzall, bgezal, bgezall instructions.
67
68 31-Aug-2005
69 -----------
70 - Added System coprocessor (CP0) definitions.
71 - Added tlbr instruction.
72 - Added basic tlbwi instruction (doesn't change the MTS mappings now).
73 - Added dmfc0, dmtc0, mfc0, mtc0 instructions.
74 - Added TLB dump functions.
75 - Added dummy pref/prefi instructions.
76 - Added basic exception trigger.
77 - Added syscall, break instructions.
78
79 01-Sep-2005
80 -----------
81 - Fixed exception trigger.
82 - Added dmfc1, dmtc1, mfc1, mtc1, sdc1 instructions.
83 - Fixed the break instruction.
84 - Modified the memory handling to be more friendly with instructions
85 like sdc1 and for more safety in case of badly written device drivers.
86 - Added ldc1 instruction.
87
88 02-Sep-2005
89 -----------
90 - Fixed sltiu/sltu instructions that were doing signed comparisons
91 instead of unsigned comparisons (mis-use of jit).
92 - Added lwr/lwl, swr/swl, ldl/ldr, sdr/sdl, ll/sc instructions
93 (not tested).
94 - Added PCI bus management.
95 - Added GT64010 (PCI controller) device.
96 - Added DEC 21050 (PCI bridge) device.
97 - Added NVRAM.
98
99 03-Sep-2005
100 -----------
101 - Beginning of work on IRQs.
102
103 04-Sep-2005
104 -----------
105 - Timer IRQ should be OK.
106 - Added C7200 bay management and Midplane FPGA.
107 - Fixed the JR instruction which was broken in a case like that:
108 lwu k1,0(k1)
109 jr k1
110 move k1,zero
111
112 05-Sep-2005
113 -----------
114 - Fixed jalr (as jr) instruction.
115 - Added RAM "aliasing".
116 - Added SRAM management.
117 - Fixed NVRAM size.
118 - Fixed ldr, swl/swr instructions.
119 - Added c7200 IOcard.
120 - Count register is now properly handled.
121 - Added basic functions to set/clear interrupts.
122 - Modified the console driver to trigger DUART interrupt.
123 - IOS now starts!
124
125 06-Sep-2005
126 -----------
127 - Added "move" virtual instruction. It correspond to "addu" with rt=0.
128 Here it avoids an useless add.
129 - Added b/bal virtual instructions.
130 - Packed NVRAM.
131
132 08-Sep-2005
133 -----------
134 - Added Dallas DS1620 temperature sensors.
135 - Added voltage sensors.
136 - Power supplies are now faked.
137 - IOS Environmental Monitor doesn't try to shutdown the router anymore!
138 - Device list is now displayed at startup.
139
140 18-Sep-2005
141 -----------
142 - Added Address Error Load/Save, TLB Load/Save exceptions.
143 TODO: Branch Delay Slot management.
144 - Modified the default value in config register in CP0 to set appropriate
145 cache sizes. Now it is possible to boot compressed images directly!
146 - Added the teq/teqi instructions.
147 - Hmm, seen some IOS images (k9?) that seem to use the FPU (CP1). This
148 does not prevent the image to boot, but some features will probably
149 be not functional.
150
151 19-Sep-2005
152 -----------
153 - Tweaked the console driver to generate a dummy interrupt. It avoids
154 the console problems.
155 - Fixed the serial driver mueslix PCI vendor/device code.
156 - The midplane FPGA now returns voltages based on virtual PA EEPROM
157 presence. Up to 6 PA-8T were successfully emulated!
158
159 20-Sep-2005
160 -----------
161 - Included amd64-codegen.h with a (near empty) translator.
162 - Some code factorization.
163
164 21-Sep-2005
165 -----------
166 - Added CPU state save/restore on disk.
167 - Sending SIGQUIT to the process dumps the MIPS64 VM state on disk.
168 (only CPU state is saved for now).
169 Device state is not saved, so this does not work with booted IOS images
170 for now (it works for an IOS image being self-decompressing, though).
171 - Some code cleanups.
172
173 23-Sep-2005
174 -----------
175 - Fixed "Dirty" bit in TLB entries.
176 - Extended the number of TLB entries from 48 to 64.
177 - Added tlbp instruction.
178 - Modified the nmc93c46 eeprom driver to allow more than 32 bytes reading.
179
180 24-Sep-2005
181 -----------
182 - Added a symbol table loader.
183
184 26-Sep-2005
185 -----------
186 - Added support for writing in PCI registers
187 - Added a RAW file loader.
188 - Added "add" instruction (without exception support).
189
190 07-Oct-2005
191 -----------
192 - Continued work on SMP support.
193
194 08-Oct-2005
195 -----------
196 - Replaced memory operations with fastcalls instead of asmlinkage functions.
197 - Continued work on SMP support. Now it should be complete, except for
198 LL/SC instructions.
199
200 10-Oct-2005
201 -----------
202 - A lot of work on amd64 jit compiler.
203 - The memory management should be 64-bit compliant now.
204
205 17-Oct-2005
206 -----------
207 - Fixed a bug in SRA instruction in amd64 jit code. Dynamips is now working
208 on amd64!
209
210 26-Oct-2005
211 -----------
212 - Created a virtual device giving the VM parameters.
213 - Added command line parsing (patch from Nicolas Szalay).
214 - Fixed ERET instruction (LLbit clearing was lacking).
215 - Fixed BREAK instruction (x86/amd64).
216 - Fixed 2 GB limit for log file.
217 - Fixed clobbered registers in x86 translation.
218
219 28-Oct-2005
220 -----------
221 - Added a non-JIT mode (not completely working now)
222 - Added "-j" flag on the command line to disable JIT.
223 - Fixed some stupid bugs in shift operations.
224
225 31-Oct-2005
226 -----------
227 - Thanks to the great help of mtve, we have a working DEC21140 Ethernet
228 driver and now the virtual C7200 can see the real world!!!
229
230 01-Nov-2005
231 -----------
232 - Beginning of a NETIO module to handle network I/O with external world.
233 - Studied (a bit) the PA-8T controller on a real router.
234 - It is now possible to set the base MAC address of the router
235 using the "-m" flag.
236 - Improved logging
237 - The dec21140 code is generalized and it is now possible to have a
238 PA-FE-TX in any slot.
239
240 02-Nov-2005
241 -----------
242 - Fixed some problems with the NVRAM when it is empty ;
243 - Added a "net_io.c" module that is an abstraction layer
244 for network communications (TAP, Unix sockets...)
245 - Added the "virtual" MIPS "li" instruction which
246 is in fact "addiu reg,zero,value". This permits to have
247 a more optimized JIT code.
248 - Code factorization in the DEC21140 module.
249 - mtve (aka "Mtv Europe") sent a patch for much better console handling,
250 merge is planned on 03-Nov.
251 - Added a "PA driver" framework.
252
253 03-Nov-2005
254 -----------
255 - The console is better handled: special keys are working, and there
256 is a FIFO buffer to avoid character loss (added a "dev_vtty.c" module).
257 - Merging with Mtve patch, that cleans NETIO module and adds features
258 to the console.
259 - Added a clock divisor hack, but it is not completely working.
260 todo: implement a command line option for this.
261
262 08-Nov-2005
263 -----------
264 - Mtve added tcp client/server NETIO.
265 - The clock divisor is now working! It is set by the "-k" command line
266 option.
267 - Fixed the csr5 register handling in DEC21140 driver code.
268
269 13-Nov-2005
270 -----------
271 - A lot of cosmetic changes from Mtve.
272 - Modified the infrastructure to allow the use of CPU groups
273 that share a certain number of devices (per-CPU device array).
274 All device drivers have been modified to handle this.
275 - Took a look at LSI ATMizer II+, which is the circuit used on
276 PA-A3-OC3 boards. The ATMizer is based on a MIPS CPU, so it should
277 be possible to emulate it.
278 - Added a per-CPU dedicated thread.
279
280 23-Nov-2005
281 -----------
282 - The PA-A1 ATM stuff is working!!!
283
284 24-Nov-2005
285 -----------
286 - Fixed a bug in the PA-A1 driver in TX buffer chaining.
287
288 25-Nov-2005
289 -----------
290 - Address bus masking, which clears bits 32 and 33 of physical addresses.
291 It avoids the use of device aliasing.
292 - Fixed the DEC21140 TX part which was incomplete.
293
294 29-Nov-2005
295 -----------
296 - There are still bugs in big packet forwarding. This is probably the ATM
297 driver (added more debugging info).
298 - Fabien Devaux wrote a README explaining the command line options.
299
300 30-Nov-2005
301 -----------
302 - Code cleanup in the net_io module.
303 - Added the "ptask" (periodic tasks) module, this is mainly for TX ring
304 scanning of network devices.
305
306 01-Dec-2005
307 -----------
308 - Added a memory logger (FIFO of 10 accesses), this was useful to debug the
309 PA-A1 RX problem.
310 - Fixed a RX buffer chaining problem in PA-A1.
311
312 02-Dec-2005
313 -----------
314 - Added support for PA-A1 reset ("clear int", "shut/no shut").
315 - Optimized the IRQ handling (irq_pending flag in CPU structure
316 is used as a "cache").
317
318 05-Dec-2005
319 -----------
320 - Optimized the cp0 count/compare process for the x86_64 platform
321 (unfortunately, this doesn't work for the x86 platform).
322
323 06-Dec-2005
324 -----------
325 - Modified the NVRAM handling to allow calendar emulation ("sh calendar" is
326 now working).
327
328 12-Dec-2005
329 -----------
330 - Added support for the NPE-400.
331 - Playing with the PA-POS-2OC3 (called "Charlotte" by Cisco).
332
333 15-Dec-2005
334 -----------
335 - Added teq/teqi instructions to the x86_64 jit.
336
337 20-Dec-2005
338 -----------
339 - Added a Virtual ATM switch fabric to emulate an ATM backbone.
340
341 22-Dec-2005
342 -----------
343 - Final release for 0.2.2 train (0.2.2i).
344
345 23-Dec-2005
346 -----------
347 - Starting 0.2.3 train (0.2.3a)
348 - Added proper NPE-150 support.
349 - Added bit-bucket support (zeroed memory zone).
350 - Added NPE type selection.
351
352 24-Dec-2005
353 -----------
354 - Added beginning of support for NPE-300 (endianness problems with PCI
355 controllers ?)
356
357 28-Dec-2005
358 -----------
359 - Fixed the endianness problem with the NPE-300.
360 - Added NPE300-IO-FE.
361
362 31-Dec-2005
363 -----------
364 - Added CLI option to load a symbol file.
365 - Moved JIT code from dynamips.c to mips64_jit.c
366 - Added support for NPE-100.
367 - Updated the README file for NPE type selection.
368 - Suppressed the annoying message "%%Error: Unrecognized I/O card in bay 0"
369
370 03-Jan-2006
371 -----------
372 - The bit clearing in physical addresses was done stupidly.
373 Only the bit 33 is used to bypass L2 caching.
374 Re-introduced SRAM aliasing.
375 PHY address 0x100000000 is in fact for PCI I/O space.
376 - Began to play with the Cirrus Logic PD6729.
377 - Added Bootflash based on Intel 28F008SA chips (1 Mb)
378 - Fixed the alignment error occuring with "show version".
379
380 04-Jan-2006
381 -----------
382 - Better understanding of Flash SIMM register with bank number and bank
383 size: modified the Flash SIMM code to handle a 8 Mb flash in 1 bank
384 (emulation of Intel 28F016SA chip) which should be sufficient to store
385 crashinfo files or misc files like configs,...
386 - Added ROM remote logging capabilities (with remote emulator control).
387
388 05-Jan-2006
389 -----------
390 - Integrated HEC and AAL5 field computation functions found at:
391 http://cell-relay.indiana.edu/cell-relay/publications/software/CRC/
392 (Author is Charles Michael Heard).
393 - Added HEC field management to the virtual ATM switch fabric.
394 - Added HEC and AAL5 CRC fields to the TX part of the TNETA1570 driver.
395
396 06-Jan-2006
397 -----------
398 - Added block timestamping, to evaluate use of JIT blocks and eventually
399 enhance algorithm of block classifying.
400 - Added a flag to the virtual devices to prevent use of MMAPed zones
401 by MTS (used by NVRAM driver).
402 - Added functions to extract IOS configuration from NVRAM.
403 Pressing "Ctrl-] + c" nows write configuration to disk at any time.
404
405 08-Jan-2006
406 -----------
407 - Added support for PEM (NPE-B) EEPROM. It will probably allow support
408 of NPE-175/NPE-225.
409
410 09-Jan-2006
411 -----------
412 - Added support for NPE-175/NPE-225 and added NPEB-IO-FE.
413
414 10-Jan-2006
415 -----------
416 - Enhancements to the remote console over TCP port.
417 - Port to the Cygwin environment, allowing the emulator to run on Windows
418 machines!
419
420 11-Jan-2006
421 -----------
422 - Added a feature to push an IOS configuration into NVRAM ("-C" command line
423 option).
424 - Added enhanced checks to the NVRAM config export.
425 - Added a variant of udp_connect() function for systems that do not support
426 RFC 2553.
427 - Added support for AUX port (TCP port).
428
429 12-Jan-2006
430 -----------
431 - Better memory logger.
432 - Added breakpoint capabilities.
433 - Fixed a segfault occuring on some IOS images with x86_64 JIT.
434 (modified the minimum remaining size in JIT buffer adjustment).
435
436 13-Jan-2006
437 -----------
438 - The ROM is now embedded in the source code (added an utility to convert
439 ELF file to C code). It is possible to use an alternate ROM using the
440 "-R" option.
441 - Enhanced the MTS lookups to allow use of embedded ROM for code execution.
442
443 15-Jan-2006
444 -----------
445 - Added PCI I/O space management.
446 - Added a fake Cirrus Logic PD6729 PCI-to-PCMCIA host adapter.
447 - Cleanups in NPE initialization code.
448 - Fixed some bridge problems with the NPE-300.
449 - Code factorization in the C7200 initialization module.
450 - Generalization of C7200-IO-FE driver for all NPE types.
451 - Added Fault History support.
452 - Added chassis selection (standard or VXR)
453 - Finally found the bug in the non-jit emulation code! It was a cast problem
454 in mult/multu instructions.
455
456 16-Jan-2006
457 -----------
458 - Added generic hash tables.
459 - Added "instruction lookup tables" (ILT), which greatly improve performance
460 of non-JIT mode.
461 - Added instruction statistics for the non-JIT mode ("Ctrl-] + j")
462
463 17-Jan-2006
464 -----------
465 - Added a port for non-x86 hosts. The emulator ran successfully on a
466 Tru64 Unix box (Alpha CPU)! It should also be able to compile and run
467 on MacOS X (PowerPC).
468
469 24-Jan-2006
470 -----------
471 - Added support for DMA channels on Galileo GT64k controllers since it seems
472 that they may be used by IOS (NPE-400 for sure, other NPE?).
473
474 25-Jan-2006
475 -----------
476 - Added Linux Raw Ethernet driver to the NetIO infrastructure.
477 - Hmm, I'm probably missing something in the DMA/SRAM interaction and
478 endianness...
479
480 26-Jan-2006
481 -----------
482 - The DMA problem is finally fixed, in fact the SRAM can be accessed with
483 byte-swapping.
484 - Added an unicast limiter to the DEC21140, to receive only trafic directed
485 to the virtual machine (+ multicast/broadcast). This is done by analyzing
486 the setup frames (MAC address filter).
487
488 27-Jan-2006
489 -----------
490 - The Linux Raw Ethernet driver needs promiscuous mode to be enabled to
491 receive appropriate packets, added the required code.
492 - Added endianness definitions, and replaced hton[sl]/ntoh[sl] by the new
493 definitions (for exchanges between VM and host).
494
495 28-Jan-2006
496 -----------
497 - Added parser infrastructure.
498
499 29-Jan-2006
500 -----------
501 - Added a virtual bridge system.
502 - Release 0.2.3b
503
504 31-Jan-2006
505 -----------
506 - Fixed a stupid bug in DMA handling, which in certain conditions can
507 cause an infinite loop.
508
509 01-Feb-2006
510 -----------
511 - Added an "instruction block hash" which avoids lookups in the instruction
512 red-black tree. The IBH table takes only 16 Kb of memory.
513 - Added CRC-12 and CRC-16 functions for future use.
514 - Added a "gen_eth" NetIO driver, which allow to access ethernet interfaces
515 in a portable way (tested on Linux and Cygwin).
516 - Fixes to the PowerPC build on Darwin thanks to Olivier Cahagne.
517 - Minor cosmetic changes to display supported/unsupported PA and NPE.
518 - Release 0.2.3c
519
520 06-Feb-2006
521 -----------
522 - Added working Serial interfaces (PA-4T+) !
523 - Bug: CDP not working with serial interfaces ("debug cdp events" reports
524 a checksum problem).
525
526 07-Feb-2006
527 -----------
528 - Started the 0.2.4 release.
529 - Modified the command line parser to allow many NIO per PA (for example
530 for serials).
531 - A lot of code cleanups in the C7200 initialization.
532 - Added PA-8T support.
533 - To fix: CDP with Serial interfaces: using cp_len (instead of cp_len+4)
534 in packet rx fixes the problem but breaks IP. Probably something related
535 to padding, see how a CDP packet is sent (special flag in tx ring ?)
536 - Added virtual "beqz" instruction.
537 - Added the "-X" option, allowing to use host memory directly instead of
538 mapping a file to simulate RAM (faster).
539 - Beginning of code reorganization to allow multiple instance contexts.
540
541 08-Feb-2006
542 -----------
543 - Added a basic virtual Frame-Relay switch. Unfortunately, LMI must be
544 implemented to maintain links up.
545 - Finally found the problem related to CDP! It was simply a padding problem.
546
547 09-Feb-2006
548 -----------
549 - Add support of promiscuous mode for the DEC21140 "unicast limiter":
550 promiscuous mode is used in bridging configurations.
551 - Fixed another bug with the serial interfaces: it seems that there is
552 a "length substractor" for the txring.
553
554 10-Feb-2006
555 -----------
556 - Played a little with the PA-POS-OC3, without success.
557
558 14-Feb-2006
559 -----------
560 - Finally implemented the basic LMI stuff (only ANSI Annex D). Fortunately,
561 IOS rocks and uses auto-detection, so no extra configuration is needed.
562 - Integrated a Makefile patch from Max Khon for FreeBSD.
563 - Updated documentation.
564 - Release 0.2.4.
565
566 15-Feb-2006
567 -----------
568 - Fixed a cosmetic bug when displaying MAC address at startup.
569 - Fixed a stupid bug in "srav" instruction in x86_64 JIT code. The
570 arithmetic shift operation was done on a 64-bit basic instead of 32-bit,
571 causing bad propagation of the sign-bit.
572 - Added support for multiple instances (no CLI present yet).
573
574 17-Feb-2006
575 -----------
576 - Fixed 2 bugs in Frame-Relay switch: a crash occured when receiving
577 a packet gave an error, and if many DLCI with the same ID on different
578 interfaces were used, only one was announced on one interface.
579
580 18-Feb-2006
581 -----------
582 - Began work on advanced configuration parsing (instances).
583
584 19-Feb-2006
585 -----------
586 - Is the count/compare mechanism pertinent ?
587
588 23-Feb-2006
589 -----------
590 - Continued work on advanced config parsing (instances,NIO).
591 - Added registry infrastructure.
592 - Fixed some mistakes in documentation.
593
594 28-Feb-2006
595 -----------
596 - Continued work on advanced config parsing (NIO).
597 - Added an IRQ counter.
598 - Continued debugging on recurrent crashes problem.
599 - Added proper checks to mts32_raw_lookup (at least it avoids the
600 coredump...)
601 - Added display of all CP0 registers (except TLB).
602
603 02-Mar-2006
604 -----------
605 - Hardened a little the IRQ subsystem, but this doesn't fix the problem.
606 - Added a debugging mode to track jumps to address 0 (x86_64 only!).
607 - Fixed the teq/teqi instructions in amd64/x86 modes that were buggy.
608
609 04-Mar-2006
610 -----------
611 - Added some assembly optimized routines for x86 hosts.
612 - Fixed a stupid bug in mts32_raw_lookup (op_size and op_type were
613 swapped).
614
615 06-Mar-2006
616 -----------
617 - Added Unix and Null NETIO types for config files.
618 - Fixes for incorrect behavior in virtual memory access routines, in
619 case of exception.
620
621 08-Mar-2006
622 -----------
623 - Removed the configuration file parsing, in favor of a remote control
624 system for use with the dynagen project.
625
626 09-Mar-2006
627 -----------
628 - Added basic hypervisor infrastructure.
629 - Added basic NIO code to the hypervisor commands.
630
631 10-Mar-2006
632 -----------
633 - Added the hypervisor NIO code.
634 - Added Frame-Relay and ATM switches to the hypervisor commands.
635
636 11-Mar-2006
637 -----------
638 - Played (successfully) with OIR (Online Insertion and Removal). OIR
639 will require device deletion...
640
641 12-Mar-2006
642 -----------
643 - Fixed EEPROM code which used global variables.
644 - Added the necessary code for basic OIR.
645 - Added PCI device removal.
646
647 15-Mar-2006
648 -----------
649 - A lot of work on C3600 integration (although it is not functional).
650 - Added a basic ns16552 driver.
651
652 17-Mar-2006
653 -----------
654 - Added some hypervisor commands for PA setup and OIR.
655
656 20-Mar-2006
657 -----------
658 - Hardened the Mueslix driver: after OIR, a "no shut" on a new interface
659 crashed the virtual router. Now, IRQ status is managed appropriately.
660
661 24-Mar-2006
662 -----------
663 - Added ptask (periodic task) removal.
664 - Added a basic (nearly empty) C3600 IO FPGA chip.
665
666 25-Mar-2006
667 -----------
668 - Added a NIO RX multiplexer.
669 - Added NIO unset operation for PA.
670
671 26-Mar-2006
672 -----------
673 - Modified the virtual ATM/Frame-Relay switches and NIO bridge to use
674 the new NIO RX multiplexer.
675 - Added the NIO bridges to the hypervisor commands.
676 - Fixed a stupid bug in hypervisor ATM/FR switch command, the VC were
677 badly parsed.
678 - Fixed a memory leak in the hypervisor module (tokens not freed).
679
680 27-Mar-2006
681 -----------
682 - Added appropriate locks to the ATM and Frame-Relay switches.
683 - Added VC removal for ATM and Frame-Relay switches.
684
685 28-Mar-2006
686 -----------
687 - Added registry management to the ATM/FR switches and NIO bridge.
688
689 30-Mar-2006
690 -----------
691 - Added a refcount system to the NIO RX multiplexer.
692
693 31-Mar-2006
694 -----------
695 - Added NIO removal for NIO bridges.
696 - Added NIO bridge removal.
697 - Modified the NIO bridge code to use the registry infrastructure.
698 - Same as above, for ATM and Frame-Relay switches.
699
700 03-Apr-2006
701 -----------
702 - Added the required infrastructure for online removal.
703 - Added hypervisor commands for PA removal and to display C7200 hardware.
704 - Fixed a bug in PCI device removal.
705 - It's now possible to change cards on the fly!
706 - The Mueslix driver was incorrectly modified: the TX ring scanner must
707 run even if the NIO is not defined.
708 - Modified the DEC21140 driver to report a Link Down when the NIO is not
709 defined.
710
711 04-Apr-2006
712 -----------
713 - Added packet dump (for debugging) to NetIO receive/send operations.
714
715 08-Apr-2006
716 -----------
717 - The SMP bug seems to be fixed! The irq_cause field is now manipulated
718 atomically (inline asm for x86 and x86_64, pthread mutex on other
719 machines).
720
721 12-Apr-2006
722 -----------
723 - Added a VM abstraction layer (for different platforms).
724 - Fix of X86 assembly file for Cygwin.
725 - The IOS config file is now saved with a specific filename from the
726 VM instance.
727
728 13-Apr-2006
729 -----------
730 - Added per-instance logfile.
731
732 14-Apr-2006
733 -----------
734 - Fixed a stupid bug in non-JIT mode with IRQs.
735
736 17-Apr-2006
737 -----------
738 - bugfix: "null" NIO creation didn't record the NIO in registry.
739 - bugfix: mueslix logging.
740 - bugfix: adding an NIO to the RX listener list (bad double linked-list)
741 - bugfix: bad fgets() use in NIO bridge and ATM/FR switches.
742
743 18-Apr-2006
744 -----------
745 - bugfix: the same NIO could be recorded many times in the NIO RX
746 multiplexer due to bad design in NIO adding.
747
748 19-Apr-2006
749 -----------
750 - Beginning of work on AMD Am79c971 ethernet controller (used by PA-4E
751 and PA-8E).
752
753 20-Apr-2006
754 -----------
755 - The emulation of AMD Am79c971 seems to be working very well.
756 - Modified the physical memory dump function to use the VM log file.
757
758 21-Apr-2006
759 -----------
760 - Modified the PA-4E/PA-8E EEPROM definitions to work with VXR midplanes.
761 - PA-4E is now usable.
762
763 23-Apr-2006
764 -----------
765 - Added "shutdown" operation for PA-4E/PA-8E drivers.
766
767 24-Apr-2006
768 -----------
769 - Enhanced lock file management (with POSIX locks).
770 - The devices are now dependent from VMs instead of being dependent
771 of CPU groups. This makes a lot of things cleaner.
772
773 27-Apr-2006
774 -----------
775 - Added IRQ clearing with GT64K (DMA transfers).
776 - Study of GT64120 controller to understand address decoding process.
777
778 28-Apr-2006
779 -----------
780 - Fixed a bug with NPE-175/NPE-225 PEM EEPROM selection.
781 - The NPE-400 is now able to support 512 Mb of DRAM! (the supplemental
782 memory is in fact considered as IO memory)
783 - Added a safety check with RAM size.
784 - The CPU identifier (PRID register) is now fixed depending on the NPE
785 board.
786
787 01-May-2006
788 -----------
789 - Modified device subsystem to order devices by physical addresses,
790 optimized dev_lookup/dev_lookup_next.
791 - Added infrastructure for various object cleanup.
792 - Added "shutdown" code for SRAM, NVRAM, Bootflash, Zero, remote control
793 devices.
794 - Added CPU deletion support (incomplete).
795
796 02-May-2006
797 -----------
798 - Added PCI bus removal.
799 - Added "shutdown" code for GT64010 and GT64120.
800 - Added CFC0/CTC0 instructions (R7000) and handling for associated
801 registers. TODO: customized vector spacing.
802
803 04-May-2006
804 -----------
805 - Introduction of the new MTS64 subsystem!
806 - Note: incorrect uses of assert(), especially in insn_lookup.c module.
807
808 05-May-2006
809 -----------
810 - Added a free list of chunks for MTS64 + some basic optimizations.
811 - Added basic PCI/HT stuff for SB-1 processor (dev_sb1_pci.c module).
812 - Added AP1011 (Sturgeon HyperTransport-PCI Bridge) device.
813 - Fixed masks for MFC0/MTC0 instructions, and added new definition for MFC0
814 to access set 1.
815 - Fixed incorrect uses of assert().
816
817 07-May-2006
818 -----------
819 - Modified the console handling to be more efficient.
820 - Added global invalidation of the MTS64 cache.
821
822 08-May-2006
823 -----------
824 - Added selective invalidation of the MTS64 cache (for TLB management).
825 - Added MTS64 statistics.
826 - Modified the MTS64 hash settings. Origin: shift: 12, hash_bits: 16.
827 Replaced by shift: 16, hash_bits: 12 -> more efficient and consumes
828 less memory! (logical since IOS uses large TLB entries).
829 - Modified cp0 module to use an abstraction layer for MTS access, allowing
830 32 or 64 bit modes.
831
832 09-May-2006
833 -----------
834 - Fixed MTS64 on x86_64 machines.
835 - The clock divisor can now be set per VM and with an hypervisor command.
836
837 10-May-2006
838 -----------
839 - Added "shutdown" code for RAM and ROM devices.
840 - Added VM object dump ("Ctrl-] + o")
841
842 11-May-2006
843 -----------
844 - Bugfix: missing initialization of the address length parameter of accept()
845 in the main hypervisor module.
846 - Bugfix: missing initialization of registry memory pool (noticed with
847 Valgrind).
848 - Added NPE and midplane selections to the hypervisor.
849
850 12-May-2006
851 -----------
852 - Added NIO deletion to the hypervisor.
853 - Fixed status message in hypervisor for object deletion.
854 - Added "sub" instruction (without exception support).
855
856 14-May-2006
857 -----------
858 - Fixed CPU state change. It is now possible to reboot at any time using
859 "Ctrl-] + k".
860 - Added VTTY deletion.
861 - Added "c7200 stop" command to the hypervisor (not finished).
862 - The memory-mapped devices of port adapters are now enabled dynamically,
863 depending on the PCI BAR (Base Address Registers) settings. This avoids
864 use of hardcoded values.
865 - Integrated a patch from Philipp Brenner, which fixes ELF loading problem
866 on Cygwin when default text file type is set to DOS. Many thanks to him.
867 (symptom was: "load_elf_image: elf_begin: I/O error: raw read")
868
869 15-May-2006
870 -----------
871 - Added "c7200 set_config" and "c7200 set_mac_addr" hypervisor commands.
872 - Fixed a stupid bug in PCI bus removal.
873 - Added more complete shutdown code.
874
875 16-May-2006
876 -----------
877 - Fixed uninitialized MTS64 allocated entries (seen with Valgrind).
878 - Added missing unmapping of memory-mapped files (reported by Greg).
879 - The VTTY shutdown doesn't close stdin anymore (causing terminal
880 problems at exit).
881 - Fixed the shutdown procedure, added VM_STATUS_SHUTDOWN as status
882 for a VM. Adapted the virtual CPU synchronization.
883
884 17-May-2006
885 -----------
886 - Some basic work on the hypervisor main modules (cleanup).
887
888 19-May-2006
889 -----------
890 - bugfix: base MAC address setup broken (reported by Greg).
891 - Added global deletion of: ATM/FR switches, NetIO bridges, NetIO
892 descriptors, C7200 instances ...
893 - Added "hypervisor reset" command to go back to a clean state.
894
895 20-May-2006
896 -----------
897 - Modified the CPU synchronization system which was not working correctly.
898
899 21-May-2006
900 -----------
901 - bugfix: NIO unset in PA-4T+/PA-8T driver.
902 - Added C7200 PA cleanup code.
903
904 22-May-2006
905 -----------
906 - Better handling of PA/NIO removal.
907 - Base MAC addresses are now generated automatically if not specified.
908 ("cafe.<instance_id>.0000")
909
910 23-May-2006
911 -----------
912 - Added "VDE" NetIO type to connect to UML switches / Virtual Distributed
913 Ethernet switches.
914 - Some cleanups in NetIO code.
915 - Added shutdown code for MTS32/MTS64 (not used yet).
916
917 24-May-2006
918 -----------
919 - Minor optimizations for non-JIT mode.
920 - bugfix: crash when dumping instruction block tree (JIT).
921 - Some memory leak fixes (again with Valgrind, definitely this tool rocks).
922 TOFIX: * clpd6729 + PCI I/O space (to check carefully).
923 * IO/supplemental memory created with dev_create_ram().
924 - Use of MTS shutdown code.
925
926 25-May-2006
927 -----------
928 - The compressed IOS images were not booting anymore: fixed the MIPS config
929 register at startup (reported by Davide Brini).
930 - Minor code cleanup for MIPS CPU reset.
931 - I/O and supplemental memory are now created with dev_ram_init().
932 - bugfix: in PA shutdown code, the driver shutdown operation was called
933 even if the driver was not initialized.
934 - bugfix: order of memory freeing in c7200_free_instance() wasn't good,
935 producing a segfault (seen on windows machines).
936
937 26-May-2006
938 -----------
939 - Played with the PA-POS-OC3 driver, it seems that it is working. Need
940 to check if the TX ring guess is correct (ie, with "routing" conditions).
941
942 27-May-2006
943 -----------
944 - PA-POS-OC3: Fixed the TX ring part to work with multiple buffers. There
945 is still a problem with buffer addresses (doesn't work with platforms
946 using SRAM).
947
948 29-May-2006
949 -----------
950 - Playing with ISDN emulation (PA-4B), and Munich32 chip. Interfaces
951 are only visible for now.
952
953 30-May-2006
954 -----------
955 - Moved VM lockfile deletion to VM instance freeing function.
956 - Ugly hack to allow the POS driver to work with SRAM-based platforms.
957 - Added support for "VDE" NIO in hypervisor.
958 - Beginning of hypervisor documentation (README.hypervisor).
959
960 31-May-2006
961 -----------
962 - Removed "c7200 trigger_oir" hypervisor command which was redundant.
963
964 01-Jun-2006
965 -----------
966 - bugfix: fixed some reference counting leaks with default ATM and
967 Frame-Relay switches and NIO bridge.
968 - bugfix: DLCI were not announced in ascending order in LMI packets.
969 - studied a bit how to use larger bootflash sizes.
970
971 02-Jun-2006
972 -----------
973 - DEC21140: Added multicast flag management for received frames.
974 - Debugging of ISL problem reported by Valentin.
975 - Added CRC-32 functions to the appropriate module.
976
977 03-Jun-2006
978 -----------
979 - ISL is now working with DEC21140. It seems that to handle ISL, another
980 chip (FPGA ?) is present on PA-FE-TX and C7200-IO-FE to add the second
981 FCS field.
982 - Added basic disassembly code (need to do something more generic).
983
984 04-Jun-2006
985 -----------
986 - Added virtual instruction "bnez" (basic optimization).
987 - Added RM7000 "mul" instruction (not tested).
988 - Added teq/teqi instructions to non-JIT mode.
989
990 05-Jun-2006
991 -----------
992 - Added output packet exclusion to PCAP module (not possible with WinPCAP
993 though).
994 - Enhanced packet filtering in dec21140 emulation (for Windows users).
995 - bugfix: stupid cast problem in bootflash code preventing proper unmapping.
996 (seen with /proc/<pid>/maps on Linux).
997 - Added debugging message for device removal.
998 - bugfix: memory not freed / file not closed with ELF loader.
999 - bugfix: config register keeping the "ignore config" flag between instance
1000 reloads.
1001 - Added "c7200 set_conf_reg" hypervisor command.
1002 - ==> pre19
1003 - Experiment: Pending IRQ are now checked only at jump instructions.
1004
1005 06-Jun-2006
1006 -----------
1007 - bugfix: bootflash not working anymore with previous bugfix.
1008 - Some optimizations for Program Counter (PC) handling in JIT mode.
1009 - Some optimizations for non-JIT mode (use of fastcalls).
1010 - Added a performance counter.
1011
1012 07-Jun-2006
1013 -----------
1014 - Added configuration saving command for hypervisor
1015 ("hypervisor save_config <file>")
1016 - The SB-1 DUART is working, allowing NPE-G1 console to work :)
1017 - Environmental monitor working with NPE-G1.
1018 - NPE-G1 next priorities: Ethernet (because it delays boot) and NVRAM
1019 (seems to be at a different address?)
1020
1021 08-Jun-2006
1022 -----------
1023 - NVRAM is now ok on NPE-G1 (it is at a different physical address).
1024
1025 13-Jun-2006
1026 -----------
1027 - Optimizations on fast lw/sw operations (x86 only for now).
1028 - Changed offset size for branches (x86_jump32 instead of x86_jump8).
1029
1030 14-Jun-2006
1031 -----------
1032 - Base MAC address now generated from PID and instance ID.
1033
1034 15-Jun-2006
1035 -----------
1036 - Optimizations on fast lw/sw operations (x86_64).
1037 - bugfix: fixed console problems when using TCP mode on Windows platforms
1038 (Telnet, Putty). It just requires to ignore LF (Line Feed) character
1039 (BTS entry #4)
1040
1041 16-Jun-2006
1042 -----------
1043 - bugfix: importing config to NVRAM was broken (device lookup was done on
1044 "cacheable" devices only in physmem* functions) (BTS entry #5)
1045
1046 17-Jun-2006
1047 -----------
1048 - bugfix: memory not freed when using host memory to emulate virtual RAM.
1049 (BTS entry #8).
1050 - Minor enhancements to clpd6729 driver.
1051
1052 19-Jun-2006
1053 -----------
1054 - Included a patch from Peter Ross (suxen_drol@hotmail.com) which allows
1055 to bind console and AUX ports to real serial ports. Many thanks to him.
1056
1057 20-Jun-2006
1058 -----------
1059 - Playing with the PCMCIA stuff (especially CIS)
1060
1061 21-Jun-2006
1062 -----------
1063 - Continuing on PCMCIA.
1064
1065 22-Jun-2006
1066 -----------
1067 - The PCMCIA ATA disk is working, although the ATA command set is not
1068 completely implemented.
1069
1070 23-Jun-2006
1071 -----------
1072 - Added virtual ethernet switch module.
1073 - bugfix: linux_eth file descriptor was not used correctly with NIO RXL.
1074 - Modified the ELF loader to use all sections.
1075
1076 26-Jun-2006
1077 -----------
1078 - Modified the NIO RX handling (packet receiving is done in NIO module).
1079
1080 27-Jun-2006
1081 -----------
1082 - bugfix: PA-4E/PA-8E not working with IOS 12.0T (incorrect device length).
1083 (BTS entry #17).
1084 - Some cleanups (untested though) in ATM and Frame-Relay switch modules
1085 (locking).
1086
1087 29-Jun-2006
1088 -----------
1089 - Added support for 2nd ATA disk.
1090 - Added command line options for disk0: and disk1: ATA devices.
1091 By default, disk0: has a capacity of 64 Mb, disk1: is not defined.
1092 - Added hypervisor commands "c7200 set_disk0" and "c7200 set_disk1".
1093 - Fixed some mistakes and typos in documentation.
1094
1095 30-Jun-2006
1096 -----------
1097 - Factorized code of fast memory operations to have something cleaner.
1098
1099 02-Jul-2006
1100 -----------
1101 - Modified the JIT compiler to translate pages instead of "blocks"
1102 (improves performance).
1103
1104 03-Jul-2006
1105 -----------
1106 - Some code cleanup for the new JIT compiler.
1107 - bugfix: PA-4T+/PA-8T not working with IOS 12.0T (incorrect device length).
1108 (BTS entry #23).
1109 - Added JIT flush to limit the memory used for translation. At this time,
1110 this is basic, we count the number of translated pages and we flush when
1111 this number reaches a threshold (512 pages seems to be a good value).
1112 - Integrated a patch from Philipp Brenner (BTS entry #21)
1113 Description: "In standard mode it intercepts SIGINT and sends a CTRL+C
1114 (0x03) to the target's vtty_con buffer, while in hypervisor mode it
1115 gracefully shuts down the hypervisor which causes the application to
1116 quit."
1117
1118 04-Jul-2006
1119 -----------
1120 - Fixed a stupid bug in mts_cache (phys_page boundary not checked).
1121 - Optimized JIT flushing and insn block allocation.
1122 - Changed the maximum number of translated pages to 2048, which seems to
1123 be a more adequate value.
1124
1125 05-Jul-2006
1126 -----------
1127 - Added an "exec zone" which is a pool of host executable pages. This
1128 zone is limited by default to 64 Mb for Linux/Unix and 16 Mb for Cygwin.
1129 When the zone is fully used, the JIT structures are flushed (removed the
1130 maximum number of translated pages).
1131 Now, there is no need to disable ExecShield or similar systems.
1132 - Added explicit error message when failing to open an ELF file.
1133 - Fixed getopt_long() usage.
1134 - Added CLI option "--exec-area <size>" to define exec zone size for the
1135 default VM.
1136
1137 06-Jul-2006
1138 -----------
1139 - Added "tlbwr" (TLB Write Random) instruction and coprocessor 0 random
1140 register management.
1141 - Added "c7200 set_exec_area" hypervisor command.
1142 - Allowed the hypervisor to run on Windows 2000 machines (ip_listen()
1143 version is now ok for non-rfc2553 systems).
1144
1145 07-Jul-2006
1146 -----------
1147 - Added command line help for "--exec-area" option.
1148 - Updated documentation.
1149
1150 11-Jul-2006
1151 -----------
1152 - bugfix: missing pointer cleanup in c7200_pa_shutdown() (BTS entry #30)
1153 - bugfix: incomplete shutdown code for NIO (little memory leak + no
1154 freeing code for NIO with null type).
1155 - bugfix: memory leak in udp_connect() + incorrect error checking.
1156 - Added cleanup code for general log file.
1157 - bugfix: memory leak in hypervisor command execution.
1158 - Added logging for hypervisor commands.
1159 - Invalid instructions in delay slots are now properly handled by the JIT
1160 compiler (error message + CPU stop).
1161
1162 13-Jul-2006
1163 -----------
1164 - Added an idle loop detector (--idle-pc CLI option + "Ctrl-] + i" key)
1165 - Added "c7200 set_idle_pc" hypervisor command.
1166
1167 14-Jul-2006
1168 -----------
1169 - Updated documentation.
1170 - Checked the idle loop system on Windows and Linux x86_64, seems to be
1171 working correctly.
1172 - Added idle loop system to non-JIT mode.
1173 - Fixed a bug in "cache" instruction when used in non-JIT mode.
1174
1175 16-Jul-2006
1176 -----------
1177 - Integrated a patch from Peter Ross (suxen_drol@hotmail.com) for the
1178 Makefile.
1179
1180 17-Jul-2006
1181 -----------
1182 - bugfix: no empty mips64_emit_invalid_delay_slot() function for non-JIT
1183 build.
1184 - Added definition for mmap() MAP_ANONYMOUS flag for systems where only
1185 MAP_ANON is defined.
1186 - Accurate Timer IRQ (added --timer-itv parameter for tuning).
1187
1188 18-Jul-2006
1189 -----------
1190 - Fixed inter-pages jumps in delay slots (reported by nula)
1191 - Added a check preventing to run the idle-pc feature when an idle-pc value
1192 is already defined (since it would give biased results).
1193 - bugfix: VTTY list not locked in vtty_create()
1194 - bugfix: ensure the CPU is running before incrementing pending timer IRQs.
1195 - Added a checklist for minimal C7200 hardware components. It checks good
1196 init of ram, rom, nvram and zero devices.
1197
1198 19-Jul-2006
1199 -----------
1200 - Some work on JIT tuning (flush).
1201
1202 20-Jul-2006
1203 -----------
1204 - Better info logging for VTTY and C7200 modules.
1205 - Added a debug level for VMs.
1206
1207 21-Jul-2006
1208 -----------
1209 - Various code cleanups.
1210 - Added "c7200 set_debug_level" hypervisor command and "--vm-debug" command
1211 line option. Now, by default, less details are printed.
1212 - Fixed a bug with select() on Cygwin platform: before, only 64 FDs
1213 could be used.
1214
1215 24-Jul-2006
1216 -----------
1217 - bugfix: accept_fd was not closed in VTTY module (BTS entry #42)
1218 - bugfix: properly handle CR/LF in configuration files (FR, ATM, ...)
1219 (BTS entry #36)
1220 - bugfix: accept fd not correctly printed in log file.
1221 - Added a mini-parser for hypervisor: allows directory with blanks, ...
1222 - bugfix: bad use of setsockopt() in the hypervisor.
1223
1224 25-Jul-2006
1225 -----------
1226 - Added the capability to use Null NetIO with the hypervisor
1227 ("nio create_null" command).
1228 - Added a FIFO NetIO for intra-hypervisor communications.
1229 - Merged a patch from Peter Ross for incorrect idle-pc parsing with 64-bit
1230 values.
1231 - Non-JIT mode optimization for instruction fetch (although it could be
1232 enhanced again).
1233 - Various code cleanups.
1234
1235 26-Jul-2006
1236 -----------
1237 - Added "ethsw clear_mac_addr_table" to clear MAC address table of a
1238 virtual ethernet switch.
1239 - Added "ethsw show_mac_addr_table" to show all MAC addresses learnt by
1240 a virtual ethernet switch.
1241 - Fixed a potential bug with jalr/jr instructions, where the stack is used
1242 to save the return PC. If the instruction in the delay slot returned
1243 directly to the jit main loop (exception,...), the stack would be in
1244 an inconsistent state. This fix is also required for Darwin/x86.
1245
1246 27-Jul-2006
1247 -----------
1248 - Stack alignment for Darwin/x86 in memop functions and unknown opcode
1249 handling.
1250 - The Darwin/x86 build requires -mdynamic-no-pic as compilation option.
1251 - Fixed some inline assembly mistakes with "lock" prefix.
1252 - The Darwin/x86 port seems to be working correctly.
1253 - Fixed the amd64 version of "jr" instruction similarly to the x86 version
1254 (no problem with "jalr" in this case).
1255
1256 29-Jul-2006
1257 -----------
1258 - Merged a patch from Peter Ross (suxen_drol@hotmail.com):
1259 * disable dynamips escape commands for serial
1260 * support receipt of char 0x00
1261 * force the device to into raw mode (cfmakeraw)
1262 * include additional uart register addresses in c7200 iofpga switch.
1263 The README is also updated.
1264 - Fixed some sign problems in VTTY module.
1265
1266 31-Jul-2006
1267 -----------
1268 - Merged a parch from Peter Ross for correct handling of Ctrl-C when
1269 a TCP console is used.
1270 - Code cleanup (JIT usage flag per VM, ...)
1271 - C3600: implemented a working ns16552 console driver.
1272 - C3600: fixed clpd6719 driver.
1273 - C3600: working environmental monitor.
1274 - C3600: changed default RAM to 128 Mb.
1275 - Fixed clobbered registers on AMD64 platform ("r14" was missing).
1276
1277 01-Aug-2006
1278 -----------
1279 - Added command line support for C3600 instances.
1280 - C3600: added appropriate deletion code.
1281 - C3600: added mainboard EEPROM support.
1282 - C3600: added bootflash of 8 Mb.
1283 - C3600: analyzed triggering of various IRQs.
1284
1285 03-Aug-2006
1286 -----------
1287 - C3600: added NM EEPROM support, slot activation now depends on the NM
1288 state.
1289 - Fixed nmc93c46 EEPROM code to set the data out bit to a high value when
1290 not reading data (was required for C3600 NM EEPROM) + various bug-fixes
1291 and cleanups.
1292
1293 04-Aug-2006
1294 -----------
1295 - C7200: some cleanups in PA function naming.
1296 - C7200: code refactoring for PA drivers.
1297 - C7200: ethernet stuff is now independent of dec21140 and am79c971 code.
1298 - C3600: added NM management stuff.
1299 - Mueslix serial stuff is now independent for C3600 and C7200.
1300 - C3600: added NM-1E, NM-1FE and NM-4T network modules.
1301 => problems: * no keepalive required for NM-1E/NM-1FE (media status ?)
1302 * NM-4T packet delivery failure when end of RX ring is hit.
1303
1304 06-Aug-2006
1305 -----------
1306 - Modified Am79c971 MII registers to keep the link up in FastEthernet mode.
1307 - Merged a patch from Peter Ross for Console and AUX ports optimizations
1308 (especially with TCP mode)
1309 * console and aux FILE streams
1310 * reimplement vtty_read_and_store() as state machine:
1311 - parse telnet escape codes, instead of forwarding them to router.
1312 - display instance and router name in xterm/vt title bar.
1313 - Modified the Mueslix driver to have something working for both C3600 and
1314 C7200 models. Added some debugging info.
1315 - C3600: better ethernet NM code.
1316 - C3600: Added NM-4E (4 ethernet ports) network module.
1317
1318 07-Aug-2006
1319 -----------
1320 - Fixed the remote control driver which incorrectly used static variables.
1321 - NVRAM address can now be known with the remote control driver.
1322 - Command line usage is now correctly displayed depending on the selected
1323 platform.
1324
1325 08-Aug-2006
1326 -----------
1327 - Some work on PA-4B (Munich32 chip).
1328
1329 09-Aug-2006
1330 -----------
1331 - Continuing on PA-4B (trying to understand TP3420).
1332
1333 10-Aug-2006
1334 -----------
1335 - C7200: Added PA Mgmt IRQ support (required for PA-4B, seen on a real
1336 c7200 with PA-4B offered by Vernon Missouri).
1337 - Added TP3420 definitions.
1338
1339 15-Aug-2006
1340 -----------
1341 - Continuing on PA-4B. Better understanding of the TX ring.
1342 Fixed interrupt queue management.
1343
1344 19-Aug-2006
1345 -----------
1346 - Added hv_vm.c module to handle generic VM operations.
1347 - Added hv_c3600.c module for the Cisco 3600 platform.
1348 - Fixed a bug in VTTY flushing.
1349
1350 20-Aug-2006
1351 -----------
1352 - Added code to gen_eth module for Cygwin to prevent WinPCAP from giving
1353 back transmitted packets. It requires WinPCAP 0.4-alpha1 or better.
1354 TODO: need to be tested!
1355
1356 21-Aug-2006
1357 -----------
1358 - Fixed C3660 boot. Trying to understand/discover the hardware.
1359 Environmental monitor should be ok.
1360
1361 24-Aug-2006
1362 -----------
1363 - Added NS16552 flush optimization (Peter Ross).
1364 - Fixed missing periodic task removal in NS16552.
1365
1366 26-Aug-2006
1367 -----------
1368 - C3660: * Better understanding of NM presence / EEPROM registers.
1369 * Analyzed registers used when a Net IRQ is triggered.
1370
1371 28-Aug-2006
1372 -----------
1373 - C3660: Network Modules are now working! Remaining stuff: OIR.
1374
1375 29-Aug-2006
1376 -----------
1377 - Added more generic code to handle Cisco EEPROM to change easily
1378 chassis MAC addresses.
1379 - Updated README with C3600 information.
1380 - Updated hypervisor documentation (README.hypervisor).
1381 - Added dated package build to the Makefile (make packdev)
1382 - Checked WinPCAP fix of 20-Aug-2006: working.
1383 - Added the capability for high priority IRQ (like NetIO IRQ) to break
1384 the idle loop. Great latency improvement with NetIO IRQ.
1385 - C3600: the DUART irq is now higly prioritized. It gives better console
1386 reactivity.
1387
1388 30-Aug-2006
1389 -----------
1390 - Huge performance improvement on dec21140 and am79c971 drivers, by
1391 transmitting up to 16 packets in one TX ring scan pass.
1392 - Added the same to Serial driver (untested).
1393 - Added "unicast limiter" feature to the am79c971 driver, similarly to the
1394 dec21140 driver. Not having this caused the virtual instances to see
1395 unrelated host traffic when using linux_eth/gen_eth NIO and consequently
1396 a bad performance was obtained. Thanks to Greg for noticing that.
1397 - Beginning of rework of PCI subsystem for PCI bridge support.
1398 (Greg noticed that with 12.2T releases, the PCI bus numbering is
1399 different for the C3660).
1400
1401 31-Aug-2006
1402 -----------
1403 - Finished the PCI subsystem rework.
1404 - C7200: Fixed PCI bridge use for midplanes (std: dec21050, vxr: dec21150).
1405
1406 01-Sep-2006
1407 -----------
1408 - Finally fixed the Serial problem on C3620 platform (hack in the driver
1409 to trigger interrupts differently).
1410 - Cleanup for VM PCI bus pool and C7200 "hidden" I/O bridge was missing.
1411
1412 03-Sep-2006
1413 -----------
1414 - Added safety checks to the PCI bus management.
1415 - Added a PLX9060 device (very basic for now).
1416 - Rewritten the PA-POS-OC3 driver to use the new PLX9060 driver.
1417 - Cleanup: removed use of c7200 bay info in drivers (everything uses
1418 PCI for configuration).
1419 - C7200: removed the bay module which contained static definitions of
1420 PCI bus, physical addresses for PA, ... Now everything is handled
1421 dynamically by the PCI subsystem and the remaining drivers (PA-4B,
1422 PA-POS-OC3) have been fixed.
1423 - C3600: removed PCI bus info from the bay module (due to PCI bridge new
1424 code).
1425
1426 04-Sep-2006
1427 -----------
1428 - Fixed some typos in comments.
1429 - Added a standalone utility to extract IOS configuration from an
1430 NVRAM file.
1431 - Removed pcireg.h (from NetBSD) which was just used for one definition.
1432 - Added a "COPYING" file for the GPLv2 licence.
1433
1434 05-Sep-2006
1435 -----------
1436 - Added basic packet filtering framework, to simulate packet loss or
1437 alteration.
1438 - Hypervisor commands now supports a variable number of parameters.
1439 - bugfix: doing a "sh run" and then pressing "Escape" was causing trouble
1440 to the VTTY (the state machine was in an incorrect state).
1441
1442 06-Sep-2006
1443 -----------
1444 - Removed erroneous special handling of intra-page jumps in delay slots.
1445 (problem with c3640 12.0(7)T IP+ image).
1446
1447 07-Sep-2006
1448 -----------
1449 - C3600: processors ID are now correct.
1450 - Avoid removing the JIT block of the caller with the "cache" instruction.
1451 - Added "hypervisor version" to allow clients (Dynagen) to know the current
1452 version.
1453 - Added missing explanation for "-P <platform>" command line parameter.
1454 - C7200: Fixed incorrect cleanup of IO PCI bridge.
1455
1456 08-Sep-2006
1457 -----------
1458 - Better code for VM error messages.
1459 - Fixed the write attempts to ROM at startup.
1460
1461 09-Sep-2006
1462 -----------
1463 - C3600: added support for io memory size, which prevents Smart Init
1464 from running (hypervisor command: c3600 set_iomem <router> <val>).
1465 - C3600: fixed incorrect handling of commands for this platform, which
1466 caused port 0 to be disabled when manipulating other ports.
1467
1468 11-Sep-2006
1469 -----------
1470 - Fixed loop overflow in idle pc computation.
1471 - Added base64 encoding/decoding module from Yannick Le Teigner.
1472 - Added hypervisor commands "vm push_config" and "vm extract_config"
1473 to manage IOS configurations. Extracting to base64 is ok (verified with
1474 a third party decoder:
1475 http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/Default.aspx )
1476 - C3600: NVRAM checksum is now correctly computed.
1477
1478 12-Sep-2006
1479 -----------
1480 - Following a suggestion of Yannick Le Teigner, applied the optimization
1481 principle to PA-A1 card already used in dec21140, ... Latency is clearly
1482 better (on my system, this dropped from about 150ms to 50 ms).
1483
1484 14-Sep-2006
1485 -----------
1486 - Incorrect display of device name in PLX9060 driver.
1487 - Added manpages provided by Erik Wenzel (erik@debian.org). Many thanks
1488 to him for this and for his work on packaging for Debian.
1489 - Final 0.2.5 release.
1490 - C7200: Added missing NVRAM checksum.
1491
1492 15/21-Sep-2006
1493 -----------
1494 - Working on NM-16ESW.
1495
1496 22-Sep-2006
1497 -----------
1498 - NM-16ESW: interfaces are now up (handles specifically the appropriate
1499 MII register).
1500
1501 23/25-Sep-2006
1502 --------------
1503 - Still continuing on the NM-16ESW (first packets received/transmitted).
1504
1505 26-Sep-2006
1506 -----------
1507 - NM-16ESW: seems to be working! (although there are still a lot of things
1508 to do).
1509
1510 28-Sep-2006
1511 -----------
1512 - Added a hack to allow Ethernet NM to work correctly in 3620/3640
1513 (seen when directly attached to the real network with very few packets
1514 incoming).
1515 - NM-16ESW: proper support for tx ring scatter/gather support.
1516 - NM-16ESW: fixed a bug in ARL insertion.
1517 - NM-16ESW: send directly BPDU packets to the CPU.
1518
1519 29-Sep-2006
1520 -----------
1521 - NM-16ESW: added support for "trunks" (ie etherchannel).
1522 - Added "Ctrl+p" sequence key to dump Port Adapter / Network Module info
1523 (only NM-16ESW reports something at this time).
1524
1525 30-Sep-2006
1526 -----------
1527 - NM-16ESW: proper management of station movement (etherchannel is handled).
1528
1529 01-Oct-2006
1530 -----------
1531 - NM-16ESW: added register handling.
1532
1533 02-Oct-2006
1534 -----------
1535 - NM-16ESW: playing with the port mirroring feature.
1536
1537 04-Oct-2006
1538 -----------
1539 - Finally understood how to handle link status changes! Now,
1540 "shut"/"no shut" is working. Better understanding of MII registers
1541 in general.
1542
1543 05-Oct-2006
1544 -----------
1545 - Fixed bug described in BTS entry #65 (in the case where two virtual
1546 addresses point at the same physical address, the JIT can use
1547 inappropriate block). This was a "silent" bug.
1548
1549 07-Oct-2006
1550 -----------
1551 - Modified the hypervisor parser to allow long lines (to upload IOS configs).
1552
1553 09-Oct-2006
1554 -----------
1555 - NM-16ESW: added ingress and egress port mirroring (todo: BPDU and CDP
1556 packets shouldn't be replicated).
1557
1558 10-Oct-2006
1559 -----------
1560 - 0.2.6-RC1 release.
1561 - NM-16ESW: implemented ARL count. Fixed the MAC address table display
1562 problems.
1563
1564 11-Oct-2006
1565 -----------
1566 - C3600: fixed NVRAM configuration export.
1567 - Merged a patch for Solaris/x86 from Damjan Marion.
1568 - Cleaned the EEPROM stuff to have something more generic.
1569 - NM-16ESW: base MAC address is now automatically generated.
1570
1571 12-Oct-2006
1572 -----------
1573 - NM-16ESW: added support to discard input packets.
1574
1575 13-Oct-2006
1576 -----------
1577 - NM-16ESW: modified the discard support to let BPDU packets arrive to
1578 the CPU.
1579 - Added online setup of idle-pc through the hypervisor command
1580 "vm set_idle_pc_online <vm_name> <cpu_id>".
1581 - Values computed for idle-pc are now stored in the virtual MIPS CPU
1582 and can be known through the hypervisor command
1583 "vm show_idle_pc_prop <vm_name> <cpu_id>".
1584
1585 15-Oct-2006
1586 -----------
1587 - Added a timer module.
1588 - NM-16ESW: added an ARL ager that removes expired MAC addresses.
1589
1590 18-Oct-2006
1591 -----------
1592 - Added hypervisor commands to tune idle-pc parameters
1593 ("vm set_idle_max" and "vm set_idle_sleep_time").
1594 - Centralized NM/PA EEPROM to have common definitions for platforms
1595 with the same type of network interfaces.
1596 - 0.2.6-RC2 release.
1597
1598 19-Oct-2006
1599 -----------
1600 - C2691: added sketelon code.
1601 - C2691: working DUART.
1602 - C2691: added mainboard EEPROM.
1603
1604 20-Oct-2006
1605 -----------
1606 - Bugfix: dec21140 and amd79c97x were incorrectly discarding frames based
1607 on the source address, preventing HSRP/VRRP to work (BTS entry #75).
1608 - C2691: added hypervisor module to handle instances.
1609
1610 22-Oct-2006
1611 -----------
1612 - C2691: trying to understand the network interrupt mechanism.
1613
1614 23-Oct-2006
1615 -----------
1616 - C2691: fixed Galileo interrupt (IRQ 3), allowing packets to be received!
1617 - Added a basic GT96100 system controller (for C2691).
1618 - GT96100: added MII registers.
1619 - Added a basic Flash device to be used as ROM+NVRAM for C2691.
1620 - C2691: NVRAM (simulated from flash) is now ok.
1621 - C2691: Analyzed environmental monitor register. No warning anymore.
1622
1623 24-Oct-2006
1624 -----------
1625 - C2691: NVRAM config export is working, config import requires more work
1626 (since write operations to flash are not immediate).
1627 - Allowed Galileo DMA IRQ to preempt the idle loop.
1628 - Fixed ATA Flash "current of sectors per card" which must be in LSW/MSW
1629 order and not MSW/LSW.
1630 - Added another ATA Flash access method (for c2691).
1631 - C2691: added support for CompactFlash.
1632
1633 25-Oct-2006
1634 -----------
1635 - GT96100: added some definitions for the Ethernet part.
1636
1637 26-Oct-2006
1638 -----------
1639 - Working on TX part for GT96100. Unfortunately, don't know yet how to
1640 signal an interrupt for it on the 2691 platform :(
1641
1642 27-Oct-2006
1643 -----------
1644 - C2691: found how to announce correctly NM presence in slot 1.
1645 - GT96100: finally found how to notify appropriately the network interrupt:
1646 the Serial Cause Register has to be handled.
1647 - C2691: added the glue code to set up GT96100 ethernet ports.
1648 - GT96100: added RX part. Packets are now sucessfully handled.
1649 - C2691: better understanding of network interrupt status registers.
1650 - C2691: added correct flash code detection.
1651 - GT96100: fixed the "PHY reset" problem.
1652 - C2691: added default correct chassis base MAC address.
1653
1654 28-Oct-2006
1655 -----------
1656 - GT96100: added hash function (Mode 0 ok, Mode 1 to fix) for Ethernet
1657 address filtering + appropriate definitions.
1658
1659 29-Oct-2006
1660 -----------
1661 - GT96100: fixed hash mode 1 (not tested).
1662 - GT96100: added address filtering process.
1663
1664 30-Oct-2006
1665 -----------
1666 - GT96100: added minimal MIB counters.
1667 - Implemented LBA mode for PCMCIA ATA disk devices and fixed data access.
1668 - Changed the default idle sleep time from 50ms to 30ms to avoid timer
1669 IRQ loss and timer drift.
1670 - Added hypervisor command "vm show_timer_drift <vm_instance> <cpu_id>"
1671 to display potential problem with a given idle-pc value.
1672 - C2691: added proper support for IO memory.
1673 - NM-16ESW: generalized code to support multiple platforms.
1674 - C2691: added support for NM-16ESW.
1675
1676 31-Oct-2006
1677 -----------
1678 - C3725: initial support. Hardware very similar to c2691: Cisco rocks!
1679 - C3745: added skeleton.
1680 - C3745: fixed GT96100 address.
1681 - C3745: added PCI bridges.
1682 - C3745: Network Modules are working!
1683 - C3745: CompactFlash working.
1684
1685 01-Nov-2006
1686 -----------
1687 - C3745: finally understood how to handle the system EEPROMs.
1688 - Updated documentation (README).
1689 - GT96100: minor enhancement of interrupt handling.
1690
1691 02-Nov-2006
1692 -----------
1693 - Added support for "ghost" RAM: instances use a RAM file (previously
1694 created) and use copy-on-write on it. It allows to share common memory
1695 between instances and so less memory is used.
1696
1697 03-Nov-2006
1698 -----------
1699 - Better support for ghost RAM, added hypervisor commands
1700 "vm set_ghost_status" and "vm set_ghost_file".
1701
1702 04-Nov-2006
1703 -----------
1704 - NM-16ESW: fixed incorrect BPDU handling (which caused to add a 2nd
1705 802.1Q tag to BPDU packets) and now 0100.0ccc.cccd is recognized as
1706 a BPDU MAC address (BTS entry #).
1707 - DEC21140: fixed CSR8 handling (missed frame counter), which returned
1708 an undefined value (BTS entry #81).
1709 - Merged a patch from Rostislav Opocensky who added support for C3600
1710 in nvram_export utility.
1711 - Re-enaebled debugging info for NM-16ESW on 2691/3600/37xx.
1712
1713 05-Nov-2006
1714 -----------
1715 - NM-16ESW: fixed a crash due to incomplete device removal.
1716
1717 06-Nov-2006
1718 -----------
1719 - Validated use of Serial interfaces with 2691/3725/3745.
1720 - Correct config register handling for 3600/2691/3725/3745 platforms
1721 (config register setting was ignored).
1722 - Added detection of empty NVRAM for 2691/3725/3745 to set the ignore config
1723 flag in the config register (to boot faster).
1724 - C3745: Fixed NVRAM properties.
1725 - C7200/C3600: rewrite of configuration push into NVRAM (can now be done
1726 offline).
1727 - C2691/C3725/C3745: added support for config push into ROM flash
1728 (simulated NVRAM).
1729
1730 07-Nov-2006
1731 -----------
1732 - Modified config export from NVRAM for all platforms (can now be done
1733 offline).
1734 - Better handling of base MAC address (2691/3725/3745 + NM-16ESW).
1735
1736 08-Nov-2006
1737 -----------
1738 - Rework of the MTS subsystem (generalization of MTS64 algorithms to MTS32
1739 which was broken).
1740 - Fast memory operations for 32-bit mode.
1741
1742 09-Nov-2006
1743 -----------
1744 - Rewrite of the MIPS TLB lookup operation.
1745
1746 10-Nov-2006
1747 -----------
1748 - Fixed another bug in TLB lookup.
1749 - Beginning of work for PA-MC-8TE1 support.
1750 - Added hypervisor commands to send messages to instances VTTY.
1751 - Working on PLX PCI9054 for PA-MC-8TE1.
1752
1753 11-Nov-2006
1754 -----------
1755 - Continuing a bit on PA-MC-8TE1.
1756
1757 14-Nov-2006
1758 -----------
1759 - Correct handling of VPN2 mask for TLB lookup.
1760 - bugfix: support of c3745 was missing in the hypervisor.
1761 - Merged a patch from Akim Dreyer for Debian support.

  ViewVC Help
Powered by ViewVC 1.1.26