Date: Fri, 16 Oct 98 10:47:45 -0400 From: Michael Scott Boers <mboers@datacompusa.com> To: <freebsd-hardware@FreeBSD.ORG> Cc: "Cyclades Support" <support@cyclades.com> Subject: Problem with Cyclades Cyclom-8Yep Message-ID: <199810161447.KAA12216@datacompusa.com>
next in thread | raw e-mail | index | archive | help
I am having trouble getting a Cyclades Cyclom-8YeP (PCI, 8 port) multiport serial card to work with my FreeBSD 2.2.7 machine. I would appreciate any help anyone can give me towards solving this problem. If anyone out there is using a Cyclom-8YeP card with 2.2.7, please let me know. Should I just give up and get the isa version instead? PROBLEM SUMMARY: During bootup, the kernel finds the card but reports no ports found. (Exerpt from boot sequence with the -v added) cy0 <Cyclades Cyclom-Y Serial Adapter> rev 1 int a irq 10 on pci0:9:0 mapreg[10] type=0 addr=ffadff80 size=0080. mapreg[14] type=1 addr=00007c80 size=0080. mapreg[18] type=1 addr=000dc000 size=3f80. cy_pci.c cy_attach config_id.cfg1 = 80004800 /*Added to peak at the values*/ cy_pci.c cy_attach unit = 0 /*Added to peak at the values*/ cy_pci.c cy_attach ioport = 7c80 /*Added to peak at the values*/ cy_pci.c cy_attach paddr = dc000 /*Added to peak at the values*/ cy_pci.c cy_attach vaddr = f4d3b000 /*Added to peak at the values*/ cy0: no ports found! So as you can see, the pci probe finds the card, but the attach sequence fails. I have already updated the i386/isa/cy.c and i386/isa/cyreg.h with the new version (1.41.3.1) from Cyclades. This has not helped. WHAT I HAVE TRIED: CYCTEST.EXE (from Cyclades) reports everything is fine. Output from CYCTEST: Device: 64 BusNumber: 0 Vendor ID: 120Eh Device ID: 0100h Class Code: 078000h Revision ID: 01h Interrupt Line: 9 Runtime Regs Addr: 00007C81h Base Address Reg: 000DC002h Firmware ID: 13 FirmWare Rev: 3 Number of Ports:8 ID Number: 9DA74502 EEPROM Version: 3 CD1400 #0: 48h CD1400 #1: 48h CD1400 #2: 00h CD1400 #3: 00h CD1400 #4: 00h CD1400 #5: 00h CD1400 #6: 00h CD1400 #7: 00h Changing the base address with CYCTEST (from Y < 1MB to Y > 1MB) doesn't help. Swaping the card with my Intel Pro 100 (which changes the assign IRQ) doesn't help. WHAT I HAVE LEARNED: First, I have learned that I my OS class in college didn't spend enough time on driver issues. Second, I thing that the problem is in cy_attach (from pci/cy_pci.c) and cyattach_common (i386/isa/cy.c). cy_attach retrieves the ioport and physical address from the pci datastructure. It then maps the physical address to a virtual address with the call pmap_mapdev(paddr, 0x4000). After this call, all 0x4000 bytes at 0xf4d3b000 are 0xff. I have looked at them with ddb during boot and with gdb -k afterword. They never change. So cy_attach passes the virtual address to cyattach_common which tries to get version numbers and stuff. Every query comes back 0xff and it finally gives up. Any suggestions, advice, or commiseration is very welcome. -- Michael Boers Datacomp To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hardware" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810161447.KAA12216>