Re: fixing a PUC / uart speed issue
On Mar 24, 2007, at 5:41 AM, Mike Tancsa wrote: At 02:10 AM 3/24/2007, Marcel Moolenaar wrote: Try changing the frequency from COM_FREQ to (4 * COM_FREQ). The HTH, Thanks, it fixed it! BTW, would this be for all such cards with this PCI ID ? If so, should I file a PR ? If not, apart from keeping a private set of patches, whats the best way to work around this with each cvsup / buildworld ? Well, the clock frequency used to feed the UART is really a property of the add-in card, not of the chipset (Oxford in this case). While many PCI cards have the vendor ID and device ID of the Oxford chipset (and its manufacturer), it doesn't really help us to identify the particular add-in card. IIRC, the sub-vendor and sub-device IDs are all zeroes in your case. I doubt that we can use that to match the actual add-in card and therefore use a 4x clock. Other cards exist that are based on the Oxford chipset that use different clocks and if they too have a sub-device or sub-vendor ID of all zeroes, then there's still a conflict. Maybe it's worthwhile to detect the clock frequency by programming the UART for a fixed baudrate and then checking (using loopback) how fast characters are being transmitted. Based on that it should be possible to determine the right frequency. Alternatively, we could also just use hints. In any case: changing the entry in puc(4) will likely break some other card, so that not a good idea. FYI, -- Marcel Moolenaar [EMAIL PROTECTED] ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: fixing a PUC / uart speed issue
At 02:10 AM 3/24/2007, Marcel Moolenaar wrote: Try changing the frequency from COM_FREQ to (4 * COM_FREQ). The HTH, Thanks, it fixed it! BTW, would this be for all such cards with this PCI ID ? If so, should I file a PR ? If not, apart from keeping a private set of patches, whats the best way to work around this with each cvsup / buildworld ? ---Mike ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: fixing a PUC / uart speed issue
On Mar 23, 2007, at 9:49 PM, Mike Tancsa wrote: Hi, I have a mini-pci UART that has a problem with its speed. When I connect to it at 300bps the other side sees this as 1200. e.g. Other PC PUC device 4800 1200 9600 2400 19200 4800 *snip* I am guessing something needs to be changed in the puc driver for it ? /* Oxford Semiconductor OX16PCI954 PCI UARTs */ { "Oxford Semiconductor OX16PCI954 UARTs", { 0x1415, 0x9501, 0, 0 }, { 0x, 0x, 0, 0 }, { { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, }, }, but what ? Try changing the frequency from COM_FREQ to (4 * COM_FREQ). The frequency is driving the baudrate generator and given that the baudrate is off by a factor of 4, it follows that we program the baudrate generator with a divisor that corresponds to a frequency that's off by a factor of 4 as well. HTH, -- Marcel Moolenaar [EMAIL PROTECTED] ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"
fixing a PUC / uart speed issue
Hi, I have a mini-pci UART that has a problem with its speed. When I connect to it at 300bps the other side sees this as 1200. e.g. Other PC PUC device 4800 1200 9600 2400 19200 4800 Its a mini-pci card on a soekris 4511 and dmesg on a RELENG_6 box shows puc0: port 0xe000-0xe01f,0xe020-0xe03f mem 0xa000-0xafff,0xa0001000-0xa0001fff irq 10 at device 16.0 on pci0 uart4: <16950 or compatible> on puc0 uart5: <16950 or compatible> on puc0 uart6: <16950 or compatible> on puc0 uart7: <16950 or compatible> on puc0 [EMAIL PROTECTED]:16:0: class=0x070006 card=0x chip=0x95011415 rev=0x00 hdr=0x00 vendor = 'Oxford Semiconductor Ltd' device = 'OX16PCI954 Quad UART' class = simple comms subclass = UART cap 01[40] = powerspec 1 supports D0 D2 D3 current D0 [EMAIL PROTECTED]:16:1:class=0x068000 card=0x chip=0x95101415 rev=0x00 hdr=0x00 vendor = 'Oxford Semiconductor Ltd' device = 'OX16PCI954 PCI Interface (disabled)' class = bridge cap 01[40] = powerspec 1 supports D0 D2 D3 current D0 product specs at http://www.commell.com.tw/Product/Peripheral/MiniPCI/MP-954.HTM I am guessing something needs to be changed in the puc driver for it ? /* Oxford Semiconductor OX16PCI954 PCI UARTs */ { "Oxford Semiconductor OX16PCI954 UARTs", { 0x1415, 0x9501, 0, 0 }, { 0x, 0x, 0, 0 }, { { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, }, }, but what ? Other than this odd speed issue, the card seems to work fine. Any pointers appreciated. Thanks, ---Mike Mike Tancsa, tel +1 519 651 3400 Sentex Communications,[EMAIL PROTECTED] Providing Internet since 1994www.sentex.net Cambridge, Ontario Canada www.sentex.net/mike ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"