--- trunk/TODO 2007/10/08 16:21:17 34 +++ trunk/TODO 2007/10/08 16:21:34 36 @@ -1,9 +1,28 @@ -$Id: TODO,v 1.453 2007/02/19 01:34:42 debug Exp $ +$Id: TODO,v 1.464 2007/03/16 14:13:59 debug Exp $ ------------------------------------------------------------------------------- -Fix after the 0.4.4 release: - Fix the PowerPC DECR interrupt speed! +Landisk SH4: + HITTA OCH FIXA SH4-STABILITETSPROBLEMEN! + SH4 RTC, läs värdmaskinens klocka. + När NetBSD 4.0 och OpenBSD 4.1 kommit ut, uppdatera + installationsinstruktionerna i dokumentationen, flytta upp till + supportat OS (guestos & index). + Lägg till landisk i emulated machines i intro.html. + Sätt machine_landisk stable = 1, om/när allt funkar. + +Add a special function to the testmachine devices, console perhaps? +which prints a zero-terminated string like "[[ %s ]]\n" when given +a virtual memory address (or a physical? or perhaps both should be possible). + o) NOT to the console, but to the emulator's controlling terminal. + DEBUG output, not console output! + o) Very useful for debugging. DOCUMENT it! + +Fix the PowerPC DECR interrupt speed! (MacPPC and PReP speed, etc.) + +Prova att installera GNU Linux/DECstation _UTAN_ +slow_serial_interrupts_hack_for_linux! Det kanske funkar med +nya interruptsystemet? ------------------------------------------------------------------------------- @@ -13,6 +32,11 @@ Get SMP working again. It is pretty much broken since I started the conversion from the old bintrans system to the new dyntrans system. Add better Test machine demos for SMP in the demos directory. + Either multiple dev_mp (one per cpu), or the single dev_mp must + _really_ keep all per-cpu values separate. + + x) Alpha and SPARC emulation: + These are the next two CPU/machine families that I want to emulate. x) Network: Redesign of the networking subsystem, at least the NAT translation @@ -21,11 +45,20 @@ to allow the frames to be transmitted other ways as well. Also adding support for connecting ttys (either to xterms, or to pipes/sockets etc, or even to PPP->NAT or SLIP->NAT :-). + Documentation updates (!) are very important, making it easier to + use the (already existing) network emulation features. x) PCI: Pretty much everything related to runtime configuration, device slots, interrupts, whatever. The current code is very hardcoded and ugly. + o) Allow cards to be added/removed during runtime more easily. + o) Allow cards to be enabled/disabled (i/o ports, etc, like + NetBSD needs for disk controller detection). + o) Allow devices to be moved in memory during runtime. + o) Interrupts per PCI slot, etc. (A-D). + o) PCI interrupt controller logic... very hard to get right, + because these differ a lot from one machine to the next. x) Debugging: Think more about SMP debugging, etc. Right now, the @@ -35,6 +68,22 @@ x) Userland emulation: Primary goals would be NetBSD and Linux syscall emulation. + x) Variable-length ISA support: + The support for emulation of variable length ISAs (such as + M68K, AMD64/i386, or AVR32) is not really there yet. It would + be very fun to work on this, to get it right. + + x) Native code generation backends. + Not necessary to have the emulator working, but speed is + always nice to have. + + x) Remove all "addr mult" device support! + Long term goal. Replace the current hacks with address + multiplication _per device_ with layered devices, so that the + end device (wdc, ns16550, whatever) only supports one access + style, and the layers in between convert to 16/32/64-bit + word alignment. + And of course, there are _LOTS_ of minor TODOs spread out throughout the source code, which must be fixed sooner or later. @@ -55,6 +104,8 @@ kludgy very fast.) x) Dyntrans with SMP... lots of work to be done here. x) Dyntrans with cache emulation... lots of work here as well. + x) Remove the concept of base RAM completely; it would be more + generic to allow RAM devices to be used "anywhere". o) dev_mp doesn't work well with dyntrans yet o) In general, IPIs, CAS, LL/SC etc must be made to work with dyntrans x) Redesign/rethink the delay slot mechanism used for e.g. MIPS, @@ -135,6 +186,7 @@ register definitions according to http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/hdwr/bks/SGI_Developer/books/R10K_UM/sgi_html/t5.Ver.2.0.book_263.html#HEADING334 and make sure everything works with R10000. Then test with OpenBSD/sgi? + x) Entry LO mask (as above). x) memory space, exceptions, ... x) use cop0 framemask for tlb lookups (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/hdwr/bks/SGI_Developer/books/R10K_UM/sgi_html/t5.Ver.2.0.book_284.html) @@ -148,7 +200,6 @@ copy individual 32-bit words. (Performance improvement.) x) SH4 BSC (Bus State Controller) x) SH4 RTC: Read the host's clock. - x) SH4 SCIF: Serial _interrupts_ x) Instruction tracing should include symbols for branch targets, and so on, to make the output more human readable. x) NetBSD/evbsh3, dreamcast, mmeye, hpcsh! Linux? @@ -301,7 +352,10 @@ o) try to get netbsd/evbarm 3.x or 4.x running (iq80321) o) make the xscale counter registers (ccnt) work o) make the ata controller usable for FreeBSD! - o) Zaurus emulation, for e.g. OpenBSD/zaurus + o) Zaurus emulation: + x) OpenBSD/zaurus + x) NetBSD/zaurus? See the following URL: + http://mail-index.netbsd.org/port-arm/2006/11/19/0000.html o) Debian/cats crashes because of unimplemented coproc stuff. fix this?