All of lore.kernel.org
 help / color / mirror / Atom feed
* ps2: Fix issue #501 and #502
@ 2021-08-07 12:10 Volker Rümelin
  2021-08-07 12:12 ` [PATCH 1/3] ps2: use the whole ps2 buffer but keep queue size Volker Rümelin
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Volker Rümelin @ 2021-08-07 12:10 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Philippe Mathieu-Daudé, qemu-devel

Since commit ff6e1624b3 (pckbd: don't update OBF flags if
KBD_STAT_OBF is set) the OSes Minoca OS and Visopsys no longer
have a working PS/2 keyboard and mouse. This is caused by a
PS/2 queue stall due to a lost interrupt in the guest OS. This
already happened before commit ff6e1624b3, but no one noticed
because up to that point QEMU sent gratuitous keyboard and mouse
interrupts and the queue restarted with keyboard input or mouse
movement.

The lost interrupt is a guest bug. The fact that it's always
lost is due to an inexact PS/2 keyboard emulation. The way in
which the two operating systems e.g. set the keyboard LEDs,
leaves a keyboard ACK reply in the keyboard queue that is
unexpected for the guests.

This patch series improves the PS/2 keyboard emulation.

There's a workaround for issue #501 and #502 so I don't think
this is rc3 material. But that decision is up to the maintainers.

To verify patch 2/3 I plugged in an additional PS/2 keyboard
into the host and started Linux with the command line option
initcall_blacklist=i8042_init. Here is an example of the sequence
to set the keyboard LEDs.

# #regular sequence to set the keyboard LEDs
# inb --hex 0x64
1c
# #PS/2 queue is empty
# outb 0x60 0xed
# inb --hex 0x64
15
# inb --hex 0x60
fa
# inb --hex 0x64
14
# outb 0x60 0x01
# inb --hex 0x64
15
# inb --hex 0x60
fa
# inb --hex 0x64
14

# #alternative sequence to set the keyboard LEDs
# inb --hex 0x64
14
# outb 0x60 0xed
# outb 0x60 0x01
# inb --hex 0x64
15
# inb --hex 0x60
fa
# inb --hex 0x64
14

Volker Rümelin (3):
   ps2: use the whole ps2 buffer but keep queue size
   ps2: use a separate keyboard command reply queue
   ps2: migration support for command reply queue

  hw/input/ps2.c | 214 ++++++++++++++++++++++++++++++-------------------
  1 file changed, 133 insertions(+), 81 deletions(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-08-10  9:10 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-07 12:10 ps2: Fix issue #501 and #502 Volker Rümelin
2021-08-07 12:12 ` [PATCH 1/3] ps2: use the whole ps2 buffer but keep queue size Volker Rümelin
2021-08-07 12:12 ` [PATCH 2/3] ps2: use a separate keyboard command reply queue Volker Rümelin
2021-08-09  9:52   ` Gerd Hoffmann
2021-08-07 12:12 ` [PATCH 3/3] ps2: migration support for " Volker Rümelin
2021-08-09 10:18   ` Gerd Hoffmann
2021-08-10  5:05     ` Volker Rümelin
2021-08-10  5:40       ` Gerd Hoffmann
2021-08-10  8:38         ` Volker Rümelin
2021-08-07 14:29 ` [PATCH-for-6.1? 0/3] ps2: Fix issue #501 and #502 Philippe Mathieu-Daudé
2021-08-10  9:07   ` Gerd Hoffmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.