[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH-for-6.1? 0/3] ps2: Fix issue #501 and #502
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH-for-6.1? 0/3] ps2: Fix issue #501 and #502 |
Date: |
Sat, 7 Aug 2021 16:29:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
On 8/7/21 2:10 PM, Volker Rümelin wrote:
> 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.
Meanwhile, what about reverting ff6e1624b3 for 6.1?
> 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(-)
>
[PATCH 2/3] ps2: use a separate keyboard command reply queue, Volker Rümelin, 2021/08/07
[PATCH 1/3] ps2: use the whole ps2 buffer but keep queue size, Volker Rümelin, 2021/08/07
[PATCH-for-6.1? 0/3] ps2: Fix issue #501 and #502,
Philippe Mathieu-Daudé <=