Timeda 8-multiport adapter: only 2 ports available

Marcel Moolenaar xcllnt at mac.com
Thu Dec 11 17:07:03 UTC 2008


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 at 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 at mac.com





More information about the freebsd-current mailing list