On 5/15/21 4:35 PM, BALATON Zoltan wrote: > On Sat, 15 May 2021, Philippe Mathieu-Daudé wrote: >> On 5/15/21 1:31 PM, Volker Rümelin wrote: >>> This patch series fixes two different PS/2 mouse stream corruptions >>> and adds a feature that allows some old misbehaving DOS programs to >>> have a working keyboard. With the last few patches, the PS/2 con- >>> troller behaves more like a real controller. >>> >>> v2: >>> Introduce the function kbd_pending() in a preliminary patch to ease >>> the review of patch "pckbd: correctly disable PS/2 communication", >>> as Phillipe suggested. >>> >>> v3: >>> Patch "pckbd: correctly disable PS/2 communication" exposed a bug >>> in SeaBIOS. The updated patch keeps the relevant code. Until >>> SeaBIOS is fixed, the PS/2 controller command KBD_CCMD_KBD_DISABLE >>> must disable the keyboard interrupt. >>> >>> In patch "pckbd: PS/2 keyboard throttle" in function >>> kbd_throttle_timeout() an unnecessary if statement was removed. >>> The KBD_STAT_OBF flag is never set when kbd_throttle_timeout() >>> gets called. >>> >>> Volker Rümelin (11): >>> ps2: fix mouse stream corruption >>> ps2: don't raise an interrupt if queue is full >>> ps2: don't deassert irq twice if queue is empty >>> pckbd: split out interrupt line changing code >>> pckbd: don't update OBF flags if KBD_STAT_OBF is set >>> pckbd: PS/2 keyboard throttle >>> pckbd: add state variable for interrupt source >>> pckbd: add controller response queue >>> pckbd: add function kbd_pending() >>> pckbd: correctly disable PS/2 communication >>> pckbd: remove duplicated keyboard and mouse defines >> >> Zoltan, you might want to test this series with your Pegasos2 >> machine. It makes the keyboard detected correctly. >> >> There is still a problem with the mouse interaction with the >> host. Pressing Ctrl+Alt+G to ungrab the mouse, my host mouse >> is still responding to guest events... (unrelated to this series). >> >> Tested-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> (PPC Pegasos2 so far) > > I don't get the errors you reported. Keyboard and mouse seems to work OK > for me with SDL on Linux and never got errors detecting it so far. What > config are you using?
OK, apparently a timing problem related to slow emulation. I can reproduce simply using "--enable-debug --extra-cflags=-ggdb", not without it. Using Volker's series it is harder to reproduce.