puc support for a generic card (patch attached)

Navdeep Parhar nparhar at gmail.com
Mon Mar 2 13:34:39 PST 2009


This may interest puc and uart maintainers.

I needed an extra serial port on my FreeBSD machine and bought a
store-branded "1-Port Serial PCI Adapter" from a local computer
store.

This is what pciconf shows:
puc0 at pci0:4:1:0: class=0x070002 card=0x00011000 chip=0x98359710
rev=0x01 hdr=0x00

And here's what puc identified it as:
puc0: <NetMos NM9835 Dual UART and 1284 Printer port> port
0xec00-0xec07,0xe480-0xe487,0xe400-0xe407,0xe080-0xe087,0xe000-0xe007,0xdc00-0xdc0f
irq 16 at device 1.0 on pci4

Visual inspection shows the card has missing circuitry and headers
for the extra serial and parallel port that the chip supports.  puc
gave me 2 serial port and 1 parallel port devices for the card, and
none of them would work (not even the first serial port device).

I had to tweak pucdata.c to get the card working.  Patch against
HEAD is attached, and also pasted at the end of this email (in case
this list drops attachements).

Regards,
Navdeep

diff -r 025cb00d19d7 sys/dev/puc/puc.c
--- a/sys/dev/puc/puc.c	Sat Feb 28 12:42:37 2009 -0800
+++ b/sys/dev/puc/puc.c	Mon Mar 02 12:21:07 2009 -0800
@@ -440,9 +440,6 @@
 	sc->sc_dev = dev;
 	sc->sc_cfg = cfg;

-	/* We don't attach to single-port serial cards. */
-	if (cfg->ports == PUC_PORT_1S || cfg->ports == PUC_PORT_1P)
-		return (EDOOFUS);
 	error = puc_config(sc, PUC_CFG_GET_NPORTS, 0, &res);
 	if (error)
 		return (error);
diff -r 025cb00d19d7 sys/dev/puc/pucdata.c
--- a/sys/dev/puc/pucdata.c	Sat Feb 28 12:42:37 2009 -0800
+++ b/sys/dev/puc/pucdata.c	Mon Mar 02 12:21:07 2009 -0800
@@ -761,6 +761,12 @@
 	    PUC_PORT_2P, 0x10, 8, 0,
 	},

+	{   0x9710, 0x9835, 0x1000, 1,
+	    "NetMos NM9835 based 1-port serial",
+	    DEFAULT_RCLK,
+	    PUC_PORT_1S, 0x10, 4, 0,
+	},
+
 	{   0x9710, 0x9835, 0xffff, 0,
 	    "NetMos NM9835 Dual UART and 1284 Printer port",
 	    DEFAULT_RCLK,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: puc.patch
Type: application/octet-stream
Size: 896 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20090302/ad791835/puc.obj


More information about the freebsd-hackers mailing list