- added status for the todo items

This commit is contained in:
Volker Ruppert 2005-05-24 20:33:58 +00:00
parent 975d040ed5
commit b12dcebc19

View File

@ -16,6 +16,8 @@ Should we accept donations ? What could we do with the money ?
- bounties for somebody write optimized win9x/NT/XFree/linux/*BSD
drivers for our vga/net/ide cards
- other ?
Status in Bochs 2.2:
No decisions about this yet.
1. GPL source file in Bochs
Daniel Gimpelevich pointed out that rfbproto.h is released
@ -23,6 +25,8 @@ under the GPL. This is incompatible with our license, so
we need to rewrite/find a replacement this.
Also, we should make sure that contributed code / patches
are LGPL compatible.
Status:
The GPL'd file has been removed (rfb works with limited features).
2. PCI
2.1 I'd like to implement a PCI framework, that would take care
@ -33,21 +37,37 @@ I guess it will also need to take over the ISA I/O and
memory management. Ideally, it would be keeping compatibility
when pci is not compiled in.
(see http://marc.theaimsgroup.com/?l=bochs-dev&m=107165515315420&w=2)
Status:
PCI memory and i/o plug & play, irq routing and an improved PCI device
register mechanism is present.
2.2 The System BIOS will also be impacted. Although it has
basic BIOS32 service directory functions, we will also have to
identify and initialize the connected cards, including optional
roms (copy to main memory and initialize), and build the correct
PIR table in memory.
Status:
The PIR table and the PCI irq initialization is present in the system BIOS.
The initialization of i/o and memory is still to do.
2.3 configuration file for pci
It would be nice to have a generic way to set the bus/device numbers
of pci devices in the configuration file.
Status:
The i440fxsupport option now supports assigning devices to max. 5 slots.
2.4 host<->guest pci proxy
Being able to use a real pci device from inside Bochs would be a
great feature of Bochs. It would ease reverse engineering of non
documented cards, or one could even use a real spare vga card.
Frank Cornellis has done a great job on this subject, and we began
integrating his changes.
Status:
The pcidev device is present in CVS, but the status is unknown.
2.5 existing PCI device will need a slight rework to use the framework
Status:
This is almost done (pcidev untested)
3. Subdirectories in iodev
The iodev directory contains the various implemented iodevice.
@ -58,6 +78,8 @@ iodev/disks/... --> for the ata/atapi classes, hd/cd classes and host accesses
iodev/net/... --> for ne2k and host net access
isa and pci devices would be mixed in the directories, but this should
be manageable.
Status:
Not done yet.
4. Speed
Speed (well lack of) is one of the biggest criticism made by users
@ -69,6 +91,9 @@ Paths we can explore to get more speed :
working on this, and an anonymous patch for win32
http://sourceforge.net/tracker/index.php?func=detail&aid=867044&group_id=12580&atid=312580
)
Status:
Not done yet.
4.4 multithreading. Conn Clark wrote :
Threading might be nice too, for those of us who have SMP/SMT machines.
I have a patch from Mathis (who hangs out on the IRC channel all the
@ -82,6 +107,8 @@ might just be able to be threaded. I think the threading overhead might
be less than the protection and address translation code. We would have
to try it to find out. I'm also sure there can be some nasty hurdles to
overcome.
Status:
Not done yet.
5. CPU
5.1 This was asked in the ml, and I believe it's a good idea to provide
@ -106,6 +133,8 @@ Please note the all features are still not supported/complete in Bochs.
would create lots of conflicts in the generated config.h. He suggests
that we should write an external GUI configure script that would propose
standard or custom cpus and would detect conflicts.
Status:
Not done yet.
6. VGA
Several thigs we could use to improve SVGA emulation :
@ -114,9 +143,15 @@ Several thigs we could use to improve SVGA emulation :
6.3 Look at Trident emulation of dosemu
6.4 patch for PCI CirrusLogic CLGD54xx by m-suzu
6.5 voodoo3 (specs http://v3tv.sourceforge.net/docs.php )
Status:
The Cirrus SVGA adapter is present in Bochs now.
7. Random thoughts on disk emulation improvements :
7.0 IDE-Busmaster support (needs pci)
Status:
Some code to support it is present in Bochs, but disabled. Linux worked with it,
but the Win98 guest failed to boot.
7.1 lba48 support
7.2 >32GiB disks
7.3 autodetection of disk size / geometry
@ -124,9 +159,14 @@ Several thigs we could use to improve SVGA emulation :
7.5 compressed disk image support
7.6 extend redolog-disk specification to add coherency check of the flat
image file, by storing its fstat-mtime field in the redolog.
Status:
These items are not done yet.
8. net
8.1 New devices ? are specs available anywhere ?
Status:
The NE2000 adapter now can be assigned to a PCI slot.
8.2 bootable ethernet rom ?
see etherboot, Micheal Brown wrote :
This already works; you can build an Etherboot rom image with the pnic
@ -135,6 +175,8 @@ using this extensively at the moment in Etherboot development.
In the Etherboot project's CVS, in the contrib/bochs directory, you can
find a working bochsrc file and an up-to-date README with step-by-step
instructions on getting this working.
Status:
The pnic device is present in CVS, but the status is unknown.
9. Bios
9.1 our bios is quite heavy on stack space (notably during int13 functions).
@ -146,12 +188,17 @@ make code smaller.
We could define a reserved area in the BIOS where we can fill in PCI and SMP
specific data before starting the simulation or during POST. The same could
be done in the VGABIOS with the VBE mode list.
Status:
Some work to save stack space has been done.
9.2 with pci and smp support we'll need to include several tables in the bios.
We have two possibilities : dynamically build them during POST
or statically build a collection of bioses, which can be selected
at run time.
9.3 add "jump table placeholder" and log missing function calls in the bios.
Check completness with Ralf Brown interrupt list.
Status:
Both items are not done yet.
10. LGPL VGABios
10.1 Stack space
@ -160,14 +207,22 @@ should be fixed. Some parts can be rewritten in assembler, to save
stack space and make code smaller. The size of the debug version
of the VGABIOS is currently 30k and it will exceed 32k if we
fill in some of the unimplemented features.
Status:
A lot of vgabios functions have been rewritten in assembler. The debug
version of the vgabios is still very large (nearly 32k).
10.2 Video parameters table
There is a very nice parameter table in 3dfx banshee document
http://www2.lm-sensors.nu/~lm78/pdfs/Banshee_2d_spec.PDF
see also http://www.xyzzy.claranet.de/dos/vgacrt.c
Status:
Not done yet.
11. Optimized Guest drivers still needed : VGA, IDE, NET
We have a specific VGA driver for winNT/2K, but still
lack drivers for other OSes.
Status:
Not done yet.
12. Plugin architecture
12.1 The plugin architecture can be reworked if we want to support
@ -187,6 +242,8 @@ This will allow for example developing of plugins separately from Bochs.
If the configuration interface is to be reworked, could we also make it so
that plugins are self-contained, rather than needing to pollute main.cc
with code for defining and parsing plugin-specific options
Status:
These items are not done yet.
13. Save/Restore
We already have a specific branch in the cvs with a save/restore
@ -195,6 +252,8 @@ I guess it would be useful to be able to stop and
restart the emulation, or create "checkpoints" to restart the
emulation from a known state. We can also give a look on how
integrate commitable harddisks with the save/restore strategy.
Status:
Not done yet.
14. USB support
Ben Lunt has been working on USB support. We should check with him
@ -221,6 +280,9 @@ with my config binary data. I am still working on it.
However, the USB stack, command phase, data IO phase, and
status phase is complete. You can successfully retrieve
the descriptor(s) and string(s), and set the devices address.
Status:
The USB mouse and keypad code is present in Bochs, but there is
some more work needed to make it stable.
15. Patches / Bug reports
There are dozens of patches floating around. Some are outdated,
@ -228,14 +290,26 @@ don't apply cleanly, are obsolete/unneeded. We could try to do
some clean-up, and keep only relevent ones.
We should also clean up the SF bug tracker. Some bugreports are
very old and we asked for more information with no response.
Status:
There is still a lot of work to do.
16. Small others things
16.1 add support for multiple boot devices
Status:
Done.
16.2 add keyboard leds to GUIs
Status:
Done in rfb, sdl, win32, wx and x. Win3.x and Win9x guest cannot control
the leds (not a gui problem).
16.3 add activity leds (net, disks, floppies) to GUIs
Volker added a status bar to the win32 simulation window.
It can be used to display leds. The status bar still needs
to be implemented by other display libraries.
Status:
This depends on the display library (see above). The indicators for floppy,
cdrom, hard drive and usb are present, networking is still to do.
17. Positions
If you want to help without coding, here are available positions :
@ -248,6 +322,8 @@ of disk images. Usually, only the configuration file needs to be
updated, and old bios files have to be removed. Some packages
still contain very old bios files, they should definitely have
to be removed.
Status:
More active developers are needed to do the things described above.
18. Bochs demo cd/dvd
With version 2.1, it is now technically possible to use disk images
@ -256,12 +332,16 @@ It would be great to create a demo cd/dvd with executables for
supported platforms, configuration files and read-only disk
images, the journal files would be written in a temporary
directory on the harddisk.
Status:
Not done yet.
19. Other CPU architectures : arm, ppc
This has been asked in the mailing list. I'm not really
interested, but other people might be. Should we propose to
host the new CPUs code in our source tree, or should we let
people fork ?
Status:
Not done yet.
20. Config file and dynamic menu
20.1 Benjamen R. Meyer wrote :
@ -280,6 +360,8 @@ when new devices/features are added.
e.g. the main menu is static while it could be generated at run-time...
the main menu text lives somewhere in a file... while it should be generated
at run-time by iterating the main menu objects
Status:
Not done yet.
21. APIC and windows NT SMP. Stanislav wrote :
Current Bochs SMP is almost unusable. I not succeed to boot any SMP OS I
@ -287,16 +369,24 @@ have due to APIC problems. Bochs APIC implementation should be reviewed.
In the patches folder we already have at least 3 patches for APIC, I hope
one of them or their combination will fix the problem or approach my
WINNT SMP boot tries.
Status:
Stanislav, please fill in.
22. add to the roadmap that we should find some ideas to check
correctness of instructions emulation, especially system instructions.
arithmetic instructions could be validated with simply random testing
Status:
Not done yet.
23. lowlevel serial support for Windows.
Volker is currently working on this.
Status:
Not yet complete (transmit works, receive is losing data).
24. runtime configuration dialog box for Windows
Volker is currently working on this.
Status:
Done.
25. Parallel port
Conn Clark wrote :
@ -307,3 +397,5 @@ may require a kernel module be written, which is beyond my current
skills. I know others will find this useful as I have had to tell a
few people that their parallel port driven peripherals that require a
bidirectional parallel port won't work.
Status:
Not done yet.