Date: Tue, 4 Feb 2003 11:52:43 +0100 (CET) From: Michal Mertl <mime@traveller.cz> To: Kevin Oberman <oberman@es.net> Cc: mobile@FreeBSD.ORG Subject: Re: Problems with serial port on Xircom RBEM56G Message-ID: <20030204101105.E91588@prg.traveller.cz> In-Reply-To: <20030204001334.40D4A5D04@ptavv.es.net> References: <20030204001334.40D4A5D04@ptavv.es.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> OK. Things are coming together, but one thing I have not figured out > is why the serial portion of my RBEM56G card is not working. I suspect > it may be simply adding the requisite information someplace. It's known problem. There was a patch which made it work sometime in the past. It worked only on some HW revisions IIRC and doesn't anymore because of other changes IIRC. It never worked for me. I'm afraid it's not that easy. When you boot_verbose and set hw.cardbus.debug=1 and hw.cardbus.cis_debug=1 you will see that the modem part of the card is probed for sio (serial) but fails. I don't understand what exactly goes wrong here. Serial port uses the same IRQ as the ethernet part - that might be problem. The main source of problem is probably the IO port - I think the range should be (at least) 8 bytes long - for driving 16550 UART sio_setreg(port, offset, value) is used (in /sys/isa/sio.con STABLE), offsets are defined in /sys/dev/ic/ns16550.h and in /boot/i386/libi386/comconsole.c - constants are in range 0 - 6. It seems that cardbus layer things the device needs 2 bytes but sio driver calls port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0, IO_COMSIZE, RF_ACTIVE); to allocate 8 bytes (IO_COMSIZE is 8). Windows 2000 has io port FE78 - FE7F. On insertion with debugs on I see this (it is the same HW you have): cardbus0: Opening BAR: type=IO, bar=10, len=0002 cardbus0: Opening BAR: type=MEM, bar=14, len=0002 cardbus0: Opening BAR: type=MEM, bar=18, len=0100 cardbus0: Invalid BAR number: 27(06) CIS reading done cardbus0: Non-prefetchable memory at 88000200-88000301 cardbus0: Non-prefetchable memory rid=18 at 88000200-880002ff (100) cardbus0: Non-prefetchable memory rid=14 at 88000300-88000301 (2) cardbus0: IO port at 1080-1081 cardbus0: IO port rid=10 at 1080-1081 sio4: irq maps: 0x1 0x1 0x1 0x1 sio4: probe failed test(s): 2 4 Those, who understand resource allocation could be able to tell if above call to bus_alloc_resource is the problem (or one of). In rid is indirectly stored info from BAR (2 bytes range) IIRC from my previous debugging of the problem. > Is it possible that this is a WinModem? I had been assured it was a > "real" modem, but maybe I will need to install ltmdm (or get a > different modem). I don't think it is a WinModem. Modem's UART (serial interface) is only badly attached. -- Michal Mertl mime@traveller.cz To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030204101105.E91588>