From: "Stuart MacDonald" <stuartm@connecttech.com>
To: "'Rob Prowel'" <prowel@kuchera.com>,
<linux-kernel@vger.kernel.org>, <rmk+lkml@arm.linux.org.uk>
Subject: RE: questions about 8250 uart support for adhoc boards
Date: Sat, 24 Feb 2007 15:34:54 -0500 [thread overview]
Message-ID: <000001c75853$3e9599f0$294b82ce@stuartm> (raw)
In-Reply-To: <45DF531B.5090505@kuchera.com>
From: On Behalf Of Rob Prowel
> Russell King wrote:
> > You don't even need to do that. Just configure SERIAL_8250_NR_UARTS
> > and SERIAL_8250_RUNTIME_UARTS appropriately for your
> system. There's
> > absolutely no need to build any of the additional modules.
> >
> Unfortunately what I'm seeing in 2.6.20.1 seems to differ
> from this. If
PC104 is really an ISA bus. The ISA ports are stored in a table in the
8250 driver (instead of allocated dynamically like PCI ports); the
config option _NR_UARTS just tells the driver how large to make the
table.
> I use the options below:
>
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SERIAL_8250_PCI=y
> CONFIG_SERIAL_8250_NR_UARTS=32
This makes the internal table be 32 ports big. The first four ports
end up configured for legacy/standard com ports, the rest are
unconfigured. You should be able to see them as unknowns with
setserial.
> CONFIG_SERIAL_8250_RUNTIME_UARTS=16
> CONFIG_SERIAL_8250_EXTENDED=y
> CONFIG_SERIAL_8250_MANY_PORTS=y
> # CONFIG_SERIAL_8250_FOURPORT is not set
All _FOURPORT does is specifically config ports 4-7 in the table to
have specific address/irqs for the FourPort board. What you do with
setserial is then change that config info to match your board.
You shouldn't need to do this, and I quickly reviewed 2.6.20.1 and it
looks like you don't. As long as _NR_UARTS is big enough, thus making
the internal table big enough, you should be able to configure, with
setserial, any of the ports in the table, including the first four.
> Then I can only access ttyS0 through ttyS3 sith setserial.
> Only after I add
> CONFIG_SERIAL_8250_FOURPORT=y am I actually able to do
> anything with the
> additional ports. I would otherwise get the evil setserial: invalid
> parameter error.
Very odd. You get this error when doing "setserial /dev/ttySxx", no
configuration? If so, that would imply that the table wasn't made big
enough, and the unconfigured ports haven't been registered with the
serial core.
> OK. Fair enough. My question then becomes, how does the driver deal
> with this now? scan all applicable uarts when any relevant
> interrupt is
> detected (as identified in setserial)?
With our boards, the multiport is just a status register; it shows
which port has produced the interrupt, so the driver doesn't have to
loop through all the ports on the board looking for the correct one.
It doesn't actually enable/disable the sharing of the interrupt. The
setting of "irq 12" on multiple ports (from your original post) is
what enables the sharing, from the driver-side view. Maybe your
hardware is unusual and requires this ISR port to be set properly to
enable sharing; more likely is that the board itself has one or more
jumpers to set which interrupt it's using, and that's what enables the
sharing from the hardware-side view.
If I get some time tomorrow, I'll set up 2.6.20.1 and see what the
current options are doing.
If you can't get your board working, we have similar boards that do.
..Stu
--
We make multiport serial products.
http://www.connecttech.com/
(800) 426-8979
next prev parent reply other threads:[~2007-02-24 20:37 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-23 17:05 questions about 8250 uart support for adhoc boards Rob Prowel
2007-02-23 20:21 ` Russell King
2007-02-23 20:48 ` Rob Prowel
2007-02-24 20:34 ` Stuart MacDonald [this message]
2007-02-26 17:02 ` Rob Prowel
2007-02-26 18:05 ` Russell King
2007-02-27 14:24 ` Rob Prowel
2007-02-27 17:38 ` Russell King
2007-02-27 19:06 ` Stuart MacDonald
2007-02-27 20:40 ` Rob Prowel
2007-03-08 15:16 ` Russell King
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='000001c75853$3e9599f0$294b82ce@stuartm' \
--to=stuartm@connecttech.com \
--cc=linux-kernel@vger.kernel.org \
--cc=prowel@kuchera.com \
--cc=rmk+lkml@arm.linux.org.uk \
/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.