All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
	laurent@vivier.eu, qemu-devel@nongnu.org
Subject: Re: [PATCH 05/21] q800: add IOSB subsystem
Date: Fri, 8 Sep 2023 07:50:01 +0100	[thread overview]
Message-ID: <82f59553-4b2f-549b-5b06-48b5a548e11b@ilande.co.uk> (raw)
In-Reply-To: <5eebfd86-e888-5c7b-803c-d4c5f9c7b080@linaro.org>

On 07/07/2023 09:25, Philippe Mathieu-Daudé wrote:

> On 2/7/23 17:48, Mark Cave-Ayland wrote:
>> It is needed because it defines the BIOSConfig area.
>>
>> Co-developed-by: Laurent Vivier <laurent@vivier.eu>
>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> ---
>>   MAINTAINERS            |   2 +
>>   hw/m68k/Kconfig        |   1 +
>>   hw/m68k/q800.c         |   9 +++
>>   hw/misc/Kconfig        |   3 +
>>   hw/misc/iosb.c         | 137 +++++++++++++++++++++++++++++++++++++++++
>>   hw/misc/meson.build    |   1 +
>>   hw/misc/trace-events   |   4 ++
>>   include/hw/m68k/q800.h |   2 +
>>   include/hw/misc/iosb.h |  25 ++++++++
>>   9 files changed, 184 insertions(+)
>>   create mode 100644 hw/misc/iosb.c
>>   create mode 100644 include/hw/misc/iosb.h
> 
> 
>> diff --git a/hw/misc/iosb.c b/hw/misc/iosb.c
>> new file mode 100644
>> index 0000000000..4fc10bcf9f
>> --- /dev/null
>> +++ b/hw/misc/iosb.c
>> @@ -0,0 +1,137 @@
>> +/*
>> + * QEMU IOSB emulation
>> + *
>> + * Copyright (c) 2019 Laurent Vivier
>> + * Copyright (c) 2022 Mark Cave-Ayland
>> + *
>> + * SPDX-License-Identifier: GPL-2.0-or-later
>> + */
>> +
>> +#include "qemu/osdep.h"
>> +#include "qemu/log.h"
>> +#include "migration/vmstate.h"
>> +#include "hw/sysbus.h"
>> +#include "hw/misc/iosb.h"
>> +#include "trace.h"
>> +
>> +#define IOSB_SIZE          0x2000
>> +
>> +#define IOSB_CONFIG        0x0
>> +#define IOSB_CONFIG2       0x100
>> +#define IOSB_SONIC_SCSI    0x200
>> +#define IOSB_REVISION      0x300
>> +#define IOSB_SCSI_RESID    0x400
>> +#define IOSB_BRIGHTNESS    0x500
>> +#define IOSB_TIMEOUT       0x600
>> +
>> +
>> +static uint64_t iosb_read(void *opaque, hwaddr addr,
>> +                          unsigned size)
>> +{
>> +    IOSBState *s = IOSB(opaque);
>> +    uint64_t val = 0;
>> +
>> +    switch (addr) {
>> +    case IOSB_CONFIG:
>> +    case IOSB_CONFIG2:
>> +    case IOSB_SONIC_SCSI:
>> +    case IOSB_REVISION:
>> +    case IOSB_SCSI_RESID:
>> +    case IOSB_BRIGHTNESS:
>> +    case IOSB_TIMEOUT:
>> +        val = s->regs[addr >> 8];
>> +        break;
>> +    default:
>> +        qemu_log_mask(LOG_UNIMP, "IOSB: unimplemented read addr=0x%"PRIx64
>> +                                 " val=0x%"PRIx64 " size=%d\n",
>> +                                 addr, val, size);
>> +    }
>> +
>> +    trace_iosb_read(addr, val, size);
>> +    return val;
>> +}
>> +
>> +static void iosb_write(void *opaque, hwaddr addr, uint64_t val,
>> +                       unsigned size)
>> +{
>> +    IOSBState *s = IOSB(opaque);
>> +
>> +    switch (addr) {
>> +    case IOSB_CONFIG:
>> +    case IOSB_CONFIG2:
>> +    case IOSB_SONIC_SCSI:
>> +    case IOSB_REVISION:
>> +    case IOSB_SCSI_RESID:
>> +    case IOSB_BRIGHTNESS:
>> +    case IOSB_TIMEOUT:
>> +        s->regs[addr >> 8] = val;
>> +        break;
>> +    default:
>> +        qemu_log_mask(LOG_UNIMP, "IOSB: unimplemented write addr=0x%"PRIx64
>> +                                 " val=0x%"PRIx64 " size=%d\n",
>> +                                 addr, val, size);
>> +    }
>> +
>> +    trace_iosb_write(addr, val, size);
>> +}
>> +
>> +static const MemoryRegionOps iosb_mmio_ops = {
>> +    .read = iosb_read,
>> +    .write = iosb_write,
>> +    .endianness = DEVICE_BIG_ENDIAN,
>> +    .impl = {
>> +        .min_access_size = 1,
> 
> IIUC .impl.min_access_size = 4.
> 
> Do you mean .valid.min_access_size = 1?

Hmmm I can't remember the exact origin of this, but indeed looking at the stride this 
doesn't make much sense. I've done some tests with .impl removed completely and 
haven't seen any issues, so I'll drop this from v2.

> Otherwise,
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> 
>> +        .max_access_size = 4,
>> +    },
>> +};


ATB,

Mark.



  reply	other threads:[~2023-09-08  6:50 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-02 15:48 [PATCH 00/21] q800: add support for booting MacOS Classic - part 2 Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 01/21] q800-glue.c: convert to Resettable interface Mark Cave-Ayland
2023-07-03  7:48   ` Philippe Mathieu-Daudé
2023-07-02 15:48 ` [PATCH 02/21] q800: add djMEMC memory controller Mark Cave-Ayland
2023-07-07  8:17   ` Philippe Mathieu-Daudé
2023-07-02 15:48 ` [PATCH 03/21] q800: add machine id register Mark Cave-Ayland
2023-07-03  7:50   ` Philippe Mathieu-Daudé
2023-07-02 15:48 ` [PATCH 04/21] q800: implement additional machine id bits on VIA1 port A Mark Cave-Ayland
2023-07-07  8:19   ` Philippe Mathieu-Daudé
2023-07-02 15:48 ` [PATCH 05/21] q800: add IOSB subsystem Mark Cave-Ayland
2023-07-07  8:25   ` Philippe Mathieu-Daudé
2023-09-08  6:50     ` Mark Cave-Ayland [this message]
2023-07-02 15:48 ` [PATCH 06/21] q800: allow accesses to RAM area even if less memory is available Mark Cave-Ayland
2023-07-03  7:58   ` Philippe Mathieu-Daudé
2023-07-05  7:55   ` Laurent Vivier
2023-07-02 15:48 ` [PATCH 07/21] audio: add Apple Sound Chip (ASC) emulation Mark Cave-Ayland
2023-07-06 19:58   ` Volker Rümelin
2023-07-02 15:48 ` [PATCH 08/21] asc: generate silence if FIFO empty but engine still running Mark Cave-Ayland
2023-07-07  6:24   ` Volker Rümelin
2023-07-10  6:50     ` Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 09/21] q800: add Apple Sound Chip (ASC) audio to machine Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 10/21] q800: add easc bool machine class property to switch between ASC and EASC Mark Cave-Ayland
2023-07-07  8:29   ` Philippe Mathieu-Daudé
2023-09-08  6:54     ` Mark Cave-Ayland
2023-09-08  9:42       ` Philippe Mathieu-Daudé
2023-09-08 16:03         ` Mark Cave-Ayland
2023-09-08 16:06           ` Philippe Mathieu-Daudé
2023-09-11  5:15         ` Markus Armbruster
2023-09-20 15:41           ` Mark Cave-Ayland
2023-09-20 18:38             ` Markus Armbruster
2023-07-02 15:48 ` [PATCH 11/21] swim: add trace events for IWM and ISM registers Mark Cave-Ayland
2023-07-03  8:26   ` Philippe Mathieu-Daudé
2023-07-05 19:40     ` Mark Cave-Ayland
2023-07-06 10:05       ` Philippe Mathieu-Daudé
2023-07-02 15:48 ` [PATCH 12/21] swim: split into separate IWM and ISM register blocks Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 13/21] swim: update IWM/ISM register block decoding Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 14/21] mac_via: work around underflow in TimeDBRA timing loop in SETUPTIMEK Mark Cave-Ayland
2023-07-03  8:30   ` Philippe Mathieu-Daudé
2023-07-05 19:49     ` Mark Cave-Ayland
2023-07-06 10:10       ` Philippe Mathieu-Daudé
2023-07-06 10:34         ` Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 15/21] mac_via: workaround NetBSD ADB bus enumeration issue Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 16/21] mac_via: implement ADB_STATE_IDLE state if shift register in input mode Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 17/21] mac_via: always clear ADB interrupt when switching to A/UX mode Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 18/21] q800: add ESCC alias at 0xc000 Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 19/21] q800: add alias for MacOS toolbox ROM at 0x40000000 Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 20/21] mac_via: allow unaligned access to VIA1 registers Mark Cave-Ayland
2023-07-02 15:48 ` [PATCH 21/21] mac_via: extend timer calibration hack to work with A/UX Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=82f59553-4b2f-549b-5b06-48b5a548e11b@ilande.co.uk \
    --to=mark.cave-ayland@ilande.co.uk \
    --cc=laurent@vivier.eu \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.