Skip site navigation (1)Skip section navigation (2)
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>