All of lore.kernel.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] ARM: CSR: Adding CSR SiRFprimaII board support
Date: Wed, 6 Jul 2011 18:13:19 +0200	[thread overview]
Message-ID: <201107061813.19933.arnd@arndb.de> (raw)
In-Reply-To: <20110706152546.GE8286@n2100.arm.linux.org.uk>

On Wednesday 06 July 2011, Russell King - ARM Linux wrote:
> Ha, you've no idea what kind of messed up ideas hardware people come up
> with then.  Take this - this is real hardware which I've had Linux
> running on continuously for the last 13 years.  Here is the /proc/ioports:
> 
< skipped lots of interesting information about how messed up the hardware can be>

> So, if you do an ioport_map() to convert from the ISA address to a bus
> specific address, and then add the device specific offset, you end up
> with information lost, and you no longer know how to manipulate the
> cookie into the correct bus address and access type.
> 
> The alternative is you keep the returned ioport cookie the same as the
> ISA address, and do all the conversion in ioread/iowrite - that's even
> more horrible than how it's already doing because then you need to know
> if its real MMIO or IO, and whether it's an 8 bit IO device, 16-bit
> low byte lane IO device, or a 16-bit both byte lane IO device.  Plus
> whether the MMIO is in the broken PCMCIA controller IO space (CPU
> address bit 11 missing and CPU address bit 19 mapped to two bus
> address bits...)

Well, first of all, I never suggested converting drivers to use
iowrite, you brought that up. So as long as the 16-bit ISA driver
keep using inb/outb, an iowrite implementation would not need to
bother about this specific problem and don't even need a private
iowrite implementation but instead move that platform over to use
CONFIG_GENERIC_IOMAP.

What lib/iomap.c does is indeed to look at the address, by default
it assumes that __iomem tokens below 0x10000 are IO ports, while
larger values are MMIO addresses. This appears to work fine on x86,
and AFAICT, it should still work with both the botched PIO mapping
(minus the 16-bit devices) and the botched MMIO mapping, since both
will just end up calling the fixups in arch/arm/mach-ebsa110/io.c.

The only problem you will hit is when there are ISA devices with
MMIO addresses below 0x40000, which is impossible on PCs but
perhaps not on arbitrarily incompatible ISA buses.

	Arnd

  reply	other threads:[~2011-07-06 16:13 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-06  9:47 [PATCH 0/3] ARM: CSR: Adding CSR SiRFprimaII platform Barry Song
2011-07-06  9:47 ` [PATCH 1/3] ARM: CSR: Adding CSR SiRFprimaII board support Barry Song
2011-07-06 11:04   ` Russell King - ARM Linux
2011-07-06 15:16     ` Barry Song
2011-07-06 11:41   ` Arnd Bergmann
2011-07-06 11:41     ` Arnd Bergmann
2011-07-06 12:22     ` Barry Song
2011-07-06 12:22       ` Barry Song
2011-07-06 13:44       ` Arnd Bergmann
2011-07-06 13:44         ` Arnd Bergmann
2011-07-07  2:26         ` Barry Song
2011-07-07  2:26           ` Barry Song
2011-07-06 12:25   ` Russell King - ARM Linux
2011-07-06 12:42     ` Arnd Bergmann
2011-07-06 13:09       ` Russell King - ARM Linux
2011-07-06 14:41         ` Arnd Bergmann
2011-07-06 15:25           ` Russell King - ARM Linux
2011-07-06 16:13             ` Arnd Bergmann [this message]
2011-07-06 13:29       ` Russell King - ARM Linux
2011-07-06 14:51       ` Russell King - ARM Linux
2011-07-06 15:03         ` Arnd Bergmann
2011-07-06 16:35       ` Nicolas Pitre
2011-07-06 17:42         ` Russell King - ARM Linux
2011-07-06 17:59           ` Arnd Bergmann
2011-07-06 18:11             ` Nicolas Pitre
2011-07-06 18:15               ` Russell King - ARM Linux
2011-07-06 18:35                 ` Nicolas Pitre
2011-07-06 18:09           ` Nicolas Pitre
2011-07-07 11:23         ` Arnd Bergmann
2011-07-06 16:09     ` Barry Song
2011-07-06 19:10       ` Russell King - ARM Linux
2011-07-06 20:31         ` Arnd Bergmann
2011-07-06 20:50           ` Russell King - ARM Linux
2011-07-06 21:21             ` Arnd Bergmann
2011-07-07  1:20           ` Barry Song
2011-07-07 11:43             ` Arnd Bergmann
2011-07-07 12:37               ` Russell King - ARM Linux
2011-07-07 13:21                 ` Arnd Bergmann
2011-07-07 14:12                   ` Russell King - ARM Linux
2011-07-08  2:18                     ` Barry Song
2011-07-08  9:03                       ` Russell King - ARM Linux
2011-07-08 13:38                         ` Nicolas Pitre
2011-07-08 16:27                           ` Russell King - ARM Linux
2011-07-08 18:09                             ` Nicolas Pitre
2011-07-08 21:37                               ` Arnd Bergmann
2011-07-21  0:03                                 ` dynamic VMALLOC_END, was " Nicolas Pitre
2011-07-06  9:47 ` [PATCH 2/3] ARM: CSR: mapping early DEBUG_LL uart Barry Song
2011-07-06 11:05   ` Russell King - ARM Linux
2011-07-06 11:53     ` Barry Song
2011-07-06 11:56       ` Barry Song
2011-07-06 12:10       ` Russell King - ARM Linux
2011-07-06 12:29         ` Barry Song
2011-07-06 11:15   ` Arnd Bergmann
2011-07-06  9:47 ` [PATCH 3/3] ARM: CSR: initilized L2 cache Barry Song
2011-07-06 11:14   ` Arnd Bergmann
     [not found] <e66253df-b34a-4c32-bddf-31b1332c716c@VA3EHSMHS031.ehs.local>
2011-07-07 13:48 ` [PATCH 1/3] ARM: CSR: Adding CSR SiRFprimaII board support johnlinn at comcast.net

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=201107061813.19933.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.