Annotation of cf/ChangeLog, revision 1.1

1.1     ! root        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. IOSEmu 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 JIT of 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 allows 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, others 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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.