From: Michael Schmitz <schmitzmic@gmail.com>
To: Sam Creasey <sammy@sammy.net>
Cc: Finn Thain <fthain@telegraphics.com.au>,
Christoph Hellwig <hch@infradead.org>,
Michael Schmitz <schmitz@debian.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Linux/m68k <linux-m68k@vger.kernel.org>
Subject: Re: Sun3 SCSI DMA, was Re: converting the NCR5380 drivers away from scsi_register
Date: Fri, 08 Aug 2014 20:46:08 +1200 [thread overview]
Message-ID: <53E48E50.8010600@gmail.com> (raw)
In-Reply-To: <20140806144252.GJ21346@anhedonia>
Hi Sam,
>>> atari_NCR5390.c does things a bit different - instead of peeking at the
>>> message byte, NCR5380_transfer_pio() is used for the first message byte
>>> (ACK set there, cleared manually later). NCR5380_transfer_pio() sets the
>>> current phase, so the subsequent transfer of the tag message may work
>>> there (again ACK raised in NCR5380_transfer_pio(), cleared manually
>>> later).
>>>
>> Yes, but why the discrepancy?
>>
>> Not unlike the use of DMA in NCR5380_reselect(), the sun3 version of
>> NCR5380_information_transfer() also uses DMA in one situation where the
>> atari version uses PIO. That is, when phase == PHASE_DATA_IN &&
>> cmd->device->borken.
>>
>> Can we just use the PIO code from atari_NCR5380, or should we keep the DMA
>> versions with #ifdef CONFIG_SUN3? Sam?
>>
>
> Oof, my memory is hazy around this one, but I would strongly hesitate
> to use the PIO version from the atari driver. IIRC, the DMA
> controller for the sun3's NCR5380 implementation is extremely fussy
> about what happens in which phase, and it's quick to anger if you
> don't handle everything exactly how it expects.
>
Does the DMA controller also sit in between the bus and the NCR chip, as
on Falcon? Otherwise, I can't see how it would matter if we just bypass
it and use PIO instead.
The PIO code from the Atari driver worked just fine for the Mac 5380 (in
fact, the first Mac driver used PIO for everything, including data in/out).
>
>
>>> From what I've checked both should work, but the sun3 code never sets
>>> 'phase' so it should never actually have worked. It should not even
>>> compile.
>>>
>> I guess that's why sun3_scsi leaves SUPPORT_TAGS undefined. I suppose we
>> can ignore all the code in sun3_NCR5380.c that is conditional upon #ifdef
>> SUPPORT_TAGS. (That's actually how I did my preliminary merge patches.)
>>
>> I guess having two versions of the NCR5380_transfer_dma() routine is
>> reasonable but it would be nice if some of the other discrepancies could
>> be resolved. Without knowledge of the Sun 3 DMA hardware it is difficult
>> to avoid some questionable #ifdefs.
>>
>
> I definitely remember that the DMA setup logic from the atari version
> did not work at all on sun3.
No surprise there - DMA is implementation specific and needs to be
handled on a per-case basis.
> Unfortunatly working from 15 year old
> memories, I can't quickly recall what the discrepencies were. I never
> did find any documentation for that DMA chip, so there was a heck of a
> lot of trial and error on getting to a working driver.
>
Do you still have the hardware to test (PIO in reselection, to be
specific)?
Cheers,
Michael
next prev parent reply other threads:[~2014-08-08 8:46 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-16 14:18 converting the NCR5380 drivers away from scsi_register Christoph Hellwig
2014-06-17 8:20 ` Finn Thain
2014-06-17 8:38 ` Geert Uytterhoeven
2014-07-30 8:32 ` Finn Thain
2014-07-31 5:31 ` Michael Schmitz
2014-08-01 3:13 ` Finn Thain
2014-08-01 8:15 ` Michael Schmitz
2014-08-02 1:27 ` Finn Thain
2014-08-02 8:51 ` Michael Schmitz
2014-08-03 3:43 ` Finn Thain
2014-08-03 9:07 ` Michael Schmitz
2014-08-04 3:28 ` Finn Thain
2014-08-05 9:06 ` Michael Schmitz
2014-08-06 1:25 ` Sun3 SCSI DMA, was " Finn Thain
2014-08-06 14:42 ` Sam Creasey
2014-08-08 8:46 ` Michael Schmitz [this message]
2014-08-11 15:10 ` Sam Creasey
2014-08-13 5:29 ` Finn Thain
2014-08-13 9:14 ` Michael Schmitz
2014-08-14 1:43 ` Finn Thain
2014-08-14 8:57 ` Michael Schmitz
2014-08-15 1:46 ` Finn Thain
2014-08-15 1:51 ` Michael Schmitz
2014-08-15 2:09 ` Finn Thain
2014-08-15 3:03 ` Michael Schmitz
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=53E48E50.8010600@gmail.com \
--to=schmitzmic@gmail.com \
--cc=fthain@telegraphics.com.au \
--cc=geert@linux-m68k.org \
--cc=hch@infradead.org \
--cc=linux-m68k@vger.kernel.org \
--cc=sammy@sammy.net \
--cc=schmitz@debian.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