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 14:42:04 +0200	[thread overview]
Message-ID: <201107061442.05182.arnd@arndb.de> (raw)
In-Reply-To: <20110706122501.GU8286@n2100.arm.linux.org.uk>

On Wednesday 06 July 2011, Russell King - ARM Linux wrote:
> On Wed, Jul 06, 2011 at 02:47:56AM -0700, Barry Song wrote:
> > diff --git a/arch/arm/mach-prima2/include/mach/io.h b/arch/arm/mach-
> > +
> > +#ifndef __MACH_PRIMA2_IO_H
> > +#define __MACH_PRIMA2_IO_H
> > +
> > +#define IO_SPACE_LIMIT 0xffffffff
> 
> Can folk please start putting comments in their io.h file explaining their
> choice for this definition?  Looking through the existing files, it is
> almost impossible to infer the reason the value was picked, which makes
> future maintanence a headache.

I had the same comment for one of the earlier versions of the patch
set, but we agreed that I'd come up with a way to remove this at a
later stage for all platforms that don't have PC-style PIO.

Right now, the only platforms that use a value other than 0xffffffff
are ones that actually have PCI and set it to 0xffff.

> IO_SPACE_LIMIT sets the upper bound for the PCI/ISA style IO accessor
> macros (inb, et.al.)
> 
> My guidance is:
> 
> 1. If you have no support for ISA/PCI/PC card drivers, then set this to
>    zero to prevent ISA/PCI drivers reserving IO port space.  You should
>    be able to leave __io() set to __typesafe_io() without risking any
>    ISA driver stamping on memory as those drivers should no longer
>    successfully initialize with this set to zero.
> 
> 2. If you have MMIO-mapped IO space (eg, a PCI bridge which forwards
>    MMIO accesses in a window to PCI IO space) or equivalent, then set
>    this to the size of the window, or 64K-1.  Explain this.
> 
> 3. If you have MMIO-mapped IO space which is scattered (eg, multiple
>    PC cards with their IO space individually mapped as separate 64K
>    blocks) then explain this and set it to 0xffffffff for the time
>    being.

Sounds good.

> I shall be making this change to asm/io.h shortly:
> 
>  #include <mach/io.h>
> 
> +/*
> + * This is the limit of PCI/ISA/PC card IO space, which is by default
> + * 64K if we have PC card, PCI or ISA support.  Otherwise, default to
> + * zero to prevent ISA/PCI drivers claiming IO space (and potentially
> + * oopsing.)
> + *
> + * Only set this larger if you really need inb() et.al. to operate over
> + * a larger address space (eg, for multiple MMIO-mapped PC card sockets
> + * as found on SA11x0 and PXA.)
> + */
> +#ifndef IO_SPACE_LIMIT
> +#if defined(CONFIG_PCI) || defined(CONFIG_ISA) || defined(CONFIG_PCCARD)
> +#define IO_SPACE_LIMIT ((resource_size_t)0xffff)
> +#else
> +#define IO_SPACE_LIMIT ((resource_size_t)0)
> +#endif
> +#endif

Good idea. The related change that I want to do is to conditionalize
all drivers that require PC-style I/O on the respective bus they
use, so we can also remove the __io macro for platforms that don't
need it and catch all drivers using inb/outb at compile time.

To do that, I'm working on a patch set that splits the 8250
driver into separate parts for platform drivers (mostly MMIO)
and ISA drivers (mostly PIO), since that seems to be the only
driver that we need on non-PIO platforms that uses inb/outb
directly.

	Arnd

  reply	other threads:[~2011-07-06 12:42 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 [this message]
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
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=201107061442.05182.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.