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>
