|
|
1.1 root 1: /*
1.1.1.7 root 2: * Cisco 7200/3600/2691 simulation platform.
1.1 root 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: -----------
1.1.1.4 root 207: - Fixed a bug in SRA instruction in amd64 jit code. Dynamips is now working
1.1 root 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: -----------
1.1.1.4 root 398: - Added block timestamping, to evaluate use of JIT blocks and eventually
1.1 root 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: -----------
1.1.1.4 root 407: - Added support for PEM (NPE-B) EEPROM. It will probably allow support
1.1 root 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
1.1.1.4 root 472: that they may be used by IOS (NPE-400 for sure, other NPE?).
1.1 root 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:
1.1.1.2 root 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
1.1.1.3 root 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.
1.1.1.4 root 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 ([email protected]) 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 ([email protected]) 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 ([email protected]):
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 ([email protected]). Many thanks
1488: to him for this and for his work on packaging for Debian.
1.1.1.5 root 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).
1.1.1.6 root 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.
1.1.1.7 root 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.
1.1.1.8 root 1762: - 0.2.6-RC3 release.
1763:
1764: 15-Nov-2006
1765: -----------
1766: - C2691/C3725: fixed a crash occuring on some IOS images due to incorrect
1767: platform type.
1768: - Modified performance counter to have stats for instructions or blocks
1769: (cannot be used simultaneously).
1770: - "beq" jump code (x86) was incorrectly using non-local jump.
1771: - Bugfix: incorrect number of arguments for hypervisor commands related
1772: to ghost file handling.
1773: - 0.2.6-RC4 release.
1774:
1.1.1.10 root 1775: 17-Nov-2006
1.1.1.9 root 1776: -----------
1.1.1.10 root 1777: - Major code cleanup to make devices independent from the virtual processors.
1778: - Generic CPU stuff.
1779:
1780: 20-Nov-2006
1781: -----------
1782: - Merged of patch from Thomas Pani to list VM TCP console ports (required
1.1.1.9 root 1783: for gDynagen).
1784: - NM-16ESW: fixed (again) BPDU handling (incorrect VLAN tagging with non
1.1.1.10 root 1785: trunk ports).
1786: - Very minimal PowerPC definitions. Only non-JIT mode at this time.
1787: - PPC: added "crorc", "cror", "crnor", "crnand", "crandc", "crand".
1788: - PPC: added "and", "andc", "andi", "andis", "creqv", "crxor".
1789: - PPC: added "eqv", "isync", "mfmsr", "mtmsr", "nand", "nor", "or", "orc".
1790: - PPC: added "ori", "oris", "sync", "xor", "xori", "xoris", "mfcr".
1791: - PPC: added "addi", "addis".
1792:
1793: 21-Nov-2006
1794: -----------
1795: - PPC: added "cmp", "cmpl", "cmpi", "cmpli", "extsb", "extsh".
1796: - PPC: added "add", "add.", "and.", "andc.", "extsb.", "extsh.".
1797: - PPC: added a dummy memory access function (does nothing yet).
1798: - PPC: added "lbz", "lbzu", "lbzux", "lbzx".
1799: - PPC: added "lhz", "lhzu", "lhzux", "lhzx".
1800: - PPC: added "lwz", "lwzu", "lwzux", "lwzx".
1801: - PPC: added "stb", "stbu", "stbux", "stbx".
1802: - PPC: added "sth", "sthu", "sthux", "sthx".
1803: - PPC: added "stw", "stwu", "stwux", "stwx".
1804: - PPC: added "xor.", "b", "ba", "bl", "bla".
1805: - bugfix: hypervisor commands specific to CPU crashed if the VM was not
1806: started (noticed by Greg).
1807:
1808: 22-Nov-2006
1809: -----------
1810: - PPC: added "addo", "addo.", "addc", "addc.", "addco", "addco."
1811: - PPC: added "addic", "addic.", "adde", "adde.", "addeo", "addeo."
1812: - PPC: added "neg", "neg.", "nego", "nego.", "nand.", "nor.", "or.", "orc."
1813: - PPC: added "slw", "slw.", "srw", "srw."
1814:
1815: 23-Nov-2006
1816: -----------
1817: - PPC: added "rlwimi", "rlwimi.", "rlwinm", "rlwinm.", "rlwnm", "rlwnm."
1818:
1819: 24-Nov-2006
1820: -----------
1821: - PPC: added "mulhw", "mulhw.", "mulhwu", "mulhwu.", "mulli".
1822: - PPC: added "mullw", "mullw.", "mullwo", "mullwo."
1823: - PPC: added "subf", "subf.", "subfo", "subfo."
1824: - PPC: added "bc", "bca", "bcl", "bcla", "bclr", "bclrl".
1825: - PPC: added minimal memory operation glue code.
1826:
1827: 25-Nov-2006
1828: -----------
1829: - PPC: added dump functions for MMU registers.
1830: - PPC: added support for BAT registers.
1831:
1832: 26-Nov-2006
1833: -----------
1834: - PPC: fixed branch offset computation.
1835: - PPC: added a dummy virtual machines for tests.
1836: - PPC: fixed bclrx opcodes.
1837: - PPC: added "mflr", "mtlr".
1838:
1839: 27-Nov-2006
1840: -----------
1841: - PPC: fixes in comparison functions.
1842: - PPC: added "subfc", "subfc.", "subfco", "subfco."
1843:
1844: 28-Nov-2006
1845: -----------
1846: - PPC: added "subfic", "mfctr".
1847: - PPC: fixed a lot of bugs.
1848:
1849: 29-Nov-2006
1850: -----------
1851: - PPC: added "rfi", "lha", "lhau", "lhaux", "lhax", "addze", "addme".
1852: - PPC: fixed "mtcrf".
1853:
1854: 30-Nov-2006
1855: -----------
1856: - Added IRQ routing vectors for virtual machines.
1857:
1858: 01-Dec-2006
1859: -----------
1860: - Playing with NPE-G2, just for fun.
1861:
1862: 02-Dec-2006
1863: -----------
1864: - NPE-G2: environmental monitor is now working!
1865:
1866: 03-Dec-2006
1867: -----------
1868: - PPC: added an empty MV64460 controller (need the datasheet).
1869: - PPC: added "lmw" instruction, fixed "stmw".
1870: - PPC: added "cntlzw".
1871:
1872: 05-Dec-2006
1873: -----------
1874: - NPE-G2: analyzed midplane data: this is similar to other NPE.
1875: - Added a basic PLX6520CB PCI bridge.
1876: - NPE-G2: added appropriate PCI bridges and PCI busses for Port Adapters.
1877:
1878: 06-Dec-2006
1879: -----------
1880: - NPE-G2: added PCI I/O space.
1881: - NPE-G2: added CLPD6729, it is now possible to use PCMCIA ATA disks.
1882:
1883: 08-Dec-2006
1884: -----------
1885: - MV64460: added ugly experimental SDMA support to have a console for the
1886: NPE-G2 (using the GT96100A datasheet). This code must be rewritten.
1887: - MV64460/NPE-G2: playing with the various IRQs.
1888:
1889: 09-Dec-2006
1890: -----------
1891: - PPC: added idle-pc support.
1892:
1893: 10-Dec-2006
1894: -----------
1895: - PPC: added virtual breakpoint support.
1896:
1897: 15-Dec-2006
1898: -----------
1899: - PPC: added functions to manually set up page tables.
1900: - MV64460: added more interrupt definitions (with help of GT96100A manual).
1901:
1902: 19-Dec-2006
1903: -----------
1904: - MV64460: fixed interrupt loss problem.
1905:
1906: 20-Dec-2006
1907: -----------
1908: - Basic port of the microcode for the PowerPC platforms. IOS now starts
1909: normally (like the MIPS64 platforms).
1910:
1911: 21-Dec-2006
1912: -----------
1913: - NPE-G2: found OIR IRQ.
1914: - MV64460: added more definitions (for SDMA).
1915: - Cleanup of MIPS64 JIT code (better naming).
1916:
1917: 22-Dec-2006
1918: -----------
1919: - PPC32: added the minimal JIT core infrastructure.
1920: - PPC32-JIT: added unknown opcode handling.
1921: - PPC32-JIT: added some instructions.
1922:
1923: 23-24-Dec-2006
1924: --------------
1925: - PPC32-JIT: added more instructions.
1926:
1927: 26-Dec-2006
1928: -----------
1929: - PPC32-JIT: continuing...
1930:
1931: 27-Dec-2006
1932: -----------
1933: - PPC32-JIT: added fast memory operations.
1934:
1935: 28-Dec-2006
1936: -----------
1937: - Added PPC32 nojit support.
1938: - PPC32: better checking for IRQs.
1939:
1940: 29-Dec-2006
1941: -----------
1942: - PPC32-JIT: added "amd64" support.
1943: - PPC32: added "lwbrx" and "stwbrx" instructions.
1944:
1945: 30-Dec-2006
1946: -----------
1947: - PPC32: added "tw"/"twi" instructions.
1948: - PPC32: added TLB support for PowerPC 405.
1949: - PPC32: added "tlbre", "tlbwe", "iccci", "dccci", "mfdcr", "mtdcr" for
1950: PowerPC 405.
1951: - Fixed a bug with ILT tables (incorrect count - last entry was missing).
1952:
1953: 31-Dec-2006
1954: -----------
1955: - PPC32: added "dcbst" instruction.
1956:
1957: 05-Jan-2007
1958: -----------
1959: - NPE-G2: correct handling of DUART interrupt with I/O card.
1960:
1961: 07-Jan-2007
1962: -----------
1963: - NPE-G2: correct console selection (NPE or I/O board) depending on slot 0.
1964: - PPC32: fixup for decrementer interrupt.
1965: - Generic CPU MTS rebuild (mips64/ppc32).
1966: - Split of memory.c / mips64_mem.c. memory.c will only contain generic
1967: functions independent of the CPU model.
1968: - Memlogger is now independent of CPU type (untested).
1969:
1970: 08-Jan-2007
1971: -----------
1972: - Rewrite of the MTS subsystem to have less overhead with inlined
1973: operations -> better performance.
1974:
1975: 09-Jan-2007
1976: -----------
1977: - Finished the MTS rewrite (amd64, statistics).
1978: - NPE-G2: added a 64 Mb bootflash (needs to be tested).
1979:
1980: 10-Jan-2007
1981: -----------
1982: - PPC32: added clean loading of BAT registers.
1983: - Fixed device remapping.
1984:
1985: 12-Jan-2007
1986: -----------
1987: - PPC32: added "lswi", "stswi", "lswx", "stswx".
1988:
1989: 13-Jan-2007
1990: -----------
1991: - PPC32: fixed carry evaluation for "srawi" instruction.
1992:
1993: 15-Jan-2007
1994: -----------
1995: - Playing with c2600 to see if support can be added.
1996:
1997: 17-Jan-2007
1998: -----------
1999: - C2600: adding skeleton code, added NM selection. However, unable
2000: to get a positive result for "sh diag 0".
2001:
2002: 19-Jan-2007
2003: -----------
2004: - Experimenting with sparse memory to reduce virtual memory use in
2005: hypervisor mode.
2006:
2007: 20-Jan-2007
2008: -----------
2009: - Continuing on sparse memory work.
2010:
2011: 21-Jan-2007
2012: -----------
2013: - C2600: added mainboard basic support.
2014: - MPC860: added a basic IDMA support.
2015: - C2600: first packet exchange :)
2016:
2017: 22-Jan-2007
2018: -----------
2019: - C2600: added basic mainboard drivers for integrated Ethernet ports.
2020: - C2600: added IRQ preemption for network interrupt and DUART.
2021: - Fixed use of sparse memory with ghost files.
2022: - Added a command line option to test sparse memory ("--sparse-mem").
2023: - Added locking for shared ghost images.
2024:
2025: 24-Jan-2007
2026: -----------
2027: - Validation of dynagen 0.8.3 with sparse memory and ghost image enabled.
2028: - MIPS64: fixed a bug of the JIT which incorrectly handled jump instructions
2029: with a delay slot in another page.
2030:
2031: 25-Jan-2007
2032: -----------
2033: - C2600: added NVRAM configuration import/export and appropriate config
2034: register setting if NVRAM is empty at startup.
2035: - C2600: added a basic bootflash support.
2036:
2037: 26-Jan-2007
2038: -----------
2039: - C2600: io-mem size support.
2040:
2041: 31-Jan-2007
2042: -----------
2043: - i8254x: added skeleton code (for PA-2FE-TX).
2044:
2045: 01-Feb-2007
2046: -----------
2047: - i8254x: added MDIO code.
2048:
2049: 04-Feb-2006
2050: -----------
2051: - C2600: added "set_chassis" hypervisor command.
2052: - C2600: possible chassis/mainboards now displayed at command line help.
2053:
2054: 05-Feb-2007
2055: -----------
2056: - Fixed a bug when handling packet discard flag on NM-16ESW (seems to be
2057: only valid for native packets).
2058:
2059: 06-Feb-2007
2060: -----------
2061: - Working on i8254x TX part. Problem with TX ring wrapping.
2062:
2063: 08-Feb-2007
2064: -----------
2065: - Added packet capture to NIO filters, with PCAP output (Greg Anuzelli).
2066: - i82543: RX and TX parts are now basically working (of course, no IP/TCP
2067: checksum offloading, but this doesn't seem to be used).
2068:
2069: 09-Feb-2007
2070: -----------
2071: - C7200: added C7200-IO-2FE card, based on Intel i82543 chips.
2072: - C7200: added PA-GE interface, but TX part is broken.
2073: - i8254x: TDH/TDT and RDH/RDT registers are located at a different address.
2074: PA-GE is now working.
2075:
2076: 12-Feb-2007
2077: -----------
2078: - i8254x: delayed RX IRQ.
2079: - MIPS64: fixed (again) TLB lookup for entries in ksseg and kseg3.
2080: - Added a "byte-swapping" device.
2081:
2082: 13-Feb-2007
2083: -----------
2084: - i8254x: added byte-swapped data transfer.
2085: - PA-POS-OC3: applied byte-swapped data transfer for TX ring (RX ring
2086: doesn't seem to need this - strange).
2087:
2088: 14-Feb-2007
2089: -----------
2090: - C7200: added C7200-IO-GE+E, based on Intel i82543 chips.
1.1.1.11 root 2091:
2092: 16-Feb-2007
2093: -----------
2094: - MIPS64: fixed a problem of jump in delay slots (occuring with a "forward"
2095: jump). This caused a malfunction for C7200-IO-2FE and C7200-IO-GE-E cards.
2096: - C7200: adjusted the byte-swapped zone for NPE-300 io-memory.
2097:
2098: 18-Feb-2007
2099: -----------
2100: - PPC32: Remove JIT compiled pages when a write occurs (required for c2600).
2101:
2102: 19-Feb-2007
2103: -----------
2104: - PPC32: Optimization for writes on JIT page at address 0.
2105:
2106: 20-Feb-2007
2107: -----------
2108: - Working on MSFC1 - just for fun (this will probably never route any
2109: packet).
2110: - Fixed DEC21140 TX ring interrupt generation.
2111:
2112: 21-Feb-2007
2113: -----------
2114: - Continuing on MSFC1 (added EEPROM, SRAM, ...)
2115: - Added NMC93C56 EEPROM support.
2116:
2117: 23-Feb-2007
2118: -----------
2119: - MPC860: fixed a bug in DMA handling which caused incorrect writes out
2120: of DPRAM memory.
2121: - PPC32: added missing breakpoint function for JIT.
2122: - C7200: rework on network interrupts, for clean handling per slot/port.
2123:
2124: 24-Feb-2007
2125: -----------
2126: - C7200: Net IRQs are now correctly dispatched. Need to fix all drivers
2127: to generate IRQs correctly.
2128: - DEC21140: proper management of CSR5 register for new interrupt handling.
2129: - i8254x: converted to new interrupt handling.
2130: - Am79c971: fixed interrupt management + a bug with IRQ mask.
2131: - PA-A1/PA-POS-OC3/Mueslix: fixed interrupt management.
2132:
2133: 25-Feb-2007
2134: -----------
2135: - C2691: updated interrupt infrastructure.
2136: - NM-16ESW: fixed interrupt handling.
2137:
2138: 26-Feb-2007
2139: -----------
2140: - C3725/C3745: updated interrupt infrastructure.
2141:
2142: 27-Feb-2007
2143: -----------
2144: - C2600: updated interrupt infrastructure.
2145:
2146: 02-Mar-2007
2147: -----------
2148: - Added a cache for the instruction lookup tables (ILT), allowing a faster
2149: start.
2150:
2151: 03-Mar-2007
2152: -----------
2153: - Fixed instruction tables (problem seen on amd64 platforms).
2154:
2155: 07-Mar-2007
2156: -----------
2157: - MIPS64/PPC32: various code cleanups in JIT code.
2158: - MIPS64: replace the JIT block lookup algorithm based on physical
2159: pages by s-boxes (x86 only).
2160:
2161: 08-Mar-2007
2162: -----------
2163: - PPC32: JIT block lookup optimization (x86 only).
2164:
2165: 09-Mar-2007
2166: -----------
2167: - MIPS64/PPC32: JIT block lookup optimization (amd64).
2168:
2169: 12-Mar-2007
2170: -----------
2171: - PPC32: fixed invalid hash index in JIT block invalidation (thanks to Greg).
2172:
2173: 13-Mar-2007
2174: -----------
2175: - Updated the Mueslix driver and fixed it for packets > 128 bytes
2176: (IRQ clearing delay required because of the new interrupt system).
2177: - Allowed MTU up to 18000 bytes on the Mueslix driver. This required an
2178: update of the NIO core.
2179: - Full dump of the idle-pc values when no "good" value can be determined.
2180:
2181: 25-Mar-2007
2182: -----------
2183: - Store the idle-pc values in the CPU structure when no "good" value is
2184: available, so they are readable/usable by dynagen.
2185: - PA-POS-OC3: fixed memory copy which caused invalid frames to be sent.
2186:
2187: 27-Mar-2007
2188: -----------
2189: - Added a device access counter for each CPU for diagnostics purposes.
2190:
2191: 29-Mar-2007
2192: -----------
2193: - PPC32: optimizations for eflags->cr computing.
2194:
2195: 30-Mar-2007
2196: -----------
2197: - PPC32: optimizations in CR handling (split in 8 fields).
2198:
2199: 31-Mar-2007
2200: -----------
2201: - PPC32: added CR optimizations to amd64 backend.
2202:
2203: 02-Apr-2007
2204: -----------
2205: - Fixed "nojit" build (reported by Philipp Brenner, BTS entry #156).
2206: - AMD Am79c970 FastEthernet interfaces now announce 100 Mb/s Full duplex.
2207:
2208: 04-Apr-2007
2209: -----------
2210: - Fixed build (NetIO filters) when PCAP is lacking.
2211:
2212: 09-Apr-2007
2213: -----------
2214: - Added NM-1A-OC3MM EEPROM definition for future work.
2215: - NM-16ESW: filter CDP specifically to not propagate frames to all ports.
2216:
2217: 12-Apr-2007
2218: -----------
2219: - Added an hypervisor command to disable direct jumps between JIT blocks
2220: (vm set_blk_direct_jump <vm_name> <0|1>).
1.1.1.12 root 2221:
2222: 15-Apr-2007 => 22-Apr-2007
2223: ===========================
2224: - PPC32: rewrite of JIT with peephole and CR flags optimizations.
2225:
2226: 23-Apr-2007
2227: -----------
2228: - PPC32: converted amd64 JIT to new system.
2229:
2230: 24-Apr-2007
2231: -----------
2232: - MIPS64: fixed a bug in cache instruction preventing compressed IOS images
2233: to boot.
2234: - PPC32: same as above for ICBI instruction.
2235: - PPC32: fixed ADDZE instruction.
2236:
2237: 25-Apr-2007
2238: -----------
2239: - C3725: fixed interrupt problems with slot 2 (bad shift - only 4 irq
2240: lines per port).
1.1.1.13 root 2241:
2242: 28-Apr-2007
2243: -----------
2244: - Changed instruction counters to 32-bit type, to get more accurate
2245: results.
2246:
2247: 29-Apr-2007
2248: -----------
2249: - Experimenting with a per-register memory translation cache.
2250:
2251: 30-Apr-2007
2252: -----------
2253: - C2600: playing with MPC860 SPI to access WIC eeproms (slot 0 only).
2254:
2255: 01-May-2007
2256: -----------
2257: - MPC860: continuing on SPI.
2258: - Rewriting/Refactoring code to handle network interfaces (required for WIC
2259: support).
2260:
2261: 02-May-2007
2262: -----------
2263: - Continuing rework of network interfaces.
2264:
2265: 03-May-2007
2266: -----------
2267: - Added slot handling hypervisor commands to VM module.
2268: - Fixed some bugs/lacking checks in network card module.
2269: - C2600: added WIC EEPROM read through MPC860 SPI code.
2270: - C2600: beginning of work for basic SCC implementation.
2271:
2272: 04-May-2007
2273: -----------
2274: - C2600: continuing on SCC.
2275: - C2600: WIC-1T is now working!
2276: - C2600: added WIC-2T (async mode is not supported).
2277: - C1700: introduction of this platform (took c2600 as base model).
2278:
2279: 05-May-2007
2280: -----------
2281: - MPC860: added SPI relocation support (required for c1700).
2282: - C1700: added NVRAM.
2283: - C1700: added WIC detection / correct EEPROM support.
2284: - MPC860: beginning of work on Fast Ethernet Controller.
1.1.1.12 root 2285:
1.1.1.13 root 2286: 07-May-2007
2287: -----------
2288: - MPC860: Fast Ethernet Controller basically working (MII registers
2289: required).
2290: - MPC860: better handling of interrupt levels.
2291: - C1700: added WIC support (WIC-1T/WIC-2T).
2292:
2293: 14/15-May-2007
2294: --------------
2295: - Flash code rework (required for c1700) to have something more generic.
2296:
2297: 16-May-2007
2298: -----------
2299: - New flash code re-enabled for all routers requiring it (NPE-G2 bootflash
2300: is broken however).
2301: - C1700: added WIC-1ENET code base with EEPROM MAC address programming.
2302:
2303: 18-May-2007
2304: -----------
2305: - Memory exceptions are now handled through setjmp/longjmp, avoiding error
2306: checks in memory access functions.
2307:
2308: 19-May-2007
2309: -----------
2310: - C2600: fixed PCI handling which prevented i82559 device to work.
2311: In fact, the PCI bridge is in a Xilinx device, and the output of
2312: "sh pci hardware" was very different from a real router.
2313: - i8255x (eepro100): added basic code (no RX/TX, only MII working).
2314:
2315: 20-May-2007
2316: -----------
2317: - Continuing on i8255x.
2318:
2319: 21-May-2007
2320: -----------
2321: - i8255x: Intel doesn't provide enough info in its documentation for
2322: the RX flexible mode...
2323:
2324: 22-May-2007
2325: -----------
2326: - i8255x: RX flexible mode works similarly to the 82596CA chipset.
2327: Packet TX and RX seems ok.
2328:
1.1.1.12 root 2329: 23-May-2007
2330: -----------
1.1.1.13 root 2331: - C2691/C3725/C3745: fixed GT96100 binding to slot 0.
2332: - GT96100/ETH: fixed interrupt handling for TX packets (the interrupt was
1.1.1.12 root 2333: incorrectly disabled when no packet was available on a ring, causing
2334: packet loss when the two ports were enabled) - BTS entry #171.
1.1.1.13 root 2335:
2336: 25-May-2007
2337: -----------
2338: - C3660: correct support of mainboard FastEthernet ports with the new
2339: card subsystem.
2340: - C7200: fixed I/O card definition with new card subsystem.
2341: - Added compatibility mode with old version for slot binding in the
2342: command line.
2343:
2344: 01-Jun-2007
2345: -----------
2346: - Heavily fixed/tested the Serial drivers to correctly transmit/receive
2347: frames. Now the CRC is not anymore transmitted and the correct size is
2348: set for RX rings (TODO: crc-32 for Mueslix and PA-POS-OC3).
2349:
2350: 03-Jun-2007
2351: -----------
2352: - Fixed incorrect free in deletion of frame-relay switch VC.
2353:
2354: 04-Jun-2007
2355: -----------
2356: - PA-POS-OC3/Mueslix: added correct handling of crc-16/crc-32.
2357:
2358: 10-Jun-2007
2359: -----------
2360: - MIPS64: correct handling of stack for MacOS X (alignment).
2361: - MSFC1: cleaned up module to use the new card infrastructure.
2362: - Frame-Relay switch: removed "trailing" handling which was in fact
2363: only the CRC + final byte.
2364:
2365: 09-Jul-2007
2366: -----------
2367: - Fixed PA-FE-TX initialization (EEPROM setting lacking).
2368:
2369: 11-Jul-2007
2370: -----------
2371: - PPC32-JIT: fixed stack alignment for MacOSX/Darwin.
2372: - PPC32-JIT: fixed perf counter and breakpoints.
2373:
2374: 13-Jul-2007
2375: -----------
2376: - Integrated patches from FreeBSD (Pavel I Volkov), excepted for the vtty
2377: part.
2378:
2379: 14-17-Jul-2007
2380: --------------
2381: - Rework of VM infrastructure.
2382:
2383: 17-Jul-2007
2384: -----------
2385: - Added basic plugin subsystem.
2386: - CPU: added custom handler support for undefined memory accesses.
2387:
2388: 21-22-Jul-2007
2389: --------------
2390: - GT96100: working on SDMA and MPSC.
2391:
2392: 23-Jul-2007
2393: -----------
2394: - C3745: finally understood how to handle WIC EEPROMs.
2395:
2396: 24-Jul-2007
2397: -----------
2398: - C3745: added support of WIC-1T & WIC-2T.
2399: - GT96100: fixed SDMA handling.
2400:
2401: 25-Jul-2007
2402: -----------
2403: - C2691/C3725: added WIC-1T and WIC-2T similarly to C3745.
2404: - C1700: fixed mainboard definitions, added proper support of C1710
2405: (no WIC port, Ethernet port connected on MPC860 SCC1).
2406: - C1700: added 1751 and 1760 definitions.
2407:
2408: 29-Jul-2007
2409: -----------
2410: - MPC860: fixed MII registers for 1710, 1721 and 1760.
2411:
2412: 01-Aug-2007
2413: -----------
2414: - C2600/C2691/C3725/C3745: Added NM-CIDS/NM-NAM which can be connected
2415: to a PC emulator.
2416: - C2600: added a check for NM-CIDS/NM-NAM which require XM models.
2417:
2418: 18-Aug-2007
2419: -----------
2420: - Added WIC address space definitions for platforms that support them.
2421:
2422: 19-Aug-2007
2423: -----------
2424: - Added ISL support for am79c970 based cards (NM-1FE-TX and others).
2425:
2426: 27-Aug-2007
2427: -----------
2428: - GT96100: missing check for NULL pointer in set_nio/unset_nio.
2429: - MPC860: same bugfix (SCC and FEC).
2430:
2431: 31-Aug-2007
2432: -----------
2433: - MIPS/PPC: modified device memory access to allow devices not at a 4k
2434: page boundary (like WICs on 2600).
2435: - Added fake WIC serial drivers, just to catch the memory accesses.
2436:
2437: 06-Sep-2007
2438: -----------
2439: - PPC32: Fixed BCTR instruction on amd64 jit.
1.1.1.14 root 2440:
2441: 08-Sep-2007
2442: -----------
2443: - Added an object store (through hypervisor) for Dynagen.
2444:
2445: 11-Sep-2007
2446: -----------
2447: - Proper cleanup of gt_data/mpc_data fields for MPC860 and GT96100 based
2448: platforms (start/stop/exit/crash symptom with Dynagen).
2449:
2450: 12-Sep-2007
2451: -----------
2452: - Fixed udp_recv simple program which was broken.
2453: - Added "delete_all" command for hypervisor object store.
2454: - Added appropriate code for serial WIC drivers on 1700.
2455:
2456: 14-Sep-2007
2457: -----------
2458: - Added TCP keepalives on VTTY connections ([email protected])
2459: - Fixed Flash code.
2460:
2461: 18-Sep-2007
2462: -----------
2463: - Added a virtual ATM SAR (segmentation and reassembly) engine.
2464: - Added a virtual ATM bridge device (RFC1483).
2465:
2466: 21-Sep-2007
2467: -----------
2468: - GT96100: fixed CRC handling in MPSC HDLC channels (2 bytes, not 4!)
2469:
2470: 30-Sep-2007
2471: -----------
2472: - PPC32-JIT: fixed CR signed evaluation in case of overflow.
2473:
2474: 04-Oct-2007
2475: -----------
2476: - Added ISL support for integrated ports on 2691/3725/3745.
2477:
2478: 07-Oct-2007
2479: -----------
2480: - Fixed non-JIT build for PPC32.
2481:
2482: 08-Oct-2007
2483: -----------
2484: - MV64460: rewrite of SDMA code to follow GT96100 model.
2485:
2486: 09-Oct-2007
2487: -----------
2488: - MV64460: added MPSC registers (as for GT96100).
2489:
2490: 10-Oct-2007
2491: -----------
2492: - MV64460: added SRAM.
1.1.1.15! root 2493:
! 2494: 29-Oct-2007
! 2495: -----------
! 2496: - C3745: some work on OIR, but unfortunately only NM-4T works at the moment.
! 2497:
! 2498: 30-Oct-2007
! 2499: -----------
! 2500: - C3660: added OIR support.
! 2501:
! 2502: 27-Nov-2007
! 2503: -----------
! 2504: - C7200: added support for jacket card (C7200-JC-PA) and support for PA
! 2505: in slot 7.
! 2506:
! 2507: 29-Nov-2007
! 2508: -----------
! 2509: - Fixed AAL5 CRC.
! 2510:
! 2511: 15-Jan-2008
! 2512: -----------
! 2513: - Added Multicast NIO
! 2514:
! 2515: 19-Jan-2008
! 2516: -----------
! 2517: - Added "nio set_mcast_ttl" hypervisor command to change TTL for multicast
! 2518: NIOs.
! 2519:
! 2520: 25-Jan-2008
! 2521: -----------
! 2522: - Added 64-bit support for MacOS X 10.5 - Leopard (stack alignment).
! 2523:
! 2524: 31-Mar-2008
! 2525: -----------
! 2526: - PPC32: Fixed DIVW instruction (incorrect cast: unsigned instead of signed).
! 2527: This was causing problems with OSPF (and probably other protocols) on 2600
! 2528: platforms.
! 2529:
! 2530: 01-Apr-2008
! 2531: -----------
! 2532: - Some minor info added (OS name) to ease debugging.
! 2533:
! 2534: 24-Apr-2008
! 2535: -----------
! 2536: - Added NIO traffic statistics (packets/bytes in/out).
! 2537:
! 2538: 25-Apr-2008
! 2539: -----------
! 2540: - Added QinQ support in integrated ethernet switch (untested).
! 2541:
! 2542: 07-May-2008
! 2543: -----------
! 2544: - More coherent naming for JIT variables ("blocks" -> "tcb").
! 2545: - Fix QinQ input vector in Ethernet switch (thanks to Pavel Skovajsa).
! 2546:
! 2547: 16-May-2008
! 2548: -----------
! 2549: - Merged PPC-host JIT patch from Zhe Fang.
! 2550:
! 2551: Jun-2008
! 2552: --------
! 2553: - Worked on a JIT code sharing system (only MIPS ported at this time)
! 2554:
! 2555: 03-Jul-2008
! 2556: -----------
! 2557: - MIPS64: fixed a lot of mistakes in handling of TLB entries.
! 2558:
! 2559: 27-Nov-2008
! 2560: -----------
! 2561: - Added "udp auto" NIO to avoid fixed port allocation which can easily fail.
! 2562: - Bug fixes in socket handling (incorrect setsockopt() for non-RFC2553
! 2563: systems)
! 2564:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.