aboutsummaryrefslogtreecommitdiffstats
path: root/src/hw/ps2port.h
Commit message (Collapse)AuthorAgeFilesLines
* ps2: Don't wait 100ms to discard possible extra reset receive byteKevin O'Connor2015-07-221-1/+1
| | | | | | | | | | | | | | | | | | | The existing PS2 port code waits 100ms to see if the device attached to the keyboard port responds to a reset command with two bytes (instead of the normal one byte). If an extra byte is received, it is discarded. Receiving two bytes would be unusual and waiting to check for that event is unnecessary because the next command in the keyboard init sequence already seamlessly discards any extra bytes in the command queue. This patch eliminates the 100ms wait, which notably reduces the SeaBIOS boot time on QEMU. This patch also forces PS2 mice to always respond with two bytes during a reset sequence (instead of just one byte), which is a good sanity check. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* ps2: Support mode for polling the PS2 port instead of using irqsKevin O'Connor2015-07-141-0/+1
| | | | | | | | | | | | | Some recent hardware has trouble with routing PS2 port interrupts while the interrupt controller is in legacy routing mode. This patch adds a config mechanism (via "etc/ps2-poll-only") to force the PS2 code into a polling only mode so that interrupts are not required. It is not recommended to use this polling mode on hardware that does properly support PS2 irqs, because some very old (DOS-era) programs depend on the BIOS PS2 irq behavior. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* Minor - move PORT_PS2_CTRLB from hw/ps2port.h to hw/timer.cKevin O'Connor2014-11-121-1/+0
| | | | | | | The PORT_PS2_CTRLB port is only used by timers - it's just a historical artifact that it was part of the original ps2 controller. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* Move a20 code from system.c and ps2port.h to x86.hKevin O'Connor2014-10-151-11/+3
| | | | | | | | Although the a20 functionality was originally implemented in the ps2 controller, that is just a historical artifact. It's a core feature of modern x86 cpus and the code is better located in the x86.h header. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* Remove ioport.h; disperse its contents to other header files.Kevin O'Connor2013-09-281-1/+13
| | | | | | | Move the inb(), insb(), etc. code from ioport.h to x86.h. Move the PORT_* definitions to their appropriate hardware files. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* Move code centered around specific hardware devices to src/hw/Kevin O'Connor2013-09-021-0/+63
Move many C files from the src/ directory to the new src/hw/ directory. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>