Subject: Re: Problems with Xircom PCMCIA cards (device timeout)
To: None <tech-kern@netbsd.org>
From: David Laight <David.Laight@btinternet.com>
List: tech-kern
Date: 01/05/2002 17:47:05
> Yes.  I've seen that in the CIS as well.  FreeBSD and Linux have some
> support for using both, but NetBSD's architecture will require the
> shim driver, like the mhz driver.

Yes - it is so much easier putting the knowledge of the card registers
into the device driver source - rather than trying to parse the CIS!
(I can't parse one bit by hand! never mind write code to do it.  The
'standard' CIS routines were far too unwieldy for the embedded system
I was writing for.)

I've only seem 2 CIS on Xircom ethernet and ethernet+modem pcmcia cards.
Interestingly (?) the 10M and 100M ethernet only cards had the same CIS
but needed slightly different drivers :-)

(Try to read the PHY ID over the MII, if you get -1 its the 10M card,
followed by:
    eth->de_page = 2;
    if (td->td_xcvr_id != ~0u)
        eth->de_msr = 0x28;  /* mcast hash + MII, 32kb sram */
    else
        eth->de_msr = 0x20;  /* mcast hash + serial, 32kb sram */
)

For the 100M cards I modify the transciever ANAR register to remove the
FDX options - it is too hard to detect FDX and set the MAC to the same
mode....

    David