kern/88940: [patch] bge support for BCM5752

Alexander Hausner alex at hugo.bmg.gv.at
Sun Nov 13 10:40:18 PST 2005


>Number:         88940
>Category:       kern
>Synopsis:       [patch] bge support for BCM5752
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Nov 13 18:40:17 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        FreeBSD 6.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD chuck.teleweb.at 6.0-STABLE FreeBSD 6.0-STABLE #6: Sat Nov 12 19:47:53 CET 2005 root@:/usr/src/sys/i386/compile/CHUCK i386


	
>Description:
	Yesterday, I tried to install FreeBSD on an HP dc7600, the onboard
	NIC was not found during installation. After some investigations on 
	the web, I found this onboard NIC should be a Broadcom BCM5752, which
	is not supported by the current bge driver. Hence I wrote a simple patch	for this NIC.
>How-To-Repeat:
	
>Fix:


--- bge.patch begins here ---
diff -r -c bge.orig/if_bge.c bge/if_bge.c
*** bge.orig/if_bge.c	Sun Nov 13 18:50:06 2005
--- bge/if_bge.c	Sun Nov 13 18:57:27 2005
***************
*** 172,177 ****
--- 172,179 ----
  		"Broadcom BCM5751 Gigabit Ethernet" },
  	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5751M,
  		"Broadcom BCM5751M Gigabit Ethernet" },
+ 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5752,
+ 		"Broadcom BCM5752 Gigabit Ethernet" },
  	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5782,
  		"Broadcom BCM5782 Gigabit Ethernet" },
  	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5788,
***************
*** 2319,2328 ****
  	sc->bge_chiprev = BGE_CHIPREV(sc->bge_chipid);
  
  	/*
! 	 * Treat the 5714 like the 5750 until we have more info
  	 * on this chip.
  	 */
! 	if (sc->bge_asicrev == BGE_ASICREV_BCM5714)
  		sc->bge_asicrev = BGE_ASICREV_BCM5750;
  
  	/*
--- 2321,2331 ----
  	sc->bge_chiprev = BGE_CHIPREV(sc->bge_chipid);
  
  	/*
! 	 * Treat the 5714 and the 5752 like the 5750 until we have more info
  	 * on this chip.
  	 */
! 	if (sc->bge_asicrev == BGE_ASICREV_BCM5714 || 
!             sc->bge_asicrev == BGE_ASICREV_BCM5752)
  		sc->bge_asicrev = BGE_ASICREV_BCM5750;
  
  	/*
Only in bge: if_bge.c~
diff -r -c bge.orig/if_bgereg.h bge/if_bgereg.h
*** bge.orig/if_bgereg.h	Sun Nov 13 18:50:30 2005
--- bge/if_bgereg.h	Sun Nov 13 18:54:59 2005
***************
*** 250,255 ****
--- 250,256 ----
  #define BGE_ASICREV_BCM5705		0x03
  #define BGE_ASICREV_BCM5750		0x04
  #define BGE_ASICREV_BCM5714		0x05
+ #define BGE_ASICREV_BCM5752		0x06
  
  /* chip revisions */
  #define BGE_CHIPREV(x)			((x) >> 24)
***************
*** 1875,1880 ****
--- 1876,1882 ----
  #define BCOM_DEVICEID_BCM5750M		0x167C
  #define BCOM_DEVICEID_BCM5751		0x1677
  #define BCOM_DEVICEID_BCM5751M		0x167D
+ #define BCOM_DEVICEID_BCM5752		0x1600
  #define BCOM_DEVICEID_BCM5782		0x1696
  #define BCOM_DEVICEID_BCM5788		0x169C
  #define BCOM_DEVICEID_BCM5789		0x169D
--- bge.patch ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list