This PR adds the ability to choose which companion controller the EHCI
uses.
`#usb_ehci: enabled=1, companion=uhci`
`#usb_ehci: enabled=1, companion=ohci`
UHCI is enabled by default:
`#usb_ehci: enabled=1`
This breaks up `usb_ohci.cc/h` into `usb_ohci.cc/h` and `ohci_core.cc/h`
to be like the existing `usb_uhci.cc/h` and `uhci_core.cc/h`.
This adds the ability to define a Port Routing string in the
`HcspPortRoute` register, and is optional via the `EHCI_PORT_ROUTE`
define.
Currently `EHCI_N_CC` and `EHCI_N_PCC` must remain as currently set (3
and 2 respectively), however with a little more work, I think these can
be modified and have up to 7 companion controllers with more ports per
companion, as long as the combined total is <= 15 total ports.
Please verify the `Makefile.in` changes. I do not use GCC and can not
verify it is correct.
Made all devices pass USB 2.0 Compliance on WinXP (old version of the
compliance test).
USB Hub still needs a little work to be in complete compliance.
Fixed potential bug in EHCI to UHCI hand-off.
Fixed compilation error with Floppy CB/CBI emulation.
Minor syntax fixes (tabulation, old irrelevant comments)
MSD serial numbers must be 12 chars.
Added to CHANGES file
- Bochs VBE: enable 32k bank granularity mode.
- Fixed general 'scroll down' bug in graphics modes.
- Code optimizations: some VBE and VGA functions rewritten in assembler.
- Added initial version of the VGABIOS for Voodoo Banshee adapters.
- Several code optimizations to reduce binary size.
NOTE #1: Banshee version has no VBE support yet.
NOTE #2: Banshee binary uses PCI ID for Banshee PCI and Bochs temporarily
modifies the PCI data for Voodoo3 and AGP models.
device handling. Added some code to handle plugins that provide more than one
device type (usb_hid, usb_msd) or with different name (usb_cbi). The device
type member is now only used by multi-function devices.
- Fixed USB devices list by adding a terminating NULL entry.
- Disable USB device options parameter if device is set to "none".
- Related documentation updates.
- CPU code refactor, remove uses of bx_bool datatype and use C++ classic bool instead.
This enable better compiler optimizations and reduce binary size
TODO #1; Add some missing HID key codes.
TODO #2: Add key event queue to avoid losing events.
TODO #3: Unify keyboard and keypad code.
TODO #4: Support multiple non-modifier keys pressed at the same time.
TODO #5: Share keyboard indicators with the legacy PS/2 keyboard.
The latest release is from 2001 and it will not work on modern Linux systems.
Parts of the SVGALib code have been moved to the Linux kernel and the X11 and
SDL libraries are using it as a video driver.
set accordingly.
TODO #1: Text mode features split screen and h/v pel panning missing for now.
TODO #2: Show error messages related to dialogs in message boxes.