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 |
23-May-2007 |
2243 |
----------- |
2244 |
- GT96100/ETH: fixed interrupt handling for TX packets (the interrupt was |
2245 |
incorrectly disabled when no packet was available on a ring, causing |
2246 |
packet loss when the two ports were enabled) - BTS entry #171. |