/[gxemul]/trunk/TODO
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/TODO

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2 by dpavlin, Mon Oct 8 16:17:48 2007 UTC revision 10 by dpavlin, Mon Oct 8 16:18:27 2007 UTC
# Line 1  Line 1 
1  $Id: TODO,v 1.125 2005/03/06 08:21:10 debug Exp $  $Id: TODO,v 1.139 2005/06/23 06:55:43 debug Exp $
2    
3  Here's a short list of what I have left to do on GXemul. This file is a mess.  Here's a short list of what I have left to do on GXemul. This file is a mess.
4  Order is random. Don't trust it to be up-to-date.  Order is random. Don't trust it to be up-to-date.
5    
   
6          Caches / memory hierarchies: (this is mostly MIPS-specific)          Caches / memory hierarchies: (this is mostly MIPS-specific)
7                  o)  MIPS coproc.c: bits in config registers should reflect                  o)  MIPS coproc.c: bits in config registers should reflect
8                      correct cache sizes for _all_ CPU types. (currently only                      correct cache sizes for _all_ CPU types. (currently only
# Line 27  Order is random. Don't trust it to be up Line 26  Order is random. Don't trust it to be up
26          Network layer:          Network layer:
27                  o)  Multiple networks per emulation, and let different                  o)  Multiple networks per emulation, and let different
28                      NICs in machines connect to different networks.                      NICs in machines connect to different networks.
                 o)  Network across multiple hosts.  
                 o)  Fixed MAC addresses for NICs, fixed IPv4 addresses if  
                     DHCP or RARP is used.  
29                  o)  many other issues: see src/net.c                  o)  many other issues: see src/net.c
30    
         Configure script:  
                 o)  Only enable Alpha prefetch on pca56 etc, not on ev4, ev5.  
                 o)  Use getopts?  
                 o)  X11 libs and headers via command line option?  
                 o)  Verify that the configure script, building and running  
                     the emulator works on some platforms:  
                         +)  Irix, AIX, QNX  
                         +)  MacOS X  (I've not tried this personally yet)  
                         +)  Ultrix using gcc? (Inside the emulator)  
   
31          CPU emulation:          CPU emulation:
32                  o)  Binary translation:                  o)  Binary translation:
33                          +)  use an Intermediate Representation!                          +)  use an Intermediate Representation!
# Line 50  Order is random. Don't trust it to be up Line 36  Order is random. Don't trust it to be up
36                          +)  on Alpha: don't assume pca56-like byte load/store?                          +)  on Alpha: don't assume pca56-like byte load/store?
37                          +)  write backends for UltraSparc and MIPS                          +)  write backends for UltraSparc and MIPS
38                          +)  see src/bintrans.c for more info                          +)  see src/bintrans.c for more info
39                    o)  Dynamic-but-not-binary translation?
40                    o)  All the non-MIPS modes need a bit of work.
41    
42          MIPS CPU emulation:          MIPS CPU emulation:
43                  o)  Instructions:                  o)  Instructions:
# Line 93  Order is random. Don't trust it to be up Line 81  Order is random. Don't trust it to be up
81                          +)  Own experiments with ycx2.                          +)  Own experiments with ycx2.
82    
83          Emulation of specific machines and devices:          Emulation of specific machines and devices:
                 o)  Clean up stuff to make it possible to emulate multiple  
                     (different) machines simultaneously.  
84                  o)  Use same clock for all emulations and machines.                  o)  Use same clock for all emulations and machines.
85                  o)  Clean up the device stuff (registering of devices etc)                  o)  Clean up the device stuff (registering of devices etc)
86                  o)  Various SCSI and IDE controllers                  o)  Various SCSI and IDE controllers
# Line 127  Order is random. Don't trust it to be up Line 113  Order is random. Don't trust it to be up
113                          x)  Memory/interrupt controllers                          x)  Memory/interrupt controllers
114                          x)  IP30 (Linux with graphics support?)                          x)  IP30 (Linux with graphics support?)
115                          x)  SMP / NUMA?  (SGI and various ARC machines)                          x)  SMP / NUMA?  (SGI and various ARC machines)
                 o)  Cobalt:  PCI and interrupt system, ethernet,  
                         harddisk controller(s)  
116                  o)  Playstation 2:                  o)  Playstation 2:
117                          Hardware:  OHCI usb controller, keyboard, IDE, ...                          Hardware:  OHCI usb controller, keyboard, ...
                         Has an R3000A as a subsystem (!)  
                 o)  hpcmips:  framebuffer(s) and harddisk controller,  
                         among other things  
                 o)  newsmips:  
                         o)  NetBSD/newsmips, get it to detect a "real"  
                             model, right now everything is 100% bogus  
118                  o)  Less interesting platforms:                  o)  Less interesting platforms:
119                            o)  newsmips:
120                                    o)  NetBSD/newsmips, get it to detect a "real"
121                                        model, right now everything is 100% bogus
122                          o)  mipsco? (NetBSD)                          o)  mipsco? (NetBSD)
123                          o)  wgrisc? (big endian R3000, in OpenBSD's attic)                          o)  wgrisc? (big endian R3000, in OpenBSD's attic)
124                          o)  other embedded / evaluation MIPS boards                          o)  other embedded / evaluation MIPS boards
# Line 148  Order is random. Don't trust it to be up Line 129  Order is random. Don't trust it to be up
129    
130          File/disk handling:          File/disk handling:
131                  o)  Read function argument count and types from binaries? (ELF?)                  o)  Read function argument count and types from binaries? (ELF?)
                 o)  ELF: separate LE/BE (MIPS instruction format) from LSB/MSB  
                         (ELF structure format)?  
132                  o)  Better handling of tape files                  o)  Better handling of tape files
133    
134          Userland ABI emulation:          Userland ABI emulation:
# Line 158  Order is random. Don't trust it to be up Line 137  Order is random. Don't trust it to be up
137          Terminal based interactive debugger:          Terminal based interactive debugger:
138                  o)  see src/debugger.c                  o)  see src/debugger.c
139    
140          GDB interface? (Maybe not necessary; the built-in debugger feels          Terminal/console stuff:
141          more useful.)                  o)  allow emulated serial ports to be connected to the outside
142                        world in a more generic way, or even to other emulated
143          GUI, interactive debugger?  GTK+?  (The GUI _must be optional_!)                      machines(!)
                 o)  Breakpoints (complex expressions? combinations of register  
                         states, memory accesses and so on)  
                 o)  Instruction trace  
                 o)  Disassembly of RAM (_NOT_ the same as instruction trace)  
                 o)  Function call trace  
                 o)  Inspection of CPU registers/state, coprocessor  
                         registers/state, any device registers/state/contents  
                         o)  Framebuffers in windows / tabs.  
                         o)  Contents of RAM  
                 o)  "Start new emulation" should allow amount of  
                         RAM and nr of cpus to easily be specified.  
                         Multiple simultaneous machines should be possible.  
                 o)  Disk images.  
144    
145          Regression tests:          Regression tests:  (Should be totally rewritten.)
146                  o)  see tests/                  o)  see tests/
147    
148          Save state of the whole emulated machine, to be able to load it back          Save state of the whole emulated machine, to be able to load it back

Legend:
Removed from v.2  
changed lines
  Added in v.10

  ViewVC Help
Powered by ViewVC 1.1.26