History log of /arch/sh/kernel/machvec.c
Revision Date Author Comments
63dc02bde6af1e41d28ebc3774c5f094f362e8c3 21-May-2012 Paul Mundt <lethal@linux-sh.org> sh: Kill off machvec IRQ hinting.

Everything is using sparseirq these days, so we have no need to
arbitrarily size nr_irqs ahead of time. The legacy IRQ pre-allocation
likewise has no meaning for us, so that's killed off too. We now depend
on nr_irqs expansion by the generic hardirq layer instead.

It's also worth noting that the majority of boards had completely bogus
values for their nr_irqs relative to their CPU and configurations, so
this ends up correcting behaviour for quite a few platforms.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
37b7a97884ba64bf7d403351ac2a9476ab4f1bba 01-Nov-2010 Paul Mundt <lethal@linux-sh.org> sh: machvec IO death.

This takes a bit of a sledgehammer to the machvec I/O routines. The
iomem case requires no special casing and so can just be dropped
outright. This only leaves the ioport casing for PCI and SuperIO
mangling. With the SuperIO case going through the standard ioport
mapping, it's possible to replace everything with generic routines.

With this done the standard I/O routines are tidied up and NO_IOPORT
now gets default-enabled for the vast majority of boards.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
86e4dd5add77ab809f5427391dfabb8f78cbcb58 25-May-2010 Paul Mundt <lethal@linux-sh.org> sh: support for platforms without PIO.

This extends some of the existing special casing for HAS_IOPORT
platforms and gets it to the point where platforms can begin to
conditionally select it.

The major changes here are that the PIO routines themselves go away
completely, including all of the machvec port mapping wrappers. With this
in place it's possible for any non-machvec abusing platform to disable
PIO completely. At present this is left as an opt-in until the abusers
are the odd ones out instead of the majority.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
19d8f84f86af867abee174be8bf1e4941a59143d 10-May-2010 Paul Mundt <lethal@linux-sh.org> sh: enable LMB region setup via machvec.

This plugs in a memory init callback in the machvec to permit boards to
wire up various bits of memory directly in to LMB. A generic machvec
implementation is provided that simply wraps around the normal
Kconfig-derived memory start/size.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
e9c58fc57b17bfa75c256fb4f45ce22de6626858 12-Nov-2009 Paul Mundt <lethal@linux-sh.org> sh: Use the generic I/O port base for slowdown.

This fixes up the build and behaviour for various configurations. Namely
the CONFIG_32BIT cases where legacy mappings do not exist, as well as the
sh64 build.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
d44ee12ad61ff7aa7a6344560bd430cb72fcbc27 28-Sep-2009 Paul Mundt <lethal@linux-sh.org> sh: Set the default I/O port base to P2SEG.

This bumps up the default I/O base to P2SEG, which allows legacy probing
to bail out gracefully rather than oopsing. Platforms that have a real
PIO offset still need to fix this up on their own, although most
platforms are content with P2SEG already.

The previous change to teach ioport_map() about >= P1SEG offsets in
combination with this patch allows both the already remapped and the
legacy address probing to pass through and succeed.

Fixes up an oops with i8042 on the sh7785lcr board.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
eb9b9b56eed280e65a9e194aaeb50a5a75111859 28-May-2009 Magnus Damm <damm@igel.co.jp> sh: boot word / mode pin support V2

Add mode pin support for the SuperH architecture V2.

With this patch applied the board code can add their
own function to export the cpu mode pin configuration.
In most cases this will be a constant bitmap, but
boards that allow reading this from a register can
instead read out the pin state from hardware.

The code warns if a pin is tested but no board specific
mode pin function has been provided.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
14866543ad22014a0b12e10657a917eb6b487248 03-Oct-2008 Paul Mundt <lethal@linux-sh.org> sh: More I/O routine overhauling.

This tidies up a lot of the PIO/MMIO split. No in-tree platforms were
making use of the MMIO overloading through the machvec (nor have any of
them been in some time), so we just kill all of that off. The ISA I/O
routine wrapping remains unaffected, which remains the only special
casing outside of the iomap API that boards need to think about.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
fa43972fab24a3c050e880a7831f9378c6cebc0b 04-Sep-2008 Paul Mundt <lethal@linux-sh.org> sh: fixup many sparse errors.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
5556410e2203877e7606bb1008f2e024fe87953a 07-Aug-2007 Paul Mundt <lethal@linux-sh.org> sh: panic on machvec section misalignment.

Now that __initmv references the machvec section unconditionally
there have been cases where folks have been mistakenly flagging
non-machvec structures with the machvec section attribute (presumably
to shut up modpost). This leads to obscure breakage in earlyprintk
amongst other places and is rather non-obvious.

Add a simple sanity check to try and catch __initmv misuse and
panic early.

Reported-by: Markus Brunner <super.firetwister@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
fd8f20e8e2f8f1d9201086bff444c8d35f0a6a45 15-May-2007 Paul Mundt <lethal@linux-sh.org> sh: Rip out special unknown machvec.

This kills off the BareCPU board as a "special" machvec, rather,
we leave this as a default for when no other vector is available,
or when we want to use it in combination with other vectors for
testing with generic ops. As sh_mv is copied out anyways (or
overloaded when an alternate vector is explicitly selected), this
doesn't consume any additional memory.

The generic machvec can be forcibly selected with sh_mv=generic,
or by not having any other boards enabled.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
82f81f4784479df17a80caff4a7156da0a2f7dea 15-May-2007 Paul Mundt <lethal@linux-sh.org> sh: Kill off machvec aliases.

We now throw all of the machvecs in to .machvec.init and either
select one on the command line, or copy out the first (and
usually only) one to sh_mv. The rest are freed as usual.

This gets rid of all of the silly sh_mv aliasing and makes the
selection explicit rather than link-order dependent.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
9655ad03af2d232c3b26e7562ab4f8c29b107e49 14-May-2007 Paul Mundt <lethal@linux-sh.org> sh: Fixup machvec support.

This fixes up much of the machvec handling, allowing for it to be
overloaded on boot. Making practical use of this still requires
some Kconfig munging, however.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>