Subject: Re: kern/34812: VIA Rhine III (VT6105) fails to get valid station address
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Steve Woodford <scw@netbsd.org>
List: netbsd-bugs
Date: 10/17/2006 11:30:02
The following reply was made to PR kern/34812; it has been noted by GNATS.

From: Steve Woodford <scw@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org
Subject: Re: kern/34812: VIA Rhine III (VT6105) fails to get valid station address
Date: Tue, 17 Oct 2006 12:25:24 +0100

 On Saturday 14 October 2006 10:25, Christopher SEKIYA wrote:
 
 > sys/dev/pci/if_vr.c special-cases the VT6105 and VT6102 when it tries
 > to read the station address from EEPROM by *not* reloading the EEPROM.
 >  The comment surrounding the code indicates that it's intentional
 > because it's redundant.
 
 The commit message for that bit of code is:
 
 -----------
 revision 1.66
 date: 2003/11/13 22:29:09;  author: scw;  state: Exp;  lines: +16 -4
 On Rhine III, don't set VR_EECSR_LOAD before reading the MAC address.
 This reloads the entire EEPROM, not just the MAC address, which can
 cause problems for the host PCI bus under certain circumstances. The
 chip already loads the EEPROM at powerup/reset anyway.
 -----------
 
 The problem is that re-reading the EEPROM can undo some of the chip's PCI 
 configuration performed by the host BIOS/firmware, resulting in lossage 
 later on.
 
 If your chip needs to be told explicitly to read its EEPROM, then it 
 looks like a reliable heuristic would be to check for an all zeroes MAC 
 address before doing so.
 
 Cheers, Steve