- added status for the todo items
This commit is contained in:
parent
975d040ed5
commit
b12dcebc19
92
bochs/TODO
92
bochs/TODO
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user