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>