Bug 67598

Summary: Broadcom NetXtreme BCM5704s brgphy not detected on Nexicon Blade server
Product: Base System Reporter: Luuk van Dijk <lvd>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description Luuk van Dijk 2004-06-05 11:20:09 UTC
on the Nexicon Blade server, equipped with Broadcom NetXtreme BCM5704s,
the bge driver detects both interfaces, but not the miibus/brgphy
interfaces (as it does on another server that I have which has 2x BCM5703)

in the fixit shell, both bge0 and bge1 show up with ifconfig, and
with the correct mac address.  assigning an ip address changes the state from 'no carrier' to 'active´, but the interface cannot be pinged 
from another computer on the same net, nor is any packet sent out when I try to install over NFS.

a driver written by broadcom for 4.2, 'if_bc.c' exists, which works fine under 4.8, so the hardware is correct.  also, I can pxeboot over bootp/tftp/nfs. unfortunately this driver is incompatible with the 5.x architecture.

Fix: 

(probably in the bgrphy probe code)
How-To-Repeat: boot the install image, start fixit shell, ifconfig bge0 192.168.1.1,
ping from another machine on the same net.  try to install from NFS, watch the net with tcpdump. observe the absence of traffic.
Comment 1 Luuk van Dijk 2004-06-05 12:19:25 UTC
looking for documentation on the 5704s, I notice that the 's' means: has
no 'PHY' but a 'SERDES' physical layer.  So the above diagnose does not
apply, but the phenomena are still there: chip is detected, but no
traffic
Comment 2 ps 2004-06-07 01:09:00 UTC
What does a verbose bootup look like?

Luuk van Dijk (lvd@mndmttr.nl) wrote:
> 
> >Number:         67598
> >Category:       kern
> >Synopsis:       Broadcom NetXtreme BCM5704s brgphy not detected on Nexicon Blade server
> >Confidential:   no
> >Severity:       non-critical
> >Priority:       medium
> >Responsible:    freebsd-bugs
> >State:          open
> >Quarter:        
> >Keywords:       
> >Date-Required:
> >Class:          sw-bug
> >Submitter-Id:   current-users
> >Arrival-Date:   Sat Jun 05 03:20:09 PDT 2004
> >Closed-Date:
> >Last-Modified:
> >Originator:     Luuk van Dijk
> >Release:        5.0 upto 5.2.1
> >Organization:
> Mind over Matter B.V.
> >Environment:
> 5.2.1 install cd with generic kernel, fixit shell, no uname available
> >Description:
> on the Nexicon Blade server, equipped with Broadcom NetXtreme BCM5704s,
> the bge driver detects both interfaces, but not the miibus/brgphy
> interfaces (as it does on another server that I have which has 2x BCM5703)
> 
> in the fixit shell, both bge0 and bge1 show up with ifconfig, and
> with the correct mac address.  assigning an ip address changes the state from 'no carrier' to 'active´, but the interface cannot be pinged 
> from another computer on the same net, nor is any packet sent out when I try to install over NFS.
> 
> a driver written by broadcom for 4.2, 'if_bc.c' exists, which works fine under 4.8, so the hardware is correct.  also, I can pxeboot over bootp/tftp/nfs. unfortunately this driver is incompatible with the 5.x architecture.
> >How-To-Repeat:
> boot the install image, start fixit shell, ifconfig bge0 192.168.1.1,
> ping from another machine on the same net.  try to install from NFS, watch the net with tcpdump. observe the absence of traffic.
> >Fix:
> (probably in the bgrphy probe code)
> >Release-Note:
> >Audit-Trail:
> >Unformatted:
> _______________________________________________
> freebsd-bugs@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
> To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org"
> 

-- 
-ps
Comment 3 Bill Paul freebsd_committer freebsd_triage 2004-06-09 17:02:26 UTC
State Changed
From-To: open->closed

The BCM5704 appears to have some special (and undocumented) registers 
that have to be set to properly advertise flow control ability when 
autonegotiating with a switch in TBI/fiber mode. I added code to 
the bge(4) driver to set these registers during autoneg, and the 
link seems to be properly negotiated now, and traffic is exchanged 
correctly. A patch for this problem is available at 
http://www.freebsd.org/~wpaul/bge.diff. This patch has been supplied 
to the submitter and checked in to the FreeBSD-current sources.