On 2010-11-17, Jochen Fabricius <[email protected]> wrote:
>> On Tue, Nov 16, 2010 at 11:24:37PM +0100, Jochen Fabricius wrote:
>> > Hi all,
>> >
>> > today I discovered that my network connection on an Acer Aspire X3900 is
>> > only 10baseT. Never realized it before because the speed is enough (mostly
>> > relatively slow internet connection, no large files to/from other
>> > machines). System is 4.8-release.
>> >
>> > I checked:
>> > - wiring: even at shortest connection to the switch only 10baseT was
>> > available
>> > - other switches
>> > - other machines with the same cables, same port on switch
>> >
>> > The PHY is a 82578, and as I understand the commit messages the support is
>> > still "basic", but shouldn't at least 100baseTX work? That's what all my
>> > switches support. I have to check with a 1 GbE switch, but I don't know if
>> > I can get one in the next time. Has anyone higher speeds working with this
>> > PHY?
>>
>> This is a known issue with the 82578DC (82578DM doesn't show it).
>> It is likely something along the lines of missing workarounds
>> for particular revisions of the phy.
>>
>
> I was afraid of that. Is there anything I could do, maybe send some more
> information (which?) for solving these issues?
The following diff was just committed to -current which should fix this.
Index: if_em_hw.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em_hw.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -p -r1.64 -r1.65
--- if_em_hw.c 2 May 2011 12:25:42 -0000 1.64
+++ if_em_hw.c 2 May 2011 18:16:58 -0000 1.65
@@ -31,7 +31,7 @@
*******************************************************************************/
-/* $OpenBSD: if_em_hw.c,v 1.64 2011/05/02 12:25:42 jsg Exp $ */
+/* $OpenBSD: if_em_hw.c,v 1.65 2011/05/02 18:16:58 dhill Exp $ */
/*
* if_em_hw.c Shared functions for accessing and configuring the MAC
*/
@@ -9863,20 +9863,6 @@ em_hv_phy_workarounds_ich8lan(struct em_
}
if (hw->phy_type == em_phy_82578) {
- if (hw->revision_id < 3) {
- /* PHY config */
- ret_val = em_write_phy_reg(hw, (1 << 6) | 0x29,
- 0x66C0);
- if (ret_val)
- goto out;
-
- /* PHY config */
- ret_val = em_write_phy_reg(hw, (1 << 6) | 0x1E,
- 0xFFFF);
- if (ret_val)
- goto out;
- }
-
/*
* Return registers to default by doing a soft reset then
* writing 0x3140 to the control register.