Commit Graph

22 Commits

Author SHA1 Message Date
Volker Ruppert
c2d0c207f7 - preparing Bochs for experimental USB xHCI support (written by Ben Lunt) TODO list:
- add sources (update in progress)
  - update configure script
  - initialize new USB devices member 'max_packet_size' (need help from Ben)
2011-07-04 19:42:47 +00:00
Volker Ruppert
cb8faeee52 - implemented new mechanism to update device config parameters that depend on
each other. Devices can register a handler to update it's state after runtime
  configuration. The new method update_runtime_options() executes all registered
  device handlers before the simulation continues.
- USB host controllers now using the new mechanism to handle the runtime device
  change (replaces the previous timer-based implementation). TODO: floppy and
  cdrom could use this feature, too)
- improved USB device change messages
2011-06-11 19:38:52 +00:00
Stanislav Shwartsman
00981cd7a6 Adding Id and Rev property to all files 2011-02-24 22:05:47 +00:00
Volker Ruppert
24ac0e90b6 - added global "speed" option to be passed with the "optionsX" port parameter.
This option sets the supported speed reported by device (up to 'maxspeed').
- added symbol USB_SPEED_SUPER for USB 3.0
2011-02-12 14:00:34 +00:00
Volker Ruppert
44ece7cf26 - including vga.h in iodev.h no longer necessary and symbol NO_DEVICE_INCLUDES
is useless then
- updated makefile dependenies
2011-01-24 20:35:51 +00:00
Volker Ruppert
9b89f19d79 - improved USB configuration with gui
- fixed device change flag handling
2011-01-16 17:17:28 +00:00
Volker Ruppert
168efb7710 - re-implemented USB port options parameter to assign specific options to the
connected device. For now this feature is only used by the 'disk' device to
  specify an alternative redolog filename of some image modes.
- added new methods set_option() and timer() to the base class usb_device_c.
  The timer() method is periodicly called from the HC's frame timer code.
- moved runtime device change stuff from the parameter handler to the end of
  timer() methods of all hubs. This makes sure that all parameters for the
  device have been set at connect time. TODO: this technique could also be used
  for the floppy and cdrom media change.
2011-01-16 12:46:48 +00:00
Volker Ruppert
99eb027531 - modified usb_common plugin implementation to make Windows DLL plugins compile
* added new "pseudo device" for the USB device control (init, send message)
  * moved register_state() call from the hubs to the common device init code
- fixed unresolved symbols in usb_msd code
2010-12-14 21:20:37 +00:00
Volker Ruppert
c214fffa5e - created a separate plugin that contains the USB devices, the devices init
code and the generic USB stuff. Up to now, in plugin mode each host controller
  staticly links all this stuff with the plugin library. So it existed twice and
  e.g. it wasn't possible to create a unique serial number for disks/cdroms
  connected to different HCs. Some other sanity checks could be added now, too.
- Added a register mechanism for the USB device init function in the main
  devices code.
- TODO: Some other device plugins could be fixed the same way: network devices
        (sharing ethernet modules), harddrive & usb_msd (sharing hdimage and
        cdrom)
2010-12-06 18:51:13 +00:00
Volker Ruppert
cd7b703a5b - init() method added to the USB device class
- new USB device class method get_info() for improved device connect BX_INFOs
- USB printer: output file creation failure now causes BX_ERROR and disconnect
  instead of BX_PANIC (similar to usb_msd)
- removed obsolete include statements
2010-12-05 13:09:41 +00:00
Volker Ruppert
99221c93b9 - changed hub type to support 64 byte max. packet size
- added BX_ERROR messages for unsupported setup features
- removed obsolete comment
2009-04-12 07:26:58 +00:00
Volker Ruppert
a342f0bfe6 - usb_msd: return status packet after partial disk write (Win98SE needs this)
- usb_hub: removed unnecessary include
- don't accept IN and OUT packets if a device is stalled (SETUP packet clears
  this mode)
2009-04-10 20:26:14 +00:00
Volker Ruppert
e7a4178b47 - USB HID descriptor for mouse, tablet and keypad added
- USB HID devices and hub: don't return status if device is not configured
2009-04-10 07:12:25 +00:00
Volker Ruppert
adb5243f25 - added unique serial number for the USB hub (multiple hubs now working on Win98) 2009-04-09 17:32:53 +00:00
Volker Ruppert
0a37bcfbdc - added get/set methods for device pointers in bx_param_c. This makes it easier
to access non-static devices from static parameter handlers.
- removed USB hub register mechanism and use the new device pointer parameter
  methods instead
2009-04-06 10:38:57 +00:00
Volker Ruppert
82a81e45f8 - rewrite of ParamDialog method CopyGuiToParam() to support list size changes
when adding/removing the USB hub
- added support for wx configuration in the USB hub code
2009-04-05 08:33:27 +00:00
Volker Ruppert
ee131a7471 - new implementation of the win32 runtime dialog based on the start menu dialog
* removed old win32 runtime config dialog since the property sheet isn't
    compatible with the win32 ParamDialog
  * reorganized runtime parameter lists (usb and cdrom setup in device init)
  * renamed win32 StartMenuDialog() to MainMenuDialog() and some related name
    changes
  * added runtime support to the MainMenuDialog
- win32 start/runtime menu: set keyboard focus to the start/continue button
- win32paramdlg: SetParamList() now checks for list size changes to avoid crash
2009-03-29 20:48:17 +00:00
Volker Ruppert
8c605c029d - store options for all parameter types in a Bit32u value instead of bx_param_num_c
- added file extension support for bx_param_filname_c
- fixed showing of tab control child lists
- added special disk menu for the win32 ParamDialog
- on win32 use the ParamDialog instead of textconfig submenus (TODO: gui dialog
  replacement for the start menus
2009-03-15 21:16:17 +00:00
Volker Ruppert
c0d9238170 - number of ports for the external hub can be configured with the device name
now. Valid values are 2 to 8 and the default is set to 4 ports (device name
  "hub" uses the default, "hub:7" enables 7 ports.
2009-03-12 20:24:56 +00:00
Volker Ruppert
d909d7a8dd - prepared USB cdrom support in the usb_set_connect_status() methods
- added 2 missing request types in the usb_msd code
2009-03-09 14:44:06 +00:00
Volker Ruppert
9549d7ece6 - preparing USB cdrom support (not yet complete)
* added cdrom support in the usb_msd code (already present in the SCSI code)
  * added code for deferring packets in usb_msd and the common USB code (TODO:
    cancel packets by the host controller)
  * added SCSI cdrom drive lock flag
- clean up SCSI request queues in destructor
- changed type of cdrom path/device parameter to const char
- moved the shared init device code to a common function
- reset hub count if the last external hub has been removed
2009-03-09 12:18:40 +00:00
Volker Ruppert
dee8eef320 - added external USB hub
* ported generic hub code from Qemu
  * devices can be connected at runtime only with textconfig
  * FIXME: wx ParamDialog doesn't like removing runtime parameters on disconnect
  * TODO #1: dynanamic runtime dialog for USB on Windows
  * TODO #2: code cleanup: USB code should have one static function only for
    most of the init_device() code
2009-03-07 16:57:17 +00:00