Date: Wed, 22 Feb 2012 13:58:43 +0100 From: Milan Obuch <freebsd-hardware@dino.sk> To: freebsd-hardware@freebsd.org Subject: Re: PER-C40C minipci card under FreeBSD Message-ID: <20120222135843.7b3693ff@atom.dino.sk> In-Reply-To: <20120221231535.641419b1@atom.dino.sk> References: <20120220220237.7474cc1e@atom.dino.sk> <20120221124333.0e8a9763@atom.dino.sk> <20120221231535.641419b1@atom.dino.sk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 21 Feb 2012 23:15:35 +0100 Milan Obuch <freebsd-hardware@dino.sk> wrote: [ snip ] > After consulting datasheet, I found this part of pucdata.c looks > erroneously to me: > > { 0x1415, 0x9511, 0xffff, 0, > "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)", > DEFAULT_RCLK, > PUC_PORT_4S, 0x10, 0, 8, > }, > > Function 1 is actually local bus/parallel port, and this could really > be the reason for hang I observed. Comparing what I found in datasheet > with other entries I found replacing above entry with > > { 0x1415, 0x9505, 0xffff, 0, > "Oxford Semiconductor OXuPCI952 UARTs (function 0)", > DEFAULT_RCLK, > PUC_PORT_2S, 0x10, 4, 0, > }, > > makes me happier, I see some well looking lines in console log: > > puc0: <Oxford Semiconductor OXuPCI952 UARTs (function 0)> port > 0x1400-0x1407,0x1440-0x1447,0x1480-0x1487,0x14c0-0x14c7,0x1800-0x181f > mem 0xe0040000-0xe0040fff irq 9 at device 12.00 > uart1: <16550 or compatible> at port 1 on puc0 > uart1: fast interrupt > uart2: <16550 or compatible> at port 2 on puc0 > uart2: fast interrupt > [ snip ] This is final patch which works for me: --- pucdata.c.orig 2012-02-21 16:47:33.000000000 +0100 +++ pucdata.c.patched 2012-02-22 12:10:44.000000000 +0100 @@ -696,6 +696,12 @@ PUC_PORT_4S, 0x10, 0, 8, }, + { 0x1415, 0x9505, 0xffff, 0, + "Oxford Semiconductor OXuPCI952 UARTs (function 0)", + DEFAULT_RCLK * 8, + PUC_PORT_2S, 0x10, 4, 0, + }, + { 0x1415, 0x950a, 0x131f, 0x2030, "SIIG Cyber 2S PCIe", DEFAULT_RCLK * 10, @@ -708,11 +714,13 @@ PUC_PORT_4S, 0x10, 0, 8, }, +#if 0 { 0x1415, 0x9511, 0xffff, 0, "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)", DEFAULT_RCLK, PUC_PORT_4S, 0x10, 0, 8, }, +#endif { 0x1415, 0x9521, 0xffff, 0, "Oxford Semiconductor OX16PCI952 UARTs", pciconf -lv tells following about card functions: puc0@pci0:0:12:0: class=0x070006 card=0x00001415 chip=0x95051415 rev=0x01 hdr=0x00 vendor = 'Oxford Semiconductor Ltd' device = 'OXuPCI952 (Dual 16C950 UART)' class = simple comms subclass = UART none1@pci0:0:12:1: class=0x068000 card=0x00001415 chip=0x95111415 rev=0x01 hdr=0x00 vendor = 'Oxford Semiconductor Ltd' device = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)' class = bridge This patch works for me on both 10-CURRENT and 8.3-PRERELEASE. Regards, Milan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120222135843.7b3693ff>