[parisc-linux] serial baud_base, high baud rates and divisors

Enrik Berkhan Enrik.Berkhan@planb.de
Fri, 8 Feb 2002 12:14:05 +0100

On Thu, Feb 07, 2002 at 09:31:07AM -0700, Grant Grundler wrote:
> > - get/set_serial_info have to be enhanced for memory mapped ports
> > - setserial should be enhanced accordingly
> If other non-intel architectures don't have a solution for this.
> My first thought was to assign fake port addresses.

Looks like most other architectures have their own code even when
using 16450 like UARTs (e.g. arch/mips/au1000/common/serial.c).
Especially set_serial_info is architecture dependent, because it just
doesn't make much sense to fiddle with irq and port settings on
parisc, does it? Faking port adresses could be a workaround, but it's
not clean as it might make the ports show up in /proc/ioports ...

But enhancing the test for doubly assigned ports to

      if ((rs_table[i].port == port) &&
          (rs_table[i].iomem_base == req->iomem_base))

might be ok. This code can be found in register_serial().

BTW, drivers/gsc/serial.c does no request_mem_region(). Is this in-

> Do PCI serial cards also use MMIO?

I don't know.

> > - baud_base should be initialized correctly for other gsc based ports.
> We'd have to dig a bit for documentation on this.
> Please poke me offline if that doesn't happen in the next week or so.

The hardball ers states a 7.3728MHz (== 16 * 460800) baud rate clock,
which confirms the output of my DMM. So we would need a table holding
the baud_base for each device?

Enrik Berkhan                                         plan b. GmbH
                                                      Rüppurrer Straße 4
+49-721-388582 (voice)                                76137 Karlsruhe
+49-721-388581 (fax)                                  Germany