qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: "Kevin Wolf" <kwolf@redhat.com>, "Fam Zheng" <famz@redhat.com>,
	"open list:Block layer core" <qemu-block@nongnu.org>,
	"Jason Wang" <jasowang@redhat.com>,
	"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Max Reitz" <mreitz@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Laurent Vivier" <laurent@vivier.eu>
Subject: Re: [Qemu-devel] [PATCH v5 03/11] escc: introduce a selector for the register bit
Date: Tue, 30 Oct 2018 09:38:17 +0000	[thread overview]
Message-ID: <127850f7-baf9-df72-625e-23765a24bc84@ilande.co.uk> (raw)
In-Reply-To: <CAAdtpL5sWp5y4oPVzzsLMf3u1U7zYSauv45eLo9QMnVRtmOS_Q@mail.gmail.com>

On 29/10/2018 23:36, Philippe Mathieu-Daudé wrote:

> Hi Marc, Laurent.
> 
> On Mon, Oct 29, 2018 at 2:43 PM Mark Cave-Ayland
> <mark.cave-ayland@ilande.co.uk> wrote:
>>
>> From: Laurent Vivier <laurent@vivier.eu>
>>
>> On Sparc and PowerMac, the bit 0 of the address
>> selects the register type (control or data) and
>> bit 1 selects the channel (B or A).
>>
>> On m68k Macintosh, the bit 0 selects the channel and
>> bit 1 the register type.
>>
>> This patch introduces a new parameter (bit_swap) to
>> the device interface to indicate bits usage must
>> be swapped between registers and channels.
>>
>> For the moment all the machines use the bit 0,
>> but this change will be needed to emulate Quadra 800.
>>
>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
>> ---
>>  hw/char/escc.c         | 30 ++++++++++++++++++++++++------
>>  include/hw/char/escc.h |  1 +
>>  2 files changed, 25 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/char/escc.c b/hw/char/escc.c
>> index 628f5f81f7..cec75b06f9 100644
>> --- a/hw/char/escc.c
>> +++ b/hw/char/escc.c
>> @@ -42,14 +42,21 @@
>>   * mouse and keyboard ports don't implement all functions and they are
>>   * only asynchronous. There is no DMA.
>>   *
>> - * Z85C30 is also used on PowerMacs. There are some small differences
>> - * between Sparc version (sunzilog) and PowerMac (pmac):
>> + * Z85C30 is also used on PowerMacs and m68k Macs.
>> + *
>> + * There are some small differences between Sparc version (sunzilog)
>> + * and PowerMac (pmac):
>>   *  Offset between control and data registers
>>   *  There is some kind of lockup bug, but we can ignore it
>>   *  CTS is inverted
>>   *  DMA on pmac using DBDMA chip
>>   *  pmac can do IRDA and faster rates, sunzilog can only do 38400
>>   *  pmac baud rate generator clock is 3.6864 MHz, sunzilog 4.9152 MHz
>> + *
>> + * Linux driver for m68k Macs is the same as for PowerMac (pmac_zilog),
>> + * but registers are grouped by type and not by channel:
>> + * channel is selected by bit 0 of the address (instead of bit 1)
>> + * and register is selected by bit 1 of the address (instead of bit 0).
> 
> If I understand the datashit correctly, the case bit_swap=true is the
> default implementation of the Z85C30,
> and the current QEMU implementation (from this patch view:
> bit_swap=false) is not: it is PowerMac specific.
> 
> I think the PowerMac uses an evolved Z85C30 with more precise IRQ lines.
> 
> Anyway, not a blocker, but I wanted to share my view that this model
> is eventually going in an incorrect direction.
> I'll try to suggest a patch to clean this during the next merge window.

Oh I see, so you think that what is currently the swapped version is actually how it
is handled in standard hardware? In that case I tend to agree with you that it would
make sense to switch the sense of the property around so that the standard behaviour
is the default.

Also this makes me feel that "bit_swap" isn't a particularly good property name -
perhaps something like "pmac_bit_swap" would be clearer?


ATB,

Mark.

  reply	other threads:[~2018-10-30  9:38 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-29 13:39 [Qemu-devel] [PATCH v5 00/11] hw/m68k: add Apple Machintosh Quadra 800 machine Mark Cave-Ayland
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 01/11] hw/m68k: add via support Mark Cave-Ayland
2018-10-30  6:46   ` Hervé Poussineau
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 02/11] hw/m68k: implement ADB bus support for via Mark Cave-Ayland
2018-10-30  6:46   ` Hervé Poussineau
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 03/11] escc: introduce a selector for the register bit Mark Cave-Ayland
2018-10-29 23:36   ` Philippe Mathieu-Daudé
2018-10-30  9:38     ` Mark Cave-Ayland [this message]
2018-10-30  6:46   ` Hervé Poussineau
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 04/11] hw/m68k: add macfb video card Mark Cave-Ayland
2018-10-30  6:46   ` Hervé Poussineau
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 05/11] hw/m68k: Apple Sound Chip (ASC) emulation Mark Cave-Ayland
2018-10-30  6:46   ` Hervé Poussineau
2018-10-30 10:46     ` Mark Cave-Ayland
2018-10-30 12:05       ` Laurent Vivier
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 06/11] esp: add pseudo-DMA as used by Macintosh Mark Cave-Ayland
2018-10-30  6:47   ` Hervé Poussineau
2018-10-30 10:09     ` Mark Cave-Ayland
2018-10-30 20:08       ` Laurent Vivier
2018-10-30 18:02     ` Laurent Vivier
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 07/11] hw/m68k: add Nubus support Mark Cave-Ayland
2018-10-30  6:47   ` Hervé Poussineau
2018-10-30 10:23     ` Mark Cave-Ayland
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 08/11] hw/m68k: add Nubus support for macfb video card Mark Cave-Ayland
2018-10-30  6:47   ` Hervé Poussineau
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 09/11] hw/m68k: add a dummy SWIM floppy controller Mark Cave-Ayland
2018-10-30  6:48   ` Hervé Poussineau
2018-10-30 10:25     ` Mark Cave-Ayland
2018-10-29 13:39 ` [Qemu-devel] [PATCH v5 10/11] dp8393x: manage big endian bus Mark Cave-Ayland
2018-10-30  6:48   ` Hervé Poussineau
2018-10-29 13:40 ` [Qemu-devel] [PATCH v5 11/11] hw/m68k: define Macintosh Quadra 800 Mark Cave-Ayland
2018-10-30  8:15 ` [Qemu-devel] [PATCH v5 00/11] hw/m68k: add Apple Machintosh Quadra 800 machine Richard Henderson
2018-10-30 11:48   ` Mark Cave-Ayland
2018-10-30 12:49     ` Laurent Vivier
2018-10-30 13:12       ` Mark Cave-Ayland
2018-10-30 13:39         ` Laurent Vivier
2018-11-02  0:32           ` Thomas Huth
2018-11-02 11:25             ` Laurent Vivier
2018-11-19  2:30               ` Rob Landley

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=127850f7-baf9-df72-625e-23765a24bc84@ilande.co.uk \
    --to=mark.cave-ayland@ilande.co.uk \
    --cc=afaerber@suse.de \
    --cc=aurelien@aurel32.net \
    --cc=dgilbert@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=famz@redhat.com \
    --cc=hpoussin@reactos.org \
    --cc=jasowang@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=laurent@vivier.eu \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).