Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Nov 2000 17:30:10 -0800 (PST)
From:      wpaul@FreeBSD.ORG (Bill Paul)
To:        freebsd-current@freebsd.org
Subject:   Getting at cardbus CIS data from inside drivers
Message-ID:  <20001121013010.679C837B4D7@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Okay. Recently, David O'Brien handed me an Intel 10/100 Cardbus NIC,
which uses the 21143-PB chip. It's a non-MII card (has a Quality Semi
symbol PHY). Unfortunately, it looks like Intel has taken a few shortcuts
with this card: the serial EEPROM doesn't contain any useful information.
Instead, the MAC address and, I presume, the GPIO programming info is
stored in the CIS. When the card is inserted, the cardbus code prints
out several 'Function Extension' lines, one of which contains the MAC
address. The problem is, there's no way for me to obtain this info
from inside the driver, unless I map the expansion ROM directly and
grovel through the CIS myself, which I don't want to do.

I have the card working at the moment using a couple of ugly cheats:
I programmed the MAC address in manually using ifconfig dc0 ether blah,
and I brute forced the GPIO settings so that all of the pins are
configured as outputs and are forced to 1's. This seems to be enough
to activate the transceiver, and I can exchange traffic. (I'm composing
this e-mail with it right now.) The LED programming is still off though:
both LEDs are lit green, and stay on regardless of link indication or
speed.

Is there any support planned for externalizing the CIS info somehow,
i.e. by providing bus methods to call the CIS parsing routines? Another
way to do it would be to pass the info down to the child device using
ivars. I would imaging that there's similar support for this in Windows,
otherwise Intel's driver wouldn't work.

-Bill


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001121013010.679C837B4D7>