Date: Thu, 11 Dec 2008 09:06:56 -0800 From: Marcel Moolenaar <xcllnt@mac.com> To: Boris Samorodov <bsam@ipt.ru> Cc: freebsd-current@FreeBSD.org, rea-fbsd@codelabs.ru Subject: Re: Timeda 8-multiport adapter: only 2 ports available Message-ID: <BE3580EA-BACC-4FF3-9683-CCDE48858D96@mac.com> In-Reply-To: <94541668@bb.ipt.ru> References: <92804393@bb.ipt.ru> <26722819@bb.ipt.ru> <dgryeQY4GEVsW/%2Bo7hiHda0rsyw@Nv45r0f9gWT8HCu35qu0Xm2Zg98> <26719629@bb.ipt.ru> <19F75E66-0535-4982-9726-E2C0A03117EA@mac.com> <u86IhinAe98poBxKoJlfe3b/pNw@TT2a40bhZF2dUby2PPEihZ1bSVY> <94541668@bb.ipt.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 11, 2008, at 6:36 AM, Boris Samorodov wrote: > Hello Eygene, Marcel and All, > > > I've found some DOS/Linux docs/programs at the producers's site > and unzipped them: > ftp://ftp.ipt.ru/pub/sunix/ > > > Eygene Ryabinkin <rea-fbsd@codelabs.ru> writes: > >> Boris, could you please add the line >> ----- >> printf("%s: BAS, handle is 0x%lx, tag is 0x%x\n", __func__, >> (unsigned long)bas->bsh, (unsigned int)bas->bst); >> ----- >> to the beginning of ns8250_probe() and show the results. Good suggestion, Eygene! Summary: port 1: IO=0xec00; IIR=0x1, 0xc1; MCR=0x0, 0x8 port 2: IO=0xec08; IIR=0x1, 0xc1; MCR=0x0, 0x8 port 3: IO=0xe880; IIR=0x1; MCR=0x40 port 4: IO=0xe888; IIR=0x1; MCR=0x40 port 5: IO=0xe800; IIR=0x1; MCR=0x40 port 6: IO=0xe480; IIR=0x1; MCR=0x40 port 7: IO=0xe400; IIR=0x1; MCR=0x40 port 8: IO=0xe080; IIR=0x1; MCR=0x40 For ports 3-8, the MCR has a value that's not liked by uart(4). I think we need to know what that value means. Are the ports disabled? Are they in a non-standard mode? Is it just a non-standard status bit that's set and we should ignore it? etc... Boris: can you apply the following patch and see if uart(4) attaches to all ports? If yes, can you see if those ports actually work as well? Index: uart_dev_ns8250.c =================================================================== --- uart_dev_ns8250.c (revision 185784) +++ uart_dev_ns8250.c (working copy) @@ -241,7 +241,7 @@ if (val & 0x30) return (ENXIO); val = uart_getreg(bas, REG_MCR); - if (val & 0xe0) + if (val & 0xa0) return (ENXIO); return (0); Thanks. -- Marcel Moolenaar xcllnt@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BE3580EA-BACC-4FF3-9683-CCDE48858D96>