| Summary: | fxp driver not completely compatible with latest Intel PRO/100+ NICs | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | jooji <jooji> | ||||
| Component: | kern | Assignee: | dg | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | ||||||
| Priority: | Normal | ||||||
| Version: | 3.2-STABLE | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
|
Description
guseyn
1998-09-24 14:18:27 UTC
The fxp driver in -STABLE incorrectly identifies the MAC address of any
and all new Intel PRO/100+ Management PCI NICs--model 734938-001, and
probably later models, as well--as 00:a4:c0:91:d2:9c. Although the
card still operates with the driver, placing two or more machines using
these NICs on the same Ethernet network results in a conflict. Unlike
older cards, ifconfig reports that the media type for the card is
"manual", with a single supported media type of "manual", and does not
report any "status" information.
Also, the following error is reported on boot:
fxp2: warning: unsupported PHY, type = 0, addr = 0
Here's the full output of ifconfig for the card:
fxp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.2.24.254 netmask 0xffffff00 broadcast 10.2.24.255
ether 00:a4:c0:91:d2:9c
media: manual
supported media: manual
For reference, the actual MAC address of the above card, as reported
by the DOS-based Intel setup utility, is 00:90:27:89:76:81. As an aside,
the command
ifconfig fxp2 ether 00:90:27:89:76:81
results in a segfault; this happens with the old Intel PRO cards, too.
Responsible Changed From-To: freebsd-bugs->wpaul Ethernet drivers belong to Bill. Responsible Changed From-To: wpaul->dg I wrote the fxp driver. State Changed From-To: open->analyzed It appears that the SEEPROM format has changed with the newest cards. I'm awaiting info on the new format from Intel. Here is some info that may contribute to resolution of this problem.
Intel has indeed changed the layout of the SEEPROM for the newer
chips (in my case 82559C).
Offset 0x6 is not referenced any more in the 82559 data sheet. What
remains in this case are the MDI-registers 2 and 3, PHY ID High and Low
byte respectively. According to the 82559 data sheet:
Register 2 = 0x02A8
Register 3 = 0x0154
For comparison, a 82555 has:
Register 2 = 0x02A8
Register 3 = 0x0150
While trying to verify this I stumbled on a fundamental problem of not
being able to get anything useful over the MDI. Another go at the 82559
data sheet (section 9.1.7) hinted that one is supposed to reset (=0b)
bit 28 (Ready) of the MDI Control Register when issuing an MDI command.
Doing so did indeed solve the MDI communication problem and enabled
succesful readback of the differentiating MDI Register 3.
Even though I haven't found any explicit reference to it, it seems
entirely adequate to handle the 82559 as comprising a 82555 PHY.
After applying these mods, my Compaq Armada M300 with Mini-PCI NIC/Modem
combo produces the following response to ifconfig fxp0:
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::2b4:c0ff:fe91:a6%fxp0 prefixlen 64 scopeid 0x1
inet 10.2.0.12 netmask 0xffffff00 broadcast 10.2.0.255
ether 00:b4:c0:91:00:a6
media: autoselect (100baseTX) status: active
supported media: autoselect 100baseTX <full-duplex> 100baseTX
10baseT/UTP <full-duplex>
10baseT/UTP
Hope this helps.
Alex
State Changed From-To: analyzed->closed Fixed in later revs of the fxp driver. The bug was caused by a change in the size of the SEEPROM. |