qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 4/4] serial: Allow unaligned i/o access


From: Arwed Meyer
Subject: Re: [PATCH 4/4] serial: Allow unaligned i/o access
Date: Thu, 8 Sep 2022 19:19:33 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

Am 08.09.22 um 13:15 schrieb Michael S. Tsirkin:
On Thu, Sep 08, 2022 at 02:11:28PM +0400, Marc-André Lureau wrote:
Hi

On Wed, Sep 7, 2022 at 2:03 AM Arwed Meyer <arwed.meyer@gmx.de> wrote:

     Unaligned i/o access on serial UART works on real PCs.
     This is used for example by FreeDOS CTMouse driver. Without this it
     can't reset and detect serial mice.

     Resolves: https://gitlab.com/qemu-project/qemu/-/issues/77
     Signed-off-by: Arwed Meyer <arwed.meyer@gmx.de>
     ---
      hw/char/serial.c | 3 +++
      1 file changed, 3 insertions(+)

     diff --git a/hw/char/serial.c b/hw/char/serial.c
     index 7061aacbce..41b5e61977 100644
     --- a/hw/char/serial.c
     +++ b/hw/char/serial.c
     @@ -961,6 +961,9 @@ void serial_set_frequency(SerialState *s, uint32_t
     frequency)
      const MemoryRegionOps serial_io_ops = {
          .read = serial_ioport_read,
          .write = serial_ioport_write,
     +    .valid = {
     +        .unaligned = 1,
     +    },


I don't get how this can help if both min_access_size & max_access_size are 1.


          .impl = {
              .min_access_size = 1,
              .max_access_size = 1,
     --
     2.34.1


Because that's .impl. If access is invalid we don't get as far
as breaking it up to chunks.





--
Marc-André Lureau

Exactly. Not really knowing the serial/chardev code much it took me a
while to figure out why calling FreeDOS CTMouse/protocol.com would never
execute the ioctl mouse reset code in msmouse.c.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]