On Wednesday, February 22, 2012 7:58:43 am Milan Obuch wrote: > On Tue, 21 Feb 2012 23:15:35 +0100 > Milan Obuch <[email protected]> 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.
Hmm, ok. Unfortunately there are other devices that need the commented out entry. I've sent a followup to that original PR to see if that device has a subvendor device ID. -- John Baldwin _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hardware To unsubscribe, send any mail to "[email protected]"
