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