My update of TODO

This commit is contained in:
Stanislav Shwartsman 2006-01-21 17:19:46 +00:00
parent c78019285e
commit e75b3cde62

View File

@ -32,7 +32,28 @@ http://sourceforge.net/tracker/index.php?func=detail&aid=867044&group_id=12580&a
Status: Status:
Not done yet. Not done yet.
2. PCI host<->guest proxy 2. Plugin architecture
2.1 The plugin architecture can be reworked if we want to support
multiple similar devices like seral net or vga cards.
We currently have two "types" of plugins: "core" and "optional".
Maybe we could add "classes" of plugins. The current version of
Bochs supports the classes "display_library" and "io_device".
New classes can be "config_interface", "net_lowlevel" and
"sound_lowlevel"
2.2 Stanislav wrote :
Plugin architecture should be rewritten like real plugin architecture s.t.
Bochs VGA plugin for example will be real plugin. I mean that replacement
of plugin dll in already compiled Bochs will replace Bochs VGA card and
the new card will be detected automatically.
This will allow for example developing of plugins separately from Bochs.
2.3 Michael Brown wrote :
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.
3. PCI host<->guest proxy
Being able to use a real pci device from inside Bochs would be a 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 great feature of Bochs. It would ease reverse engineering of non
documented cards, or one could even use a real spare vga card. documented cards, or one could even use a real spare vga card.
@ -41,7 +62,7 @@ integrating his changes.
Status: Status:
The pcidev device is present in CVS, but the status is unknown. The pcidev device is present in CVS, but the status is unknown.
3. Subdirectories in iodev 4. Subdirectories in iodev
The iodev directory contains the various implemented iodevice. The iodev directory contains the various implemented iodevice.
With the new pci devices, new harddrives and new net access methods, With the new pci devices, new harddrives and new net access methods,
it could be interesting to add new subdirectories like : it could be interesting to add new subdirectories like :
@ -53,7 +74,7 @@ be manageable.
Status: Status:
Not done yet. Not done yet.
4 multithreading. Conn Clark wrote : 5 multithreading. Conn Clark wrote :
Threading might be nice too, for those of us who have SMP/SMT machines. 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 I have a patch from Mathis (who hangs out on the IRC channel all the
time) that puts the video card interface in its own thread. It has time) that puts the video card interface in its own thread. It has
@ -69,8 +90,8 @@ overcome.
Status: Status:
Not done yet. Not done yet.
5. CPU 6. CPU
5.1 This was asked in the ml, and I believe it's a good idea to provide 6.1 This was asked in the ml, and I believe it's a good idea to provide
a configure switch to set the cpu model, for example : a configure switch to set the cpu model, for example :
--with-cpu-386 --with-cpu-386
--with-cpu-486dx --with-cpu-486dx
@ -88,32 +109,32 @@ idea to clean up the cpuid function beased on those flags.
We also have to keep in mind that some features are also enablable We also have to keep in mind that some features are also enablable
by the guest os. by the guest os.
Please note the all features are still not supported/complete in Bochs. Please note the all features are still not supported/complete in Bochs.
5.2 Stanislav thinks that configure --with-cpu-pentium-mmx --enable-cpu-level-4 6.2 Stanislav thinks that configure --with-cpu-pentium-mmx --enable-cpu-level-4
would create lots of conflicts in the generated config.h. He suggests would create lots of conflicts in the generated config.h. He suggests
that we should write an external GUI configure script that would propose that we should write an external GUI configure script that would propose
standard or custom cpus and would detect conflicts. standard or custom cpus and would detect conflicts.
Status: Status:
Not done yet. Not done yet.
6. VGA 7. VGA
For SVGA emulation we have Bochs VBE and the Cirrus adapter. We should have For SVGA emulation we have Bochs VBE and the Cirrus adapter. We should have
a look at the voodoo3 (specs http://v3tv.sourceforge.net/docs.php). a look at the voodoo3 (specs http://v3tv.sourceforge.net/docs.php).
Status: Status:
Not done yet. Not done yet.
7. Random thoughts on disk emulation improvements : 8. Random thoughts on disk emulation improvements :
7.1 lba48 support 8.1 lba48 support
7.2 autodetection of disk size / geometry 8.2 autodetection of disk size / geometry
7.3 uml cow disk image support 8.3 uml cow disk image support
7.4 compressed disk image support 8.4 compressed disk image support
7.5 extend redolog-disk specification to add coherency check of the flat 8.5 extend redolog-disk specification to add coherency check of the flat
image file, by storing its fstat-mtime field in the redolog. image file, by storing its fstat-mtime field in the redolog.
Status: Status:
Autodetection works for flat type image created with bximage. Autodetection works for flat type image created with bximage.
The other items are not done yet. The other items are not done yet.
8. net 9. net
8.1 bootable ethernet rom ? 9.1 bootable ethernet rom ?
see etherboot, Micheal Brown wrote : see etherboot, Micheal Brown wrote :
This already works; you can build an Etherboot rom image with the pnic This already works; you can build an Etherboot rom image with the pnic
driver, specify it as an option ROM in bochsrc and it will boot. I'm driver, specify it as an option ROM in bochsrc and it will boot. I'm
@ -124,72 +145,41 @@ instructions on getting this working.
Status: Status:
The pnic device is present in CVS, but the status is unknown. The pnic device is present in CVS, but the status is unknown.
9. Bios 10. Bios
9.1 our bios is quite heavy on stack space (notably during int13 functions). 10.1 our bios is quite heavy on stack space (notably during int13 functions).
Some parts can be rewritten in assembler, to save stack space and Some parts can be rewritten in assembler, to save stack space and
make code smaller. A new BIOS project for Bochs has been started at make code smaller. A new BIOS project for Bochs has been started at
http://bcos.hopto.org/bios.html. http://bcos.hopto.org/bios.html.
Status: Status:
Unter construction. Under construction.
9.2 add "jump table placeholder" and log missing function calls in the bios. 10.2 add "jump table placeholder" and log missing function calls in the bios.
Check completness with Ralf Brown interrupt list. Check completness with Ralf Brown interrupt list.
Status: Status:
Not done yet. Not done yet.
10. LGPL VGABios 11. LGPL VGABios
10.1 Video parameters table 11.1 Video parameters table
There is a very nice parameter table in 3dfx banshee document There is a very nice parameter table in 3dfx banshee document
http://www2.lm-sensors.nu/~lm78/pdfs/Banshee_2d_spec.PDF http://www2.lm-sensors.nu/~lm78/pdfs/Banshee_2d_spec.PDF
see also http://www.xyzzy.claranet.de/dos/vgacrt.c see also http://www.xyzzy.claranet.de/dos/vgacrt.c
Status: Status:
Not done yet. Not done yet.
11. Optimized Guest drivers still needed : VGA, IDE, NET 12. Optimized Guest drivers still needed : VGA, IDE, NET
We have a specific VGA driver for winNT/2K, but still We have a specific VGA driver for winNT/2K, but still
lack drivers for other OSes. lack drivers for other OSes.
Status: Status:
Not done yet. Not done yet.
12. Plugin architecture 13. USB support
12.1 The plugin architecture can be reworked if we want to support
multiple similar devices like seral net or vga cards.
We currently have two "types" of plugins: "core" and "optional".
Maybe we could add "classes" of plugins. The current version of
Bochs supports the classes "display_library" and "io_device".
New classes can be "config_interface", "net_lowlevel" and
"sound_lowlevel"
12.2 Stanislav wrote :
Plugin architecture should be rewritten like real plugin architecture s.t.
Bochs VGA plugin for example will be real plugin. I mean that replacement
of plugin dll in already compiled Bochs will replace Bochs VGA card and
the new card will be detected automatically.
This will allow for example developing of plugins separately from Bochs.
12.3 Michael Brown wrote :
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
framework. The work still needs to be completed.
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. The USB mouse and keypad code Ben Lunt has been working on USB support. The USB mouse and keypad code
is present in Bochs and almost stable. USB flash disk support has been is present in Bochs and almost stable. USB flash disk support has been
started and the runtime device change support should be completed. started and the runtime device change support should be completed.
Status: Status:
Unter construction. Under construction.
15. Patches / Bug reports 14. Patches / Bug reports
There are dozens of patches floating around. Some are outdated, There are dozens of patches floating around. Some are outdated,
don't apply cleanly, are obsolete/unneeded. We could try to do don't apply cleanly, are obsolete/unneeded. We could try to do
some clean-up, and keep only relevent ones. some clean-up, and keep only relevent ones.
@ -198,7 +188,7 @@ very old and we asked for more information with no response.
Status: Status:
There is some progress, but still a lot of work to do. There is some progress, but still a lot of work to do.
16. Positions 15. Positions
If you want to help without coding, here are available positions : If you want to help without coding, here are available positions :
16.1 Webmaster : update website (Jan Bruun Andersen offered to help) 16.1 Webmaster : update website (Jan Bruun Andersen offered to help)
16.2 patch coordonator : look at incoming patches (sourceforge and 16.2 patch coordonator : look at incoming patches (sourceforge and
@ -212,7 +202,7 @@ to be removed.
Status: Status:
More active developers are needed to do the things described above. More active developers are needed to do the things described above.
17. Bochs demo cd/dvd 16. Bochs demo cd/dvd
With version 2.1, it is now technically possible to use disk images With version 2.1, it is now technically possible to use disk images
on a read-only media, with a journal files on a read/write media. on a read-only media, with a journal files on a read/write media.
It would be great to create a demo cd/dvd with executables for It would be great to create a demo cd/dvd with executables for
@ -222,7 +212,7 @@ directory on the harddisk.
Status: Status:
Not done yet. Not done yet.
18. Other CPU architectures : arm, ppc 17. Other CPU architectures : arm, ppc
This has been asked in the mailing list. I'm not really This has been asked in the mailing list. I'm not really
interested, but other people might be. Should we propose to interested, but other people might be. Should we propose to
host the new CPUs code in our source tree, or should we let host the new CPUs code in our source tree, or should we let
@ -230,8 +220,8 @@ people fork ?
Status: Status:
Not done yet. Not done yet.
19. Config file and dynamic menu 18. Config file and dynamic menu
19.1 Benjamen R. Meyer wrote : 18.1 Benjamen R. Meyer wrote :
I think we should rework the .bochsrc file to be more standard across all I think we should rework the .bochsrc file to be more standard across all
devices. I like how the USB configuration is done in it, and think we should devices. I like how the USB configuration is done in it, and think we should
put something similar together for everything else. In otherwords, create put something similar together for everything else. In otherwords, create
@ -243,23 +233,32 @@ something that is based on a standard approach to the configuration.
The result should be something that would be able to easily auto-configured The result should be something that would be able to easily auto-configured
by another program (a configuration editor?) with minimal changes necessary by another program (a configuration editor?) with minimal changes necessary
when new devices/features are added. when new devices/features are added.
19.2 Franck Cornelis wrote : the config system needs some work... 18.2 Franck Cornelis wrote : the config system needs some work...
e.g. the main menu is static while it could be generated at run-time... 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 the main menu text lives somewhere in a file... while it should be generated
at run-time by iterating the main menu objects at run-time by iterating the main menu objects
Status: Status:
Not done yet. Not done yet.
20. APIC and windows NT SMP. Stanislav wrote : 19. Save/Restore
Current Bochs SMP is almost unusable. I not succeed to boot any SMP OS I We already have a specific branch in the cvs with a save/restore
have due to APIC problems. Bochs APIC implementation should be reviewed. framework. The work still needs to be completed.
In the patches folder we already have at least 3 patches for APIC, I hope I guess it would be useful to be able to stop and
one of them or their combination will fix the problem or approach my restart the emulation, or create "checkpoints" to restart the
WINNT SMP boot tries. emulation from a known state. We can also give a look on how
integrate commitable harddisks with the save/restore strategy.
Status: Status:
The APIC functionality was improved from last release. But the modern OSes Not done yet.
require ACPI APIC tables in BIOS in additional to the regular MP tables so
Bochs still not able to boot WinNT SMP. 20. ACPI support
Bochs 2.2.6 is the first real SMP release, with changes made in Bochs 2.2.6
we able to boot linux SMP or WinNT SMP systems. But all modern OS'es require
ACPI support even for single CPU configuration to boot up. The minimal ACPI
support contains generation of ACPI tables (i.e. APIC tables) similar to the
MP tables we have now.
More about ACPI required changes: http://bcos.hopto.org/acpi.html
Status:
Not done yet.
21. add to the roadmap that we should find some ideas to check 21. add to the roadmap that we should find some ideas to check
correctness of instructions emulation, especially system instructions. correctness of instructions emulation, especially system instructions.