From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: "David S. Miller" <davem@redhat.com>,
<david.lang@digitalinsight.com>, <vojtech@suse.cz>,
<dalecki@evision-ventures.com>, <rgooch@ras.ucalgary.ca>,
Linus Torvalds <torvalds@transmeta.com>,
Linux Kernel Development <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] 2.5.8 IDE 36
Date: Wed, 17 Apr 2002 02:55:50 +0100 [thread overview]
Message-ID: <20020417015550.11501@smtp.adsl.oleane.com> (raw)
In-Reply-To: <Pine.GSO.4.21.0204171029040.1258-100000@vervain.sonytel.be>
>On Tue, 16 Apr 2002, Benjamin Herrenschmidt wrote:
>
>> > I could be wrong, it's a 2.1.x kernel that they started with. I thought
>> > that was around the time the fix went in.
>> >
>> >Again, I did the fix 6 years ago, thats pre-2.0.x days
>> >
>> >EXT2 has been little-endian only with proper byte-swapping support
>> >across all architectures, since that time.
>>
>> My understanding it that Tivo behaves like some Amiga's here
>> and has broken swapping of the IDE bus itself, not the ext2
>> filesystem.
>
>You mean Ataris and Q40/Q60s?
>
>I'm not aware if any Amiga IDE interface with byteswapped IDE interface.
Or it
>must be a very rare interface not supported by Linux anyway ;-)
My confusion then. We used to have these in the PPC tree, and I
suspected those were APUS related ;)
>> On PPC, we still have some historical horrible macros redefinitions
>> in asm/ide.h to let APUS (PPC Amiga) deal with these.
>
>In asm-ppc/ide.h? Didn't see them there.
Right, looks like they are gone lately. Well, the TiVO may have been one
reason for these though I don't think the support for this box has ever
made it into our main tree. It's possible that we had some broken PReP
or whatever early boxes.
>The main problem is that IDE use[sd] `inb' et al. for accesses, which is not
>valid for I/O on something other than ISA/PCI I/O space. So for m68k and APUS
>we have to do weird things. The new IN_BYTE() etc. should help a bit there,
>though.
We tweak on pmac by feeding the IDE layer with our controller virtual address
minus _IO_BASE (for non-PPC people, _IO_BASE is the virtual address of the
main PCI IO space, all inx/outx are relative to this). The pointer arithmetic
does the magic. It sucks, but works without redefining everything around.
I haven't looked at the new IN_BYTE stuff, though if it is IDE specific,
I'd rather see it called IDE_IN_BYTE. The current scheme sucks also because
inx/outx, at least on PPC, are a lot slower than normal MMIO access (one
reason beeing their ability to recovert from machine checks). It would be
nice for IDE to use it's own accessors on MMIO platforms. This has to be
a per-controller things though. A global macro is no good. You can (and on
some configs, you do have on the motherboard) both MMIO mapped controllers
and old-style IO mapped ones. One example is the B&W mac G3 which has both
the Apple MMIO mapped mac-io IDE controller and the CMD646 on the PCI bus.
Also, when applying the taskfile, I suspect we don't need strong barriers as
we do currently have, only on IO write barrier before actually writing the
command byte. But I would gladly leave the whole issue of redefining barriers
especially regarding IOs to Anton Blanchard ;)
Maybe the entire function for writing a taskfile register state to the
controller should be made a hwif indirect call. (On Darwin, they more or
less do that, along with a bitmask indicating which register has to be
applied, though I suspect the tests against this bitmask would eats pretty
much all of the benefit of removing the useless barriers).
>> Now, the problem of dealing with DMA along with the swapping is
>> something scary. I beleive the sanest solution that won't please
>> affected people is to _not_ support DMA on these broken HW ;)
>
>Agreed. And you have to disable DMA when accessing a disk that
originates from
>such a system on a sane box.
Agreed.
Ben.
next prev parent reply other threads:[~2002-04-17 9:34 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-06 1:01 Linux 2.5.8-pre2 Linus Torvalds
2002-04-06 6:59 ` Larry McVoy
2002-04-07 10:17 ` Geert Uytterhoeven
2002-04-07 10:27 ` Russell King
2002-04-07 10:42 ` Geert Uytterhoeven
2002-04-07 10:56 ` Russell King
2002-04-07 13:34 ` Russell King
2002-04-07 14:51 ` Geert Uytterhoeven
2002-04-07 10:50 ` Andrew Morton
2002-04-09 8:05 ` [PATCH] 2.5.8-pre2 IDE 29b Martin Dalecki
2002-04-10 13:14 ` [PATCH] 2.5.8-pre3 IDE 30 Martin Dalecki
2002-04-10 13:16 ` [PATCH] 2.5.8-pre3 IDE 31 Martin Dalecki
2002-04-11 13:42 ` [PATCH] 2.5.8-pre3 IDE 32 Martin Dalecki
2002-04-14 13:55 ` [PATCH] 2.5.8-pre3 IDE 33 Martin Dalecki
2002-04-15 13:45 ` [PATCH] 2.5.8 IDE 35 Martin Dalecki
2002-04-16 7:05 ` [PATCH] 2.5.8 IDE 36 Martin Dalecki
2002-04-16 8:30 ` Vojtech Pavlik
2002-04-16 7:33 ` Martin Dalecki
2002-04-16 8:43 ` Vojtech Pavlik
2002-04-16 9:19 ` David Lang
2002-04-16 8:43 ` Martin Dalecki
2002-04-16 14:14 ` Richard Gooch
2002-04-16 13:49 ` Martin Dalecki
2002-04-16 15:24 ` Vojtech Pavlik
2002-04-16 15:46 ` Linus Torvalds
2002-04-16 16:15 ` Alan Cox
2002-04-16 16:01 ` Linus Torvalds
2002-04-16 16:25 ` Alan Cox
2002-04-16 16:33 ` Padraig Brady
2002-04-16 17:42 ` Andreas Dilger
2002-04-16 17:00 ` Vojtech Pavlik
2002-04-16 17:04 ` David Lang
2002-04-16 17:00 ` David S. Miller
2002-04-16 17:09 ` David Lang
2002-04-16 17:06 ` David S. Miller
2002-04-16 17:16 ` David Lang
2002-04-17 7:44 ` Martin Dalecki
2002-04-17 9:33 ` David Lang
2002-04-16 17:40 ` Benjamin Herrenschmidt
2002-04-17 7:46 ` Martin Dalecki
2002-04-17 9:26 ` Anton Altaparmakov
2002-04-17 9:39 ` David Lang
2002-04-17 20:58 ` Mike Fedyk
2002-04-17 9:13 ` Geert Uytterhoeven
2002-04-17 1:55 ` Benjamin Herrenschmidt [this message]
2002-04-17 8:39 ` Martin Dalecki
2002-04-17 8:25 ` Geert Uytterhoeven
2002-04-16 15:43 ` Linus Torvalds
2002-04-16 15:58 ` Richard Gooch
2002-04-16 16:06 ` Linus Torvalds
2002-04-17 7:38 ` Martin Dalecki
2002-04-16 15:30 ` Linus Torvalds
2002-04-16 16:05 ` Alan Cox
2002-04-16 15:56 ` Linus Torvalds
2002-04-16 16:23 ` Alan Cox
2002-04-16 17:06 ` Vojtech Pavlik
2002-04-18 20:33 ` eNBD on loopback [was Re: [PATCH] 2.5.8 IDE 36] Pavel Machek
2002-04-18 20:39 ` Linus Torvalds
2002-04-18 10:45 ` regarding NFS Jehanzeb Hameed
2002-04-19 9:36 ` Trond Myklebust
2002-04-19 1:19 ` Jehanzeb Hameed
2002-04-19 12:24 ` Trond Myklebust
2002-04-19 2:26 ` Jehanzeb Hameed
2002-04-19 13:46 ` Trond Myklebust
2002-04-17 7:36 ` [PATCH] 2.5.8 IDE 36 Martin Dalecki
2002-04-17 9:24 ` Alan Cox
2002-04-16 22:46 ` Brian Gerst
2002-04-17 7:52 ` Martin Dalecki
2002-04-16 9:22 ` [PATCH] 2.5.8 IDE 37 Martin Dalecki
2002-04-18 9:14 ` [PATCH] 2.5.8 IDE 38 Martin Dalecki
2002-04-18 10:48 ` Russell King
2002-04-18 9:54 ` Martin Dalecki
2002-04-18 9:16 ` [PATCH] 2.5.8 IDE 37 Martin Dalecki
2002-04-18 9:22 ` [PATCH] 2.5.8 IDE 39 Martin Dalecki
-- strict thread matches above, loose matches on Subject: below --
2002-04-16 9:09 [PATCH] 2.5.8 IDE 36 Norbert Kiesel
2002-04-16 8:21 ` Martin Dalecki
2002-04-16 10:06 ` Norbert Kiesel
2002-04-16 9:20 ` Martin Dalecki
2002-04-16 10:20 ` Norbert Kiesel
2002-04-17 10:10 Petr Vandrovec
2002-04-17 10:20 ` David Lang
2002-04-19 17:17 Peter T. Breuer
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=20020417015550.11501@smtp.adsl.oleane.com \
--to=benh@kernel.crashing.org \
--cc=dalecki@evision-ventures.com \
--cc=davem@redhat.com \
--cc=david.lang@digitalinsight.com \
--cc=geert@linux-m68k.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rgooch@ras.ucalgary.ca \
--cc=torvalds@transmeta.com \
--cc=vojtech@suse.cz \
/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