Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Mar 2013 13:29:27 -0400
From:      Ryan Stone <rysto32@gmail.com>
To:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   [PATCH] Add support for Exar XR17V358IV to puc(4)
Message-ID:  <CAFMmRNzJcMTb-FchJ1kU=VZJXTEwqLwKBhFQ0bb6KN5BXSAr5Q@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I've implemented support for Exar XR17V358IV 8-port UARTs.  These are quite
similar to previous Exar UARTs, with the notable exception of the strange
125MHz clock.  I've done some basic testing using it as a tty at 9600 baud
and 115200 baud, but nothing really extensive.  I can't seem to find any
tools for stressing out serial ports.  I'm not sure if anybody has any
suggestions for this.

I plan to commit this within a couple of days if nobody has any
objections.  I'll try to get it MFC'ed for 8.4-RELEASE,

The patch can be found here:
http://people.freebsd.org/~rstone/patches/exar_358.diff

I've also included it inline in case anybody wants to review it:

commit d1da80b5c90b3ae5a44db165cb032e9e86d2c804
Author: Ryan Stone <rstone@FreeBSD.org>
Date:   Mon Mar 11 17:02:13 2013 -0400

    add support for Exar XR17V358IV 8-port serial port to puc(4)

diff --git a/sys/dev/puc/pucdata.c b/sys/dev/puc/pucdata.c
index 6d933e8..34d6986 100644
--- a/sys/dev/puc/pucdata.c
+++ b/sys/dev/puc/pucdata.c
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
 static puc_config_f puc_config_amc;
 static puc_config_f puc_config_diva;
 static puc_config_f puc_config_exar;
+static puc_config_f puc_config_exar_pcie;
 static puc_config_f puc_config_icbook;
 static puc_config_f puc_config_moxa;
 static puc_config_f puc_config_oxford_pcie;
@@ -630,6 +631,13 @@ const struct puc_cfg puc_pci_devices[] = {
            PUC_PORT_8S, 0x10, 0, -1,
        },

+       {   0x13a8, 0x0358, 0xffff, 0,
+           "Exar XR17V358IV",
+           125000000,
+           PUC_PORT_8S, 0x10, 0, -1,
+           .config_function = puc_config_exar_pcie
+       },
+
        {   0x13fe, 0x1600, 0x1602, 0x0002,
            "Advantech PCI-1602",
            DEFAULT_RCLK * 8,
@@ -1186,6 +1194,17 @@ puc_config_exar(struct puc_softc *sc, enum
puc_cfg_cmd cmd, int port,
 }

 static int
+puc_config_exar_pcie(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port,
+    intptr_t *res)
+{
+       if (cmd == PUC_CFG_GET_OFS) {
+               *res = port * 0x400;
+               return (0);
+       }
+       return (ENXIO);
+}
+
+static int
 puc_config_icbook(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port,
     intptr_t *res)
 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFMmRNzJcMTb-FchJ1kU=VZJXTEwqLwKBhFQ0bb6KN5BXSAr5Q>