Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Sep 2009 15:30:08 GMT
From:      matthieu <m.matthieu@gmail.com>
To:        freebsd-net@FreeBSD.org
Subject:   Re: kern/127587: [bge] [request] if_bge(4) doesn't support BCM576X  family
Message-ID:  <200909151530.n8FFU8Yd024287@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/127587; it has been noted by GNATS.

From: matthieu <m.matthieu@gmail.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/127587: [bge] [request] if_bge(4) doesn't support BCM576X 
	family
Date: Tue, 15 Sep 2009 17:25:35 +0200

 --0016e6d7e06cd8875604739f640b
 Content-Type: text/plain; charset=ISO-8859-1
 
 --- if_bge.c.back       2009-07-08 20:36:45.000000000 +0200
 +++ if_bge.c    2009-09-12 00:12:53.000000000 +0200
 @@ -272,6 +272,7 @@
         { BGE_CHIPID_BCM5755_A1,        "BCM5755 A1" },
         { BGE_CHIPID_BCM5755_A2,        "BCM5755 A2" },
         { BGE_CHIPID_BCM5722_A0,        "BCM5722 A0" },
 +       { BGE_CHIPID_BCM5761,           "BCM5761" },
         /* 5754 and 5787 share the same ASIC ID */
         { BGE_CHIPID_BCM5787_A0,        "BCM5754/5787 A0" },
         { BGE_CHIPID_BCM5787_A1,        "BCM5754/5787 A1" },
 @@ -2417,6 +2418,12 @@
         sc->bge_asicrev = BGE_ASICREV(sc->bge_chipid);
         sc->bge_chiprev = BGE_CHIPREV(sc->bge_chipid);
 
 +       if (sc->bge_asicrev == BGE_ASICREV_PROD_ID_REG)
 +         {
 +           sc->bge_chipid = pci_read_config(dev, BGE_PCI_PRODID_ASICREV, 4);
 +         }
 +
 +
         /*
          * Don't enable Ethernet@WireSpeed for the 5700, 5906, or the
          * 5705 A0 and A1 chips.
 @@ -2424,8 +2431,9 @@
         if (sc->bge_asicrev != BGE_ASICREV_BCM5700 &&
             sc->bge_asicrev != BGE_ASICREV_BCM5906 &&
             sc->bge_chipid != BGE_CHIPID_BCM5705_A0 &&
 -           sc->bge_chipid != BGE_CHIPID_BCM5705_A1)
 -               sc->bge_flags |= BGE_FLAG_WIRESPEED;
 +           sc->bge_chipid != BGE_CHIPID_BCM5705_A1 &&
 +           sc->bge_chipid != BGE_CHIPID_BCM5761)
 +         sc->bge_flags |= BGE_FLAG_WIRESPEED;
 
         if (bge_has_eaddr(sc))
                 sc->bge_flags |= BGE_FLAG_EADDR;
 @@ -2474,6 +2482,10 @@
                         sc->bge_flags |= BGE_FLAG_BER_BUG;
         }
 
 +       if (sc->bge_chipid == BGE_CHIPID_BCM5761)
 +         {
 +           sc->bge_flags |= BGE_FLAG_5705_PLUS;
 +         }
 
         /*
          * We could possibly check for BCOM_DEVICEID_BCM5788 in bge_probe()
 --- if_bgereg.h.old     2009-03-23 15:36:50.000000000 +0100
 +++ if_bgereg.h 2009-09-14 12:23:38.000000000 +0200
 @@ -218,6 +218,7 @@
  #define        BGE_PCI_UNDI_TX_BD_PRODIDX_LO   0xAC
  #define        BGE_PCI_ISR_MBX_HI              0xB0
  #define        BGE_PCI_ISR_MBX_LO              0xB4
 +#define        BGE_PCI_PRODID_ASICREV          0xBC
 
  /* PCI Misc. Host control register */
  #define        BGE_PCIMISCCTL_CLEAR_INTA       0x00000001
 @@ -302,6 +303,7 @@
  #define        BGE_CHIPID_BCM5787_A2           0xb0020000
  #define        BGE_CHIPID_BCM5906_A1           0xc0010000
  #define        BGE_CHIPID_BCM5906_A2           0xc0020000
 +#define        BGE_CHIPID_BCM5761              0x05761100
 
  /* shorthand one */
  #define        BGE_ASICREV(x)                  ((x) >> 28)
 @@ -319,6 +321,9 @@
  #define        BGE_ASICREV_BCM5754             0x0b
  #define        BGE_ASICREV_BCM5787             0x0b
  #define        BGE_ASICREV_BCM5906             0x0c
 +#define        BGE_ASICREV_PROD_ID_REG         0x0f
 +
 +#define        BGE_ASICREV_BCM5761             0x5761
 
  /* chip revisions */
  #define        BGE_CHIPREV(x)                  ((x) >> 24)
 @@ -2098,6 +2103,7 @@
 
 --0016e6d7e06cd8875604739f640b
 Content-Type: text/plain; charset=US-ASCII; name="patch_5761.patch.txt"
 Content-Disposition: attachment; filename="patch_5761.patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: file0
 
 LS0tIGlmX2JnZS5jLmJhY2sJMjAwOS0wNy0wOCAyMDozNjo0NS4wMDAwMDAwMDAgKzAyMDAKKysr
 IGlmX2JnZS5jCTIwMDktMDktMTIgMDA6MTI6NTMuMDAwMDAwMDAwICswMjAwCkBAIC0yNzIsNiAr
 MjcyLDcgQEAKIAl7IEJHRV9DSElQSURfQkNNNTc1NV9BMSwJIkJDTTU3NTUgQTEiIH0sCiAJeyBC
 R0VfQ0hJUElEX0JDTTU3NTVfQTIsCSJCQ001NzU1IEEyIiB9LAogCXsgQkdFX0NISVBJRF9CQ001
 NzIyX0EwLAkiQkNNNTcyMiBBMCIgfSwKKwl7IEJHRV9DSElQSURfQkNNNTc2MSwJCSJCQ001NzYx
 IiB9LCAKIAkvKiA1NzU0IGFuZCA1Nzg3IHNoYXJlIHRoZSBzYW1lIEFTSUMgSUQgKi8KIAl7IEJH
 RV9DSElQSURfQkNNNTc4N19BMCwJIkJDTTU3NTQvNTc4NyBBMCIgfSwgCiAJeyBCR0VfQ0hJUElE
 X0JDTTU3ODdfQTEsCSJCQ001NzU0LzU3ODcgQTEiIH0sCkBAIC0yNDE3LDYgKzI0MTgsMTIgQEAK
 IAlzYy0+YmdlX2FzaWNyZXYgPSBCR0VfQVNJQ1JFVihzYy0+YmdlX2NoaXBpZCk7CiAJc2MtPmJn
 ZV9jaGlwcmV2ID0gQkdFX0NISVBSRVYoc2MtPmJnZV9jaGlwaWQpOwogCisJaWYgKHNjLT5iZ2Vf
 YXNpY3JldiA9PSBCR0VfQVNJQ1JFVl9QUk9EX0lEX1JFRykKKwkgIHsKKwkgICAgc2MtPmJnZV9j
 aGlwaWQgPSBwY2lfcmVhZF9jb25maWcoZGV2LCBCR0VfUENJX1BST0RJRF9BU0lDUkVWLCA0KTsK
 KwkgIH0KKworCiAJLyoKIAkgKiBEb24ndCBlbmFibGUgRXRoZXJuZXRAV2lyZVNwZWVkIGZvciB0
 aGUgNTcwMCwgNTkwNiwgb3IgdGhlCiAJICogNTcwNSBBMCBhbmQgQTEgY2hpcHMuCkBAIC0yNDI0
 LDggKzI0MzEsOSBAQAogCWlmIChzYy0+YmdlX2FzaWNyZXYgIT0gQkdFX0FTSUNSRVZfQkNNNTcw
 MCAmJgogCSAgICBzYy0+YmdlX2FzaWNyZXYgIT0gQkdFX0FTSUNSRVZfQkNNNTkwNiAmJgogCSAg
 ICBzYy0+YmdlX2NoaXBpZCAhPSBCR0VfQ0hJUElEX0JDTTU3MDVfQTAgJiYKLQkgICAgc2MtPmJn
 ZV9jaGlwaWQgIT0gQkdFX0NISVBJRF9CQ001NzA1X0ExKQotCQlzYy0+YmdlX2ZsYWdzIHw9IEJH
 RV9GTEFHX1dJUkVTUEVFRDsKKwkgICAgc2MtPmJnZV9jaGlwaWQgIT0gQkdFX0NISVBJRF9CQ001
 NzA1X0ExICYmCisJICAgIHNjLT5iZ2VfY2hpcGlkICE9IEJHRV9DSElQSURfQkNNNTc2MSkKKwkg
 IHNjLT5iZ2VfZmxhZ3MgfD0gQkdFX0ZMQUdfV0lSRVNQRUVEOwogCiAJaWYgKGJnZV9oYXNfZWFk
 ZHIoc2MpKQogCQlzYy0+YmdlX2ZsYWdzIHw9IEJHRV9GTEFHX0VBRERSOwpAQCAtMjQ3NCw2ICsy
 NDgyLDEwIEBACiAJCQlzYy0+YmdlX2ZsYWdzIHw9IEJHRV9GTEFHX0JFUl9CVUc7CiAJfQogCisJ
 aWYgKHNjLT5iZ2VfY2hpcGlkID09IEJHRV9DSElQSURfQkNNNTc2MSkKKwkgIHsKKwkgICAgc2Mt
 PmJnZV9mbGFncyB8PSBCR0VfRkxBR181NzA1X1BMVVM7CisJICB9CiAKIAkvKgogCSAqIFdlIGNv
 dWxkIHBvc3NpYmx5IGNoZWNrIGZvciBCQ09NX0RFVklDRUlEX0JDTTU3ODggaW4gYmdlX3Byb2Jl
 KCkKLS0tIGlmX2JnZXJlZy5oLm9sZAkyMDA5LTAzLTIzIDE1OjM2OjUwLjAwMDAwMDAwMCArMDEw
 MAorKysgaWZfYmdlcmVnLmgJMjAwOS0wOS0xNCAxMjoyMzozOC4wMDAwMDAwMDAgKzAyMDAKQEAg
 LTIxOCw2ICsyMTgsNyBAQAogI2RlZmluZQlCR0VfUENJX1VORElfVFhfQkRfUFJPRElEWF9MTwkw
 eEFDCiAjZGVmaW5lCUJHRV9QQ0lfSVNSX01CWF9ISQkJMHhCMAogI2RlZmluZQlCR0VfUENJX0lT
 Ul9NQlhfTE8JCTB4QjQKKyNkZWZpbmUJQkdFX1BDSV9QUk9ESURfQVNJQ1JFVgkJMHhCQwogCiAv
 KiBQQ0kgTWlzYy4gSG9zdCBjb250cm9sIHJlZ2lzdGVyICovCiAjZGVmaW5lCUJHRV9QQ0lNSVND
 Q1RMX0NMRUFSX0lOVEEJMHgwMDAwMDAwMQpAQCAtMzAyLDYgKzMwMyw3IEBACiAjZGVmaW5lCUJH
 RV9DSElQSURfQkNNNTc4N19BMgkJMHhiMDAyMDAwMAogI2RlZmluZQlCR0VfQ0hJUElEX0JDTTU5
 MDZfQTEJCTB4YzAwMTAwMDAKICNkZWZpbmUJQkdFX0NISVBJRF9CQ001OTA2X0EyCQkweGMwMDIw
 MDAwCisjZGVmaW5lCUJHRV9DSElQSURfQkNNNTc2MQkJMHgwNTc2MTEwMAogCiAvKiBzaG9ydGhh
 bmQgb25lICovCiAjZGVmaW5lCUJHRV9BU0lDUkVWKHgpCQkJKCh4KSA+PiAyOCkKQEAgLTMxOSw2
 ICszMjEsOSBAQAogI2RlZmluZQlCR0VfQVNJQ1JFVl9CQ001NzU0CQkweDBiCiAjZGVmaW5lCUJH
 RV9BU0lDUkVWX0JDTTU3ODcJCTB4MGIKICNkZWZpbmUJQkdFX0FTSUNSRVZfQkNNNTkwNgkJMHgw
 YworI2RlZmluZQlCR0VfQVNJQ1JFVl9QUk9EX0lEX1JFRwkJMHgwZgorCisjZGVmaW5lCUJHRV9B
 U0lDUkVWX0JDTTU3NjEJCTB4NTc2MQogCiAvKiBjaGlwIHJldmlzaW9ucyAqLwogI2RlZmluZQlC
 R0VfQ0hJUFJFVih4KQkJCSgoeCkgPj4gMjQpCkBAIC0yMDk4LDYgKzIxMDMsNyBAQAogI2RlZmlu
 ZQlCQ09NX0RFVklDRUlEX0JDTTU3MTRTCQkweDE2NjkKICNkZWZpbmUJQkNPTV9ERVZJQ0VJRF9C
 Q001NzE1CQkweDE2NzgKICNkZWZpbmUJQkNPTV9ERVZJQ0VJRF9CQ001NzE1UwkJMHgxNjc5Cisj
 ZGVmaW5lCUJDT01fREVWSUNFSURfQkNNNTc2MUUJCTB4MTY4MAogI2RlZmluZQlCQ09NX0RFVklD
 RUlEX0JDTTU3MjAJCTB4MTY1OAogI2RlZmluZQlCQ09NX0RFVklDRUlEX0JDTTU3MjEJCTB4MTY1
 OQogI2RlZmluZQlCQ09NX0RFVklDRUlEX0JDTTU3MjIJCTB4MTY1QQo=
 --0016e6d7e06cd8875604739f640b--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909151530.n8FFU8Yd024287>