Re: [patch] Support for 3Com PCI modem + Generic PCI serials

From: Vojtech Pavlik (vojtech@suse.cz)
Date: Thu Jan 20 2000 - 04:18:45 EST


On Thu, Jan 20, 2000 at 12:29:51AM -0500, tytso@MIT.EDU wrote:

> It's available, but it's often not useful. Even on single port boards,
> the I/O region that's reported is typically 0x100 long. So all you
> could is probe the entire region every 8 blocks, and hope that you don't
> hit anything sensitive. If the NSA "super secure crypto" modem had in
> somewhere else in the I/O window a port which cause the thermit charge
> to go off, well.... :-)

As said before, the i/o probe isn't that intrusive, and tries to back
off as soon as the thermit charge becomes warm ...

> udelay() doesn't work; you'd have to use TSC and hope that you've
> accurately measured the clock crystal.

udelay() could work by eg setting an irq routine than upon receipt of a
char sends another, and enabling loopback mode. Then by counting how
many times the irq is called during some time interval, measured by
udelay(). This is pretty clumsy, though.

> Measuring base_baud is possible, but it's a major complication.
> Probably the thing to do is to add an ioctl which turns on loopback
> mode (actually, probably we could use an extra bit out of TIOCMSET), and
> then let that be a user mode thing to deal with. If we can't get the
> accuracy we need in user mode, we can try doing it in kernel mode, but
> I'm not that thrilled to put that much complexity in the kernel.

I'm not sure how much precision we can get in userland. On the other
hand, this might be an interesting feature.

> (If you don't think it's too complicated for the kernel, send me a
> patch, and I'll take a look at....)

Guess I'll have to try sometime. :)

> Yup,that's the problem. It's also a pain to implement, and I'm not sure how
> useful it will be in the long run. But we'll see; as said, having to
> build a table for every single PCI serial/modem board also isn't
> pretty. So the alternative isn't pretty either.

* The question is: Are there any PCI serial cards, that say 'serial *
* controller' as class, '16550' as prog-if, and don't have a single *
* 16550-like interface on each of their i/o address regions and base-baud *
* of 115200? *

I think there are not any such beasts, but it has to be proven by evidence.
(As said before, the base baud condition isn't that importand.)

So, if no, all these cards can be treated as generic-pci-serials. I
think all other cards can be handled by the table, because they are not
going to be that numerous, hopefully.

-- 
Vojtech Pavlik
SuSE Labs

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jan 23 2000 - 21:00:22 EST