1 |
dpavlin |
1 |
/* |
2 |
|
|
* Cisco 7200 (Predator) 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 |
dpavlin |
2 |
- 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). |