From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>,
Michal Simek <monstr@monstr.eu>, Arnd Bergmann <arnd@arndb.de>,
Vineet Gupta <Vineet.Gupta1@synopsys.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Geert Uytterhoeven <geert@linux-m68k.org>,
dahinds@users.sourceforge.net
Subject: Re: [PATCH] drivers/block/xsysace - replace in(out)_8/in(out)_be16/in(out)_le16 with generic iowrite(read)8/16(be)
Date: Fri, 08 Feb 2013 08:15:43 +1100 [thread overview]
Message-ID: <1360271743.2650.38.camel@pasglop> (raw)
In-Reply-To: <CACxGe6srNmX+qL+5BBFOzTHtQLRcw+4Aqjexy0Y=Vbh3XqPWPA@mail.gmail.com>
On Thu, 2013-02-07 at 16:44 +0000, Grant Likely wrote:
>
> I've just spent some quality time with a piece of paper, and I think
> I've figured it out...
http://linuxplumbers.ubicast.tv/videos/big-and-little-endian-inside-out/
Watch the last part on IO busses....
This all has to do which which byte of the bus is the lowest byte
*address* regardless of significance. That's how the wiring should be
consistent between CPU and device, in order for a data port to work
properly.
The data port then requires no swapping (which also means it works
nicely with dumb DMA engines etc...)
Whether the registers need swapping or not depends on which half is the
MSB, which is somewhat a semantically higher level than the bus
transport, and depends on whether the device exposes them as BE or LE
registers. But data ports are just "windows" to a byte stream and
shouldn't be affected by endianess (again, unless you get a moron doing
the HW which seems to be still too common).
There is only one right way to connect devices to CPUs basically, which
is called byte address invariance, and preserves the order of bytes in
term of byte addresses.
(Note that for busses that also carry addresses such as PCI, this can
get tricky as you might need to have the lanes routed in a different
order for address vs. data cycles).
Cheers,
Ben.
next prev parent reply other threads:[~2013-02-07 21:16 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-29 16:02 [PATCH] drivers/block/xsysace - replace in(out)_8/in(out)_be16/in(out)_le16 with generic iowrite(read)8/16(be) Alexey Brodkin
2013-01-29 16:27 ` Arnd Bergmann
2013-01-30 11:03 ` Alexey Brodkin
2013-01-30 11:13 ` Michal Simek
2013-01-30 12:10 ` Vineet Gupta
2013-01-30 12:31 ` Michal Simek
2013-01-30 14:36 ` Arnd Bergmann
2013-02-04 9:26 ` Michal Simek
2013-02-04 17:24 ` Arnd Bergmann
2013-02-05 2:29 ` Benjamin Herrenschmidt
2013-02-05 10:54 ` Michal Simek
2013-02-05 12:09 ` Vineet Gupta
2013-02-05 12:29 ` Benjamin Herrenschmidt
2013-02-05 12:19 ` Benjamin Herrenschmidt
2013-02-05 12:38 ` Michal Simek
2013-02-05 14:03 ` Alexey Brodkin
2013-02-05 15:12 ` Arnd Bergmann
2013-02-05 21:01 ` Benjamin Herrenschmidt
2013-02-06 10:03 ` Grant Likely
2013-02-06 16:20 ` Arnd Bergmann
2013-02-06 16:21 ` Michal Simek
2013-02-07 0:34 ` Arnd Bergmann
2013-02-06 17:40 ` Michal Simek
2013-02-06 19:51 ` Geert Uytterhoeven
2013-02-07 7:23 ` Michal Simek
2013-02-07 7:38 ` Geert Uytterhoeven
2013-02-07 8:01 ` Michal Simek
2013-02-07 8:20 ` Geert Uytterhoeven
2013-02-07 8:33 ` Arnd Bergmann
2013-02-07 14:19 ` Michal Simek
2013-02-07 23:12 ` Arnd Bergmann
2013-02-11 10:38 ` Michal Simek
2013-02-11 15:26 ` Arnd Bergmann
2013-02-11 15:36 ` Michal Simek
2013-02-11 15:43 ` Arnd Bergmann
2013-02-11 15:57 ` Michal Simek
2013-02-11 16:08 ` Arnd Bergmann
2013-02-12 0:29 ` Benjamin Herrenschmidt
2013-02-12 11:29 ` Arnd Bergmann
2013-02-12 10:11 ` Michal Simek
2013-02-12 11:26 ` Arnd Bergmann
2013-02-12 12:14 ` Michal Simek
2013-02-12 13:55 ` Arnd Bergmann
2013-02-12 12:30 ` Benjamin Herrenschmidt
2013-02-12 0:25 ` Benjamin Herrenschmidt
2013-02-12 10:03 ` Michal Simek
2013-02-05 21:00 ` Benjamin Herrenschmidt
2013-02-05 21:25 ` Alexey Brodkin
2013-02-05 23:07 ` Benjamin Herrenschmidt
2013-02-06 10:14 ` Grant Likely
2013-02-06 16:27 ` Arnd Bergmann
2013-02-06 21:35 ` Benjamin Herrenschmidt
2013-02-07 12:09 ` Alexey Brodkin
2013-02-07 12:20 ` Benjamin Herrenschmidt
2013-02-07 12:23 ` Benjamin Herrenschmidt
2013-02-07 14:31 ` Michal Simek
2013-02-07 14:35 ` Alexey Brodkin
2013-02-07 14:39 ` Grant Likely
2013-02-07 14:51 ` Grant Likely
2013-02-07 15:12 ` Alexey Brodkin
2013-02-07 15:23 ` Grant Likely
2013-02-07 15:28 ` Alexey Brodkin
2013-02-07 16:44 ` Grant Likely
2013-02-07 16:56 ` Alexey Brodkin
2013-02-07 17:16 ` Grant Likely
2013-02-07 17:22 ` Alexey Brodkin
2013-02-08 7:45 ` Grant Likely
2013-02-07 21:18 ` Benjamin Herrenschmidt
2013-02-07 21:15 ` Benjamin Herrenschmidt [this message]
2013-02-07 23:05 ` Arnd Bergmann
2013-02-08 6:19 ` Geert Uytterhoeven
2013-02-08 7:14 ` Grant Likely
2013-02-07 21:09 ` Benjamin Herrenschmidt
2013-02-12 17:02 ` Michal Simek
2013-02-12 17:25 ` Arnd Bergmann
2013-03-21 17:01 ` Alexey Brodkin
2013-06-19 8:56 ` xsysace driver support on arches other than PPC/Microblaze Alexey Brodkin
2013-06-19 9:09 ` Alexey Brodkin
2013-06-19 12:13 ` Andy Shevchenko
2013-06-19 12:56 ` Alexey Brodkin
2013-06-19 14:51 ` Arnd Bergmann
2013-02-07 21:06 ` [PATCH] drivers/block/xsysace - replace in(out)_8/in(out)_be16/in(out)_le16 with generic iowrite(read)8/16(be) Benjamin Herrenschmidt
2013-02-05 23:03 ` Arnd Bergmann
2013-02-06 8:59 ` Geert Uytterhoeven
2013-02-06 16:18 ` Arnd Bergmann
2013-02-05 10:45 ` Michal Simek
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=1360271743.2650.38.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=Alexey.Brodkin@synopsys.com \
--cc=Vineet.Gupta1@synopsys.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arnd@arndb.de \
--cc=dahinds@users.sourceforge.net \
--cc=geert@linux-m68k.org \
--cc=grant.likely@secretlab.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=monstr@monstr.eu \
/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