From: ebiederm@xmission.com (Eric W. Biederman)
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Linus Torvalds <torvalds@transmeta.com>,
Martin Dalecki <dalecki@evision-ventures.com>,
Andre Hedrick <andre@linux-ide.org>,
Bjorn Wesen <bjorn.wesen@axis.com>,
Paul Mackerras <paulus@samba.org>,
Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] IDE 58
Date: 09 May 2002 09:19:12 -0600 [thread overview]
Message-ID: <m1znz9z6vj.fsf@frodo.biederman.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0205081200340.5406-100000@home.transmeta.com> <20020508191054.6282@smtp.wanadoo.fr>
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> >And done properly with per-controller (or drive - you may want to
> >virtualize at the drive level just because you could separate out
> >different kinds of drive accesses that way too) function pointers you can
> >then _mix_ access methods, without getting completely idiotic run-time
> >checks inside "ide_out()".
>
> Which ends up basically into having function pointers in the
> ata_channel (or ata_drive, but I doubt that would be really
> necessary) a set of 4 access functions: taskfile_in/out for
> access to taskfile registers (8 bits), and data_in/out for
> steaming datas in/out of the data reg (16 bits).
>
> That would cleanly solve my problem of mixing MMIO and PIO
> controllers in the same machine, that would solve the crazy
> byteswapping needed by some controllers for PIO at least,
> etc...
>
> I would even suggest not caring about the taskfile register
> address at all (that is kill the array of port addresses) but
> just pass the taskfile_in/out functions the register number
> (cyl_hi, cyl_lo, select, ....) as a nice symbolic constant,
> and let the channel specific implementation figure it out.
> I haven't checked if you already killed all of the request/release
> region crap done by the common ide code, that is matter is completely
> internal to the host controller driver, etc...
>
> Now, andre may tell us we need one more set for "slow IO"
> versions for some HW, I don't know the details for these so
> I'll let the old man speak up here.
I'd suggest pointers in the ata_channel that abstract out the
functions of the host controllers. For most controllers we
can have a common PCI IDE library that implements them, and provides
a reference implementation for the weird cases.
>From the ata-6 draft there are the following protocols, that should
be implementable on an IDE host controller.
- Software reset protocol
- Non-data command protocol
- PIO data-in command protocol
- PIO data-out command protocol
- DMA command protocol
- PACKET command protocol
- READ/WRITE DMA QUEUED command protocol
- EXECUTE DEVICE DIAGNOSTIC command protocol
- DEVICE RESET command protocol
- Ultra DMA data-in commands
- Ultra DMA data-out commands
Given the high level of the protocol abstraction we aren't
likely to beat ourselves to death with extra cpu or io overhead.
Nor is this an insane number of things to implement.
Perhaps more can be factored out (controllers being so similiar) but
that is the abstraction we need for the layer sending commands to ATA
devices. This allows the higher layers to focus on sending commands
to ATA devices.
Eric
next prev parent reply other threads:[~2002-05-09 15:27 UTC|newest]
Thread overview: 228+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-06 3:53 Linux-2.5.14 Linus Torvalds
2002-05-06 6:30 ` Linux-2.5.14 Daniel Pittman
2002-05-06 6:51 ` Linux-2.5.14 Andrew Morton
2002-05-06 15:13 ` Linux-2.5.14 Linus Torvalds
2002-05-07 4:28 ` Linux-2.5.14 Daniel Pittman
2002-05-09 3:53 ` Linux-2.5.14 Daniel Pittman
2002-05-09 4:34 ` Linux-2.5.14 Andrew Morton
2002-05-09 6:02 ` Linux-2.5.14 Daniel Pittman
2002-05-06 6:47 ` Linux-2.5.14 bert hubert
2002-05-06 7:07 ` Linux-2.5.14 Andrew Morton
2002-05-06 14:00 ` Linux-2.5.14 Rik van Riel
2002-05-06 9:09 ` [PATCH] 2.5.14 IDE 55 Martin Dalecki
2002-05-06 17:48 ` David Lang
2002-05-06 22:40 ` Roman Zippel
2002-05-07 10:10 ` Martin Dalecki
2002-05-07 11:31 ` Roman Zippel
2002-05-07 10:31 ` Martin Dalecki
2002-05-07 10:34 ` Martin Dalecki
2002-05-07 11:48 ` Roman Zippel
2002-05-07 11:19 ` Martin Dalecki
2002-05-07 12:35 ` Roman Zippel
2002-05-07 12:36 ` Andrey Panin
2002-05-07 11:32 ` Martin Dalecki
2002-05-07 12:38 ` Dave Jones
2002-05-07 0:03 ` Roman Zippel
2002-05-07 10:12 ` Martin Dalecki
2002-05-07 11:39 ` Roman Zippel
2002-05-07 10:40 ` Martin Dalecki
2002-05-07 12:42 ` Roman Zippel
2002-05-07 11:22 ` [PATCH] 2.5.14 IDE 56 Martin Dalecki
2002-05-07 14:02 ` Padraig Brady
2002-05-07 13:15 ` Martin Dalecki
2002-05-07 14:30 ` Padraig Brady
2002-05-07 15:08 ` Anton Altaparmakov
2002-05-07 15:36 ` Linus Torvalds
2002-05-07 16:20 ` Jan Harkes
2002-05-07 15:26 ` Martin Dalecki
2002-05-07 21:36 ` Jan Harkes
2002-05-08 0:25 ` Guest section DW
2002-05-08 3:03 ` Jan Harkes
2002-05-08 9:03 ` Martin Dalecki
2002-05-08 12:10 ` Alan Cox
2002-05-08 10:51 ` Martin Dalecki
2002-05-07 16:29 ` Padraig Brady
2002-05-07 16:51 ` Linus Torvalds
2002-05-07 18:29 ` Kai Henningsen
2002-05-08 7:48 ` Juan Quintela
2002-05-08 16:54 ` Linus Torvalds
2002-05-07 17:08 ` Alan Cox
2002-05-07 17:00 ` Linus Torvalds
2002-05-07 17:19 ` benh
2002-05-07 17:24 ` Linus Torvalds
2002-05-07 17:30 ` benh
2002-05-10 1:45 ` Mike Fedyk
2002-05-07 17:43 ` Richard Gooch
2002-05-07 18:05 ` Linus Torvalds
2002-05-07 18:26 ` Alan Cox
2002-05-07 18:16 ` Linus Torvalds
2002-05-07 18:40 ` Richard Gooch
2002-05-07 18:46 ` Linus Torvalds
2002-05-07 23:54 ` Roman Zippel
2002-05-08 6:57 ` Kai Henningsen
2002-05-08 9:37 ` Ian Molton
2002-05-09 13:58 ` Pavel Machek
2002-05-08 8:21 ` Martin Dalecki
2002-05-07 17:27 ` Jauder Ho
2002-05-08 8:13 ` Martin Dalecki
2002-05-07 18:29 ` Patrick Mochel
2002-05-07 18:02 ` Greg KH
2002-05-07 18:44 ` Richard Gooch
2002-05-07 18:44 ` Patrick Mochel
2002-05-07 19:21 ` Richard Gooch
2002-05-07 19:58 ` Patrick Mochel
2002-05-07 18:49 ` Thunder from the hill
2002-05-07 19:47 ` Patrick Mochel
2002-05-07 22:03 ` Richard Gooch
2002-05-08 8:14 ` Russell King
2002-05-08 16:07 ` Richard Gooch
2002-05-08 17:07 ` Russell King
2002-05-08 8:18 ` Martin Dalecki
2002-05-08 8:07 ` Martin Dalecki
2002-05-08 7:58 ` Martin Dalecki
2002-05-08 12:18 ` Alan Cox
2002-05-08 11:09 ` Martin Dalecki
2002-05-08 12:42 ` Alan Cox
2002-05-08 11:23 ` Martin Dalecki
2002-05-09 2:37 ` Lincoln Dale
2002-05-09 3:10 ` Andrew Morton
2002-05-09 10:05 ` Lincoln Dale
2002-05-09 18:50 ` Andrew Morton
2002-05-10 0:33 ` Andi Kleen
2002-05-10 0:48 ` Andrew Morton
2002-05-10 1:06 ` Andi Kleen
2002-05-13 17:51 ` Pavel Machek
2002-05-14 21:44 ` Andi Kleen
2002-05-10 6:50 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14 IDE 56) Lincoln Dale
2002-05-10 7:15 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14IDE 56) Andrew Morton
2002-05-10 7:21 ` Jens Axboe
2002-05-10 8:12 ` Andrea Arcangeli
2002-05-10 10:14 ` Lincoln Dale
2002-05-10 12:36 ` Andrea Arcangeli
2002-05-11 3:23 ` Lincoln Dale
2002-05-13 11:19 ` Andrea Arcangeli
2002-05-13 23:58 ` Lincoln Dale
2002-05-14 0:22 ` Andrea Arcangeli
2002-05-14 2:43 ` O_DIRECT on 2.4.19pre8aa2 md device Lincoln Dale
2002-05-21 15:51 ` Andrea Arcangeli
2002-05-22 1:18 ` Lincoln Dale
2002-05-22 2:51 ` Andrea Arcangeli
2002-06-03 4:53 ` high-end i/o performance of 2.4.19pre8aa2 (was: Re: O_DIRECT on 2.4.19pre8aa2 device) Lincoln Dale
2002-05-12 11:23 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14IDE 56) Lincoln Dale
2002-05-13 11:37 ` Andrea Arcangeli
2002-05-10 15:55 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14 IDE 56) Linus Torvalds
2002-05-11 1:01 ` Gerrit Huizenga
2002-05-11 18:04 ` Linus Torvalds
2002-05-11 18:19 ` Larry McVoy
2002-05-11 18:35 ` Linus Torvalds
2002-05-11 18:37 ` Larry McVoy
2002-05-11 18:56 ` Linus Torvalds
2002-05-11 21:42 ` Gerrit Huizenga
2002-05-11 18:43 ` Mr. James W. Laferriere
2002-05-11 23:38 ` Lincoln Dale
2002-05-12 0:36 ` yodaiken
2002-05-12 2:40 ` Andrew Morton
2002-05-11 18:26 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14 Alan Cox
2002-05-11 18:09 ` Linus Torvalds
2002-05-11 18:45 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14 IDE 56) yodaiken
2002-05-11 19:55 ` O_DIRECT performance impact on 2.4.18 Bernd Eckenfels
2002-05-11 14:18 ` O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14 IDE 56) Roy Sigurd Karlsbakk
2002-05-11 14:24 ` Jens Axboe
2002-05-11 18:25 ` Gerrit Huizenga
2002-05-11 20:17 ` Jens Axboe
2002-05-11 22:27 ` Gerrit Huizenga
2002-05-11 23:17 ` Lincoln Dale
2002-05-09 4:16 ` [PATCH] 2.5.14 IDE 56 Andre Hedrick
2002-05-09 13:32 ` Alan Cox
2002-05-09 14:58 ` Alan Cox
2002-05-08 18:21 ` Erik Andersen
2002-05-08 18:59 ` Dave Jones
2002-05-08 19:31 ` Alan Cox
2002-05-08 21:16 ` Erik Andersen
2002-05-08 22:14 ` Alan Cox
2002-05-09 13:13 ` Pavel Machek
2002-05-09 19:22 ` Daniel Jacobowitz
2002-05-10 12:01 ` Padraig Brady
2002-05-09 13:18 ` Pavel Machek
2002-05-07 17:10 ` Richard B. Johnson
2002-05-08 7:36 ` Martin Dalecki
2002-05-08 17:22 ` Greg KH
2002-05-08 18:46 ` Denis Vlasenko
2002-05-07 11:27 ` [PATCH] 2.5.14 IDE 57 Martin Dalecki
2002-05-07 13:16 ` Anton Altaparmakov
2002-05-07 12:34 ` Martin Dalecki
2002-05-07 13:56 ` Mikael Pettersson
2002-05-07 14:04 ` Dave Jones
2002-05-07 13:57 ` Anton Altaparmakov
2002-05-07 14:08 ` Dave Jones
2002-05-07 13:11 ` Martin Dalecki
2002-05-07 14:29 ` Anton Altaparmakov
2002-05-07 13:36 ` Martin Dalecki
2002-05-07 15:08 ` Anton Altaparmakov
2002-05-07 16:51 ` Dave Jones
2002-05-08 3:38 ` Anton Altaparmakov
2002-05-08 11:47 ` Dave Jones
2002-05-07 15:07 ` Padraig Brady
2002-05-07 17:21 ` Andre Hedrick
2002-05-11 14:09 ` Aaron Lehmann
2002-05-07 15:03 ` [PATCH] IDE 58 Martin Dalecki
2002-05-08 6:42 ` Paul Mackerras
2002-05-08 8:53 ` Martin Dalecki
2002-05-08 10:37 ` Bjorn Wesen
2002-05-08 10:16 ` Martin Dalecki
2002-05-08 19:06 ` Linus Torvalds
2002-05-08 19:10 ` Benjamin Herrenschmidt
2002-05-08 20:31 ` Alan Cox
2002-05-08 19:49 ` Benjamin Herrenschmidt
2002-05-08 20:44 ` Alan Cox
2002-05-08 20:04 ` Benjamin Herrenschmidt
2002-05-09 20:20 ` Ian Molton
2002-05-08 20:36 ` Andre Hedrick
2002-05-08 20:29 ` Andre Hedrick
2002-05-08 20:06 ` Benjamin Herrenschmidt
2002-05-09 12:14 ` Martin Dalecki
2002-05-09 15:19 ` Eric W. Biederman [this message]
2002-05-09 20:20 ` Ian Molton
2002-05-08 11:00 ` Benjamin Herrenschmidt
2002-05-09 19:58 ` [PATCH] 2.5.14 IDE 59 Martin Dalecki
2002-05-11 4:16 ` William Lee Irwin III
2002-05-11 16:59 ` [PATCH] 2.5.15 IDE 60 Martin Dalecki
2002-05-11 18:47 ` Pierre Rousselet
2002-05-11 19:12 ` Andre Hedrick
2002-05-11 19:52 ` Pierre Rousselet
2002-05-11 23:48 ` Andre Hedrick
2002-05-12 19:19 ` pdc202xx.c fails to compile in 2.5.15 Zlatko Calusic
2002-05-12 19:40 ` Jurriaan on Alpha
2002-05-12 22:00 ` Petr Vandrovec
2002-05-13 12:03 ` Alan Cox
2002-05-13 9:48 ` [PATCH] 2.5.15 IDE 61 Martin Dalecki
2002-05-13 12:17 ` [PATCH] 2.5.15 IDE 62 Martin Dalecki
2002-05-13 13:48 ` Jens Axboe
2002-05-13 13:02 ` Martin Dalecki
2002-05-13 15:38 ` Jens Axboe
2002-05-13 15:45 ` Martin Dalecki
2002-05-13 16:54 ` Linus Torvalds
2002-05-13 16:55 ` Jens Axboe
2002-05-13 16:00 ` Martin Dalecki
2002-05-13 18:02 ` benh
2002-05-13 15:50 ` Martin Dalecki
2002-05-13 17:52 ` benh
2002-05-13 15:55 ` Martin Dalecki
2002-05-13 19:13 ` benh
2002-05-14 8:48 ` Martin Dalecki
2002-05-17 11:40 ` Martin Dalecki
2002-05-17 2:27 ` Benjamin Herrenschmidt
2002-05-13 15:36 ` Tom Rini
2002-05-14 10:26 ` [PATCH] 2.5.15 IDE 62a Martin Dalecki
2002-05-14 10:28 ` [PATCH] 2.5.15 IDE 63 Martin Dalecki
2002-05-15 12:04 ` [PATCH] 2.5.15 IDE 64 Martin Dalecki
2002-05-15 13:12 ` Russell King
2002-05-15 12:14 ` Martin Dalecki
2002-05-08 11:12 [PATCH] IDE 58 Benjamin Herrenschmidt
2002-05-08 10:25 ` Martin Dalecki
2002-05-08 18:29 ` Anton Altaparmakov
2002-05-08 18:55 ` Andre Hedrick
2002-05-09 11:34 ` Martin Dalecki
2002-05-09 13:22 ` Alan Cox
[not found] <Pine.LNX.4.10.10205081154370.30697-100000@master.linux-ide .org>
2002-05-08 19:00 ` Anton Altaparmakov
2002-05-08 19:08 ` Andre Hedrick
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=m1znz9z6vj.fsf@frodo.biederman.org \
--to=ebiederm@xmission.com \
--cc=andre@linux-ide.org \
--cc=benh@kernel.crashing.org \
--cc=bjorn.wesen@axis.com \
--cc=dalecki@evision-ventures.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.org \
--cc=torvalds@transmeta.com \
/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
all inboxes | Powered by JetHome®