diff options
| author | Mark A. Greer <mgreer@mvista.com> | 2005-01-14 23:41:49 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-01-14 23:41:49 -0800 |
| commit | ab0ef3e9429172af3c727890e6af9efba68e916a (patch) | |
| tree | b4f4a567c3087579aa96033de8942200800cad3e /include/linux | |
| parent | 74ef102626b2c96d314be32e5e96fcb2e82af133 (diff) | |
[PATCH] serial: MPSC driver
Patch for the Marvell MultiProtocol Serial Controller (MPSC). This ctlr is
on a series of host bridges (and other things) for PPC and MIPS processors.
The ctlr operates similar to a typical network controller with send and
receive rings. Unfortunately there are many errata so you will see some
"unusual" things in the code. For example: a) An erratum prevents the
reading of several registers on the ctlr (writing is okay). To work around
that, a local copy of what the registers are is kept and special macros are
used to access those mirrored values. b) Another erratum says that the
MPSC cannot be used to access cache coherent memory (and many of the
systems I use are cache coherent). However, it seems to work okay as long
as there are no snoop hits so there are macros in the code to manually
manage the caches to prevent snoop hits. Each macro checks a flag to see
if the manual cache mgmt is necessary as not all versions have the erratum.
The driver seems to work well but more testing is needed and it is lacking
KGDB support. I will get to both of those in time.
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/serial_core.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 9666c572f65b..84d80cfe7b41 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -100,6 +100,9 @@ /* Motorola i.MX SoC */ #define PORT_IMX 62 +/* Marvell MPSC */ +#define PORT_MPSC 63 + #ifdef __KERNEL__ #include <linux/config.h> |
