Date: Mon, 26 Dec 2011 19:55:06 -0700 From: Warner Losh <imp@bsdimp.com> To: "Dieter BSD" <dieterbsd@engineer.com> Cc: freebsd-drivers@freebsd.org Subject: Re: Attempting to add support for RS-232 card, need help Message-ID: <528929DF-FE2C-4A13-B67A-A6B22894607B@bsdimp.com> In-Reply-To: <20111226014313.218240@gmx.com> References: <20111226014313.218240@gmx.com>
next in thread | previous in thread | raw e-mail | index | archive | help
You may need to adjust the RCLK for this device. The rest looks = correct... Warner On Dec 25, 2011, at 6:43 PM, Dieter BSD wrote: > I am attempting to add support for a PCI RS-232 card. >=20 > http://www.newegg.com/Product/Product.aspx?Item=3DN82E16815124082 >=20 > "PCI two serial ports card with SystemBase Chipset SB16C1052PCI > Easy Plug & installation automatically selects IRQ and I/O address > Fully compliant with PCI Local Bus Specification Revision 2.3 > Supports PCI power management Supports PCI IRQ sharing > feature, saves valuable resources for other add-on cards Compatible > with industrial standard 16C550 UART On-chip" >=20 > FreeBSD 8.2 > amd64 >=20 > pciconf says: > none5@pci0:1:10:0: class=3D0x070002 card=3D0x4d0214a1 chip=3D0x4d0214a1 = rev=3D0xb0 hdr=3D0x00 > vendor =3D 'Systembase Co Ltd' > class =3D simple comms > subclass =3D UART > bar [10] =3D type I/O Port, range 32, base 0xa400, size 16, = enabled > bar [14] =3D type I/O Port, range 32, base 0xa000, size 64, = enabled > cap 01[40] =3D powerspec 3 supports D0 D3 current D0 >=20 > Adding the following to pucdata.c gets it partly working >=20 > { 0x14a1, /* vendor - card vendor ID */ > 0x4d02, /* device - card ID */ > 0x14a1, /* subvendor - card vendor ID */ > 0x4d02, /* subvendor - card ID */ > "Systembase Co Ltd", /* desc */ > DEFAULT_RCLK, /* clock */ > PUC_PORT_2S, /* number of ports */ > 0x10, /* rid - Rid of first port */ > 0, /* d_rid - Delta rid of next ports = */ > 8, /* d_ofs - Delta offset of next = ports */ > /* config_function */ > }, >=20 > <Systembase Co Ltd> port 0xa400-0xa40f,0xa000-0xa03f irq 17 at device = 10.0 on pci1 > puc0: DEBUG puc.c puc_get_bar(rid=3D16) Get an unused entry for us to = fill. > puc0: DEBUG puc.c puc_get_bar(rid=3D-1) found BAR entry > puc0: DEBUG puc.c puc_get_bar(rid=3D16) returning = bar=3D0xffffff0001c7b418 > puc0: DEBUG puc.c puc_get_bar(rid=3D16) found BAR entry > puc0: [FILTER] > uart2: DEBUG rx fifo count =3D 64 > uart2: DEBUG rx fifo count =3D 64 > <16750 or compatible> on puc0 > uart2: [FILTER] > uart3: DEBUG rx fifo count =3D 64 > uart3: DEBUG rx fifo count =3D 64 > <16750 or compatible> on puc0 > uart3: [FILTER] >=20 > devinfo says: > puc0 pnpinfo vendor=3D0x14a1 device=3D0x4d02 = subvendor=3D0x14a1 subdevice=3D0x4d02 class=3D0x070002 at slot=3D10 = function=3D0 > Interrupt request lines: > 17 > I/O ports: > 0xa400-0xa40f > uart2 > puc0 I/O port mapping: > 41984-41991 > puc0 port numbers: > 1 > uart3 > puc0 I/O port mapping: > 41992-41999 > puc0 port numbers: > 2 >=20 > cu to the port toggles RTS and DTR. And they go back when exiting cu. > But if I connect the port to another system (CTS on, CD off), then > cu hangs when exiting so I have to kill the process. Also, no data > is transmitted or received, not even garbled data from an incorrect > baud rate, the TD LED doesn't flicker. The fifo is supposed to be > 256 bytes but the kernel says 64 (see above debugging printf output). >=20 > The mainboard's 2 RS-232 ports work fine. >=20 > Is puc the correct driver for this card? > Do I need a config_function? > What does [FILTER] (in dmesg) mean? > _______________________________________________ > freebsd-drivers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-drivers > To unsubscribe, send any mail to = "freebsd-drivers-unsubscribe@freebsd.org" >=20 >=20
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?528929DF-FE2C-4A13-B67A-A6B22894607B>