Date: Thu, 11 Dec 2008 03:02:42 +0300 From: Boris Samorodov <bsam@ipt.ru> To: rea-fbsd@codelabs.ru Cc: freebsd-current@FreeBSD.org Subject: Re: Timeda 8-multiport adapter: only 2 ports available Message-ID: <26719629@bb.ipt.ru> In-Reply-To: <dgryeQY4GEVsW/%2Bo7hiHda0rsyw@Nv45r0f9gWT8HCu35qu0Xm2Zg98> (Eygene Ryabinkin's message of "Wed\, 10 Dec 2008 18\:38\:00 %2B0300") References: <92804393@bb.ipt.ru> <26722819@bb.ipt.ru> <dgryeQY4GEVsW/%2Bo7hiHda0rsyw@Nv45r0f9gWT8HCu35qu0Xm2Zg98>
next in thread | previous in thread | raw e-mail | index | archive | help
Eygene Ryabinkin <rea-fbsd@codelabs.ru> writes: > Boris, good day. > > Wed, Dec 10, 2008 at 05:13:48PM +0300, Boris Samorodov wrote: >> Boris Samorodov <bsam@ipt.ru> writes: >> >> > I've got a Sunix PCI Serial 8-channel Multiport adapter (Timedia chipset): >> > ----- >> > puc0@pci0:5:2:0: class=0x070002 card=0x40661409 chip=0x71681409 rev=0x01 hdr=0x00 >> > vendor = 'Timedia Technology Co Ltd' >> > device = '40371409 PCI / ISA Asynchronous UART Signal Chips Solution' >> >> Actually the card is 4066, while 4037 (according to pucdata.c) is indeed >> a dual-port card. May be the card is wrongly interpreted by the OS? > > pciconf just don't know about 4066, so is prints what it has in the > database. This is irrelevant to the driver -- it discovers the correct > chip with 8 ports: > >> > puc0: <Timedia technology 8 Port Serial> port 0xec00-0xec1f,0xe880-0xe88f,0xe800-0xe807,0xe480-0xe487,0xe400-0xe407,0xe080-0xe087 irq 18 at device 2.0 on pci5 >> > puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0xec00 >> > puc0: Reserved 0x10 bytes for rid 0x14 type 4 at 0xe880 >> > puc0: Reserved 0x8 bytes for rid 0x18 type 4 at 0xe800 >> > puc0: Reserved 0x8 bytes for rid 0x1c type 4 at 0xe480 >> > puc0: Reserved 0x8 bytes for rid 0x20 type 4 at 0xe400 >> > puc0: Reserved 0x8 bytes for rid 0x24 type 4 at 0xe080 >> > puc0: [FILTER] >> > uart4: <16550 or compatible> on puc0 >> > uart4: [FILTER] >> > uart4: fast interrupt >> > uart5: <16550 or compatible> on puc0 >> > uart5: [FILTER] >> > uart5: fast interrupt >> > ----- > > Judging by this output, the 6 ports that got their reservations at > dev/pci/pci.c are the ones that aren't recognized by uart. You may need > to add trace printfs to uart_puc_probe (uart_bus_puc.c) and to > uart_bus_probe (uart_core.c), just around the register resource > allocator. This should show what devices are passed to the probe > routines and which are rejected. Be sure to include 'rid' values to > your debug output to get the idea what ports we're speaking about. Seems that just the same card should work: http://lists.freebsd.org/pipermail/freebsd-stable/2008-May/042505.html I've added some diagnistic. But 'rid' is not what you want, I guess: ----- puc0: <Timedia technology 8 Port Serial> port 0xec00-0xec1f,0xe880-0xe88f,0xe800-0xe807,0xe480-0xe487,0xe400-0xe407,0xe080-0xe087 irq 18 at device 2.0 on pci5 puc0: Reserved 0x20 bytes for rid 0x10 type 4 at 0xec00 puc0: Reserved 0x10 bytes for rid 0x14 type 4 at 0xe880 puc0: Reserved 0x8 bytes for rid 0x18 type 4 at 0xe800 puc0: Reserved 0x8 bytes for rid 0x1c type 4 at 0xe480 puc0: Reserved 0x8 bytes for rid 0x20 type 4 at 0xe400 puc0: Reserved 0x8 bytes for rid 0x24 type 4 at 0xe080 puc0: [FILTER] uart4: uart_puc_probe: type = 1, error = 0 uart4: uart_puc_probe: probing for uart bus uart4: uart_bus_probe: Entering uart4: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x0 ns8250_probe: no errors, exiting ns8250_bus_probe:656: continue ns8250_bus_probe:664: continue ns8250_bus_probe:749: Reset FIFOs ns8250_bus_probe:752: FIFO count=16 ns8250_bus_probe:792: no errors, exiting uart4: uart_bus_probe: Uart probe returned 0 uart4: uart_bus_probe: exiting uart4: uart_puc_probe: type = 1, error = 0 uart4: uart_puc_probe: probing for uart bus uart4: uart_bus_probe: Entering uart4: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0xc1 ns8250_probe: got MCR register: 0x8 ns8250_probe: no errors, exiting ns8250_bus_probe:656: continue ns8250_bus_probe:664: continue ns8250_bus_probe:749: Reset FIFOs ns8250_bus_probe:752: FIFO count=16 ns8250_bus_probe:792: no errors, exiting uart4: uart_bus_probe: Uart probe returned 0 uart4: uart_bus_probe: exiting uart4: <16550 or compatible> on puc0 uart4: [FILTER] uart4: fast interrupt uart5: uart_puc_probe: type = 1, error = 0 uart5: uart_puc_probe: probing for uart bus uart5: uart_bus_probe: Entering uart5: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x0 ns8250_probe: no errors, exiting ns8250_bus_probe:656: continue ns8250_bus_probe:664: continue ns8250_bus_probe:749: Reset FIFOs ns8250_bus_probe:752: FIFO count=16 ns8250_bus_probe:792: no errors, exiting uart5: uart_bus_probe: Uart probe returned 0 uart5: uart_bus_probe: exiting uart5: uart_puc_probe: type = 1, error = 0 uart5: uart_puc_probe: probing for uart bus uart5: uart_bus_probe: Entering uart5: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0xc1 ns8250_probe: got MCR register: 0x8 ns8250_probe: no errors, exiting ns8250_bus_probe:656: continue ns8250_bus_probe:664: continue ns8250_bus_probe:749: Reset FIFOs ns8250_bus_probe:752: FIFO count=16 ns8250_bus_probe:792: no errors, exiting uart5: uart_bus_probe: Uart probe returned 0 uart5: uart_bus_probe: exiting uart5: <16550 or compatible> on puc0 uart5: [FILTER] uart5: fast interrupt uart6: uart_puc_probe: type = 1, error = 0 uart6: uart_puc_probe: probing for uart bus uart6: uart_bus_probe: Entering uart6: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x40 ns8250_probe: got MCR wrong register, exiting with ENXIO ns8250_bus_probe:645: error at ns8250_probe(), exiting, returning 6 uart6: uart_bus_probe: Uart probe returned 6 uart6: uart_bus_probe: exiting uart6: uart_puc_probe: type = 1, error = 0 uart6: uart_puc_probe: probing for uart bus uart6: uart_bus_probe: Entering uart6: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x40 ns8250_probe: got MCR wrong register, exiting with ENXIO ns8250_bus_probe:645: error at ns8250_probe(), exiting, returning 6 uart6: uart_bus_probe: Uart probe returned 6 uart6: uart_bus_probe: exiting uart6: uart_puc_probe: type = 1, error = 0 uart6: uart_puc_probe: probing for uart bus uart6: uart_bus_probe: Entering uart6: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x40 ns8250_probe: got MCR wrong register, exiting with ENXIO ns8250_bus_probe:645: error at ns8250_probe(), exiting, returning 6 uart6: uart_bus_probe: Uart probe returned 6 uart6: uart_bus_probe: exiting uart6: uart_puc_probe: type = 1, error = 0 uart6: uart_puc_probe: probing for uart bus uart6: uart_bus_probe: Entering uart6: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x40 ns8250_probe: got MCR wrong register, exiting with ENXIO ns8250_bus_probe:645: error at ns8250_probe(), exiting, returning 6 uart6: uart_bus_probe: Uart probe returned 6 uart6: uart_bus_probe: exiting uart6: uart_puc_probe: type = 1, error = 0 uart6: uart_puc_probe: probing for uart bus uart6: uart_bus_probe: Entering uart6: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x40 ns8250_probe: got MCR wrong register, exiting with ENXIO ns8250_bus_probe:645: error at ns8250_probe(), exiting, returning 6 uart6: uart_bus_probe: Uart probe returned 6 uart6: uart_bus_probe: exiting uart6: uart_puc_probe: type = 1, error = 0 uart6: uart_puc_probe: probing for uart bus uart6: uart_bus_probe: Entering uart6: /usr/src/sys/dev/uart/uart_core.c:374: continue with rid=0x0 ns8250_bus_probe: entering ns8250_probe: entering ns8250_probe: got IIR register: 0x1 ns8250_probe: got MCR register: 0x40 ns8250_probe: got MCR wrong register, exiting with ENXIO ns8250_bus_probe:645: error at ns8250_probe(), exiting, returning 6 uart6: uart_bus_probe: Uart probe returned 6 uart6: uart_bus_probe: exiting ----- WBR -- Boris Samorodov (bsam) Research Engineer, http://www.ipt.ru Telephone & Internet SP FreeBSD committer, http://www.FreeBSD.org The Power To Serve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?26719629>