Skip site navigation (1)Skip section navigation (2)
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>