[PATCH] Add support for Exar XR17V358IV to puc(4)
Ryan Stone
rysto32 at gmail.com
Wed Mar 13 17:51:17 UTC 2013
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 at 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)
{
More information about the freebsd-current
mailing list