amd64/81089: FreeBSD 5.4 released version can not use Broadcom NIC 5704

fish Hong fishhong at nexcom.com.tw
Sun May 15 21:20:15 PDT 2005


>Number:         81089
>Category:       amd64
>Synopsis:       FreeBSD 5.4 released version can not use Broadcom NIC 5704
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 16 04:20:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     fish Hong
>Release:        5.4 ; 5.4 rc2 ; 5.3
>Organization:
Nexcom firm
>Environment:
AMD 64 bit operton CPU.
>Description:
FreeBSD version 5.4 can not use Broadcom NIC 5704.
FreeBSD version 5.4 RC2 can use Broadcom NIC 5704.
FreeBSD version 5.3 ca use Broadcom NIC 5704.
As we try to find out differenece between of FreeBSD 5.4 & 5.4 RC2.
We find out the different item of  if_bge.c .
The if_bgc.c have the additional item as belows.

diff bge/ orig-bge/
diff bge/if_bge.c orig-bge/if_bge.c
35c35
< __FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.72.2.10 2005/03/22
14:12:31 avatar Exp $");
---
> __FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.72.2.10.2.1 
> 2005/05/06
00:38:51 dwhite Exp $");
3436,3452d3435
<                       /*
<                        * The BCM5704 ASIC appears to have a special
<                        * mechanism for programming the autoneg
<                        * advertisement registers in TBI mode.
<                        */
<                       if (sc->bge_asicrev == BGE_ASICREV_BCM5704) {
<                               uint32_t sgdig;
<                               CSR_WRITE_4(sc, BGE_TX_TBI_AUTONEG, 0);
<                               sgdig = CSR_READ_4(sc, BGE_SGDIG_CFG);
<                               sgdig |= BGE_SGDIGCFG_AUTO|
<                                   BGE_SGDIGCFG_PAUSE_CAP|
<                                   BGE_SGDIGCFG_ASYM_PAUSE;
<                               CSR_WRITE_4(sc, BGE_SGDIG_CFG,
<                                   sgdig|BGE_SGDIGCFG_SEND);
<                               DELAY(5);
<                               CSR_WRITE_4(sc, BGE_SGDIG_CFG, sgdig);
<                       }


If add the addtional item into FreeBSD 5.4 , then do the recomplier the kernel.
FreeBSD 5.4 can use Broadcom NIC 5704


>How-To-Repeat:
1.Use system with Broadcom NIC 5704 to install FreeBSD 5.4.
2.After install finish, use sysinstall to setup network.
3.Broadcom NIC can not get the DHCP.
4.Set the static IP, and the IP can not be used.
>Fix:
If add the addtional item into the if_bge.c of FreeBSD 5.4 , then do the recomplier the kernel.
FreeBSD 5.4 can use Broadcom NIC 5704


< __FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.72.2.10 2005/03/22
14:12:31 avatar Exp $");
---
> __FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.72.2.10.2.1 
> 2005/05/06
00:38:51 dwhite Exp $");
3436,3452d3435
<                       /*
<                        * The BCM5704 ASIC appears to have a special
<                        * mechanism for programming the autoneg
<                        * advertisement registers in TBI mode.
<                        */
<                       if (sc->bge_asicrev == BGE_ASICREV_BCM5704) {
<                               uint32_t sgdig;
<                               CSR_WRITE_4(sc, BGE_TX_TBI_AUTONEG, 0);
<                               sgdig = CSR_READ_4(sc, BGE_SGDIG_CFG);
<                               sgdig |= BGE_SGDIGCFG_AUTO|
<                                   BGE_SGDIGCFG_PAUSE_CAP|
<                                   BGE_SGDIGCFG_ASYM_PAUSE;
<                               CSR_WRITE_4(sc, BGE_SGDIG_CFG,
<                                   sgdig|BGE_SGDIGCFG_SEND);
<                               DELAY(5);
<                               CSR_WRITE_4(sc, BGE_SGDIG_CFG, sgdig);
<                       }



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


More information about the freebsd-amd64 mailing list