Date: Thu, 26 May 2011 21:23:49 +0100 From: "N.J. Mann" <njm@njm.me.uk> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: John Baldwin <jhb@FreeBSD.org>, freebsd-hardware@FreeBSD.org Subject: Re: Sunix 4056A PCI 4 port RS-232 card - only 2 ports configured Message-ID: <20110526202349.GB29605@titania.njm.me.uk> In-Reply-To: <EBD3B0ED-711D-4E0F-8109-9C3AC3F52279@xcllnt.net> References: <20110522110002.GB91694@titania.njm.me.uk> <201105241610.49930.jhb@freebsd.org> <20110524215232.GB92553@titania.njm.me.uk> <201105250946.45653.jhb@freebsd.org> <803C09E5-8E10-4289-A8B3-952E8A72C7A1@xcllnt.net> <20110526134211.GB9481@titania.njm.me.uk> <EBD3B0ED-711D-4E0F-8109-9C3AC3F52279@xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <EBD3B0ED-711D-4E0F-8109-9C3AC3F52279@xcllnt.net>, Marcel Moolenaar (marcel@xcllnt.net) wrote: > > On May 26, 2011, at 6:42 AM, N.J. Mann wrote: > > *snip* > > >> For you, the first thing is to see whether the UART ports work > >> if you tweak the probe functions, like so: > >> > >> Index: uart_dev_ns8250.c > >> =================================================================== > >> --- uart_dev_ns8250.c (revision 222217) > >> +++ uart_dev_ns8250.c (working copy) > >> @@ -243,7 +243,7 @@ > >> if (val & 0x30) > >> return (ENXIO); > >> val = uart_getreg(bas, REG_MCR); > >> - if (val & 0xe0) > >> + if (val & 0xa0) > >> return (ENXIO); > >> > >> return (0); > > > > I tried this and the result is that ports 3 and 4 now attach okay. > > However, the baud rate of these two is wrong. If I select 9600 they > > actually send and receive at 1200, i.e. eight times slower. The speed > > setting for the first two ports is correct. (I checked all four ports at > > 9600, 38400 and 115200.) > > See John's email for the baudrate issue. > > >> Secondly, I'd like to know the vendor of the Quad-port UART. Either > >> it's Sunix's own implementation (this seems to be the case), or they > >> simply OEM someone else's. In any case: I'd like to see the datasheet > >> of the ASIC so as to understand the meaning/function of the bit. > > > > I took the card out of the PC to see exactly what is on it. There are > > three LSI chips, plus four RS-232 interface chips. The largest of the > > LSI chips is a SUN1889 and it appears to connect to ports 1 and 2, and > > to the PCI bus. The other two LSI chips are both SUN1699. The first of > > these seems to be for port 3 and the second for port 4. I tried finding > > data sheets for these chips on the web, but all I could find was > > marketing leaflets for various single- and multi-port RS-232 and RS-422 > > interface cards. Perhaps you will have better luck in searching than I > > did. > > Thanks! This what really useful. It seems that the SUN1699 has MCR > bit 6 set by default or it's even hardwired as 1. There have been > various reports on the FreeBSD mailing lists relating to the SUN1699 > and how uart(4) doesn't attach due to the MCR having a value of 0x40. > > Looking at the Sunix driver for Linux I cannot see any reference to > this bit at all. The code does not mask it out or force it to 1 > either. So, from what I can tell, it has absolutely no meaning. > > So, I'll change FreeBSD to just ignore this bit. There's even an open > PR for this: > http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/129663 > > Thanks a lot of working with us! John's latest patch has fixed the speed problem, so I now have a fully working card. %%%%% puc0: <Timedia technology 4 Port Serial> port 0xdc00-0xdc1f,0xe000-0xe00f irq 17 at device 9.0 on pci0 ioapic0: routing intpin 17 (PCI IRQ 17) to lapic 0 vector 52 uart2: <16550 or compatible> on puc0 uart2: fast interrupt uart3: <16550 or compatible> on puc0 uart3: fast interrupt uart4: <16550 or compatible> on puc0 uart4: fast interrupt uart5: <16550 or compatible> on puc0 uart5: fast interrupt %%%%% Many thanks. Cheers, Nick. --
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110526202349.GB29605>