Deleted Added
full compact
if_bge.c (100695) if_bge.c (103103)
1/*
2 * Copyright (c) 2001 Wind River Systems
3 * Copyright (c) 1997, 1998, 1999, 2001
4 * Bill Paul <wpaul@windriver.com>. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 16 unchanged lines hidden (view full) ---

25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 *
1/*
2 * Copyright (c) 2001 Wind River Systems
3 * Copyright (c) 1997, 1998, 1999, 2001
4 * Bill Paul <wpaul@windriver.com>. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 16 unchanged lines hidden (view full) ---

25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 * $FreeBSD: head/sys/dev/bge/if_bge.c 100695 2002-07-26 03:47:08Z jdp $
33 * $FreeBSD: head/sys/dev/bge/if_bge.c 103103 2002-09-08 19:12:02Z jdp $
34 */
35
36/*
37 * Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
38 *
39 * Written by Bill Paul <wpaul@windriver.com>
40 * Senior Engineer, Wind River Systems
41 */

--- 75 unchanged lines hidden (view full) ---

117
118MODULE_DEPEND(bge, miibus, 1, 1, 1);
119
120/* "controller miibus0" required. See GENERIC if you get errors here. */
121#include "miibus_if.h"
122
123#if !defined(lint)
124static const char rcsid[] =
34 */
35
36/*
37 * Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
38 *
39 * Written by Bill Paul <wpaul@windriver.com>
40 * Senior Engineer, Wind River Systems
41 */

--- 75 unchanged lines hidden (view full) ---

117
118MODULE_DEPEND(bge, miibus, 1, 1, 1);
119
120/* "controller miibus0" required. See GENERIC if you get errors here. */
121#include "miibus_if.h"
122
123#if !defined(lint)
124static const char rcsid[] =
125 "$FreeBSD: head/sys/dev/bge/if_bge.c 100695 2002-07-26 03:47:08Z jdp $";
125 "$FreeBSD: head/sys/dev/bge/if_bge.c 103103 2002-09-08 19:12:02Z jdp $";
126#endif
127
128/*
129 * Various supported device vendors/types and their names. Note: the
130 * spec seems to indicate that the hardware still has Alteon's vendor
131 * ID burned into it, though it will always be overriden by the vendor
132 * ID in the EEPROM. Just to be safe, we cover all possibilities.
133 */
134
135static struct bge_type bge_devs[] = {
136 { ALT_VENDORID, ALT_DEVICEID_BCM5700,
137 "Broadcom BCM5700 Gigabit Ethernet" },
138 { ALT_VENDORID, ALT_DEVICEID_BCM5701,
139 "Broadcom BCM5701 Gigabit Ethernet" },
140 { BCOM_VENDORID, BCOM_DEVICEID_BCM5700,
141 "Broadcom BCM5700 Gigabit Ethernet" },
142 { BCOM_VENDORID, BCOM_DEVICEID_BCM5701,
143 "Broadcom BCM5701 Gigabit Ethernet" },
126#endif
127
128/*
129 * Various supported device vendors/types and their names. Note: the
130 * spec seems to indicate that the hardware still has Alteon's vendor
131 * ID burned into it, though it will always be overriden by the vendor
132 * ID in the EEPROM. Just to be safe, we cover all possibilities.
133 */
134
135static struct bge_type bge_devs[] = {
136 { ALT_VENDORID, ALT_DEVICEID_BCM5700,
137 "Broadcom BCM5700 Gigabit Ethernet" },
138 { ALT_VENDORID, ALT_DEVICEID_BCM5701,
139 "Broadcom BCM5701 Gigabit Ethernet" },
140 { BCOM_VENDORID, BCOM_DEVICEID_BCM5700,
141 "Broadcom BCM5700 Gigabit Ethernet" },
142 { BCOM_VENDORID, BCOM_DEVICEID_BCM5701,
143 "Broadcom BCM5701 Gigabit Ethernet" },
144 { BCOM_VENDORID, BCOM_DEVICEID_BCM5703X,
145 "Broadcom BCM5703X Gigabit Ethernet" },
144 { SK_VENDORID, SK_DEVICEID_ALTIMA,
145 "SysKonnect Gigabit Ethernet" },
146 { ALTIMA_VENDORID, ALTIMA_DEVICE_AC1000,
147 "Altima AC1000 Gigabit Ethernet" },
148 { ALTIMA_VENDORID, ALTIMA_DEVICE_AC9100,
149 "Altima AC9100 Gigabit Ethernet" },
150 { 0, 0, NULL }
151};

--- 324 unchanged lines hidden (view full) ---

476 struct bge_softc *sc;
477 struct ifnet *ifp;
478 u_int32_t val;
479 int i;
480
481 sc = device_get_softc(dev);
482 ifp = &sc->arpcom.ac_if;
483
146 { SK_VENDORID, SK_DEVICEID_ALTIMA,
147 "SysKonnect Gigabit Ethernet" },
148 { ALTIMA_VENDORID, ALTIMA_DEVICE_AC1000,
149 "Altima AC1000 Gigabit Ethernet" },
150 { ALTIMA_VENDORID, ALTIMA_DEVICE_AC9100,
151 "Altima AC9100 Gigabit Ethernet" },
152 { 0, 0, NULL }
153};

--- 324 unchanged lines hidden (view full) ---

478 struct bge_softc *sc;
479 struct ifnet *ifp;
480 u_int32_t val;
481 int i;
482
483 sc = device_get_softc(dev);
484 ifp = &sc->arpcom.ac_if;
485
484 if (sc->bge_asicrev == BGE_ASICREV_BCM5701_B5 && phy != 1)
485 return(0);
486 if (phy != 1)
487 switch(sc->bge_asicrev) {
488 case BGE_ASICREV_BCM5701_B5:
489 case BGE_ASICREV_BCM5703_A2:
490 return(0);
491 }
486
487 CSR_WRITE_4(sc, BGE_MI_COMM, BGE_MICMD_READ|BGE_MICOMM_BUSY|
488 BGE_MIPHY(phy)|BGE_MIREG(reg));
489
490 for (i = 0; i < BGE_TIMEOUT; i++) {
491 val = CSR_READ_4(sc, BGE_MI_COMM);
492 if (!(val & BGE_MICOMM_BUSY))
493 break;

--- 982 unchanged lines hidden (view full) ---

1476bge_attach(dev)
1477 device_t dev;
1478{
1479 int s;
1480 u_int32_t command;
1481 struct ifnet *ifp;
1482 struct bge_softc *sc;
1483 u_int32_t hwcfg = 0;
492
493 CSR_WRITE_4(sc, BGE_MI_COMM, BGE_MICMD_READ|BGE_MICOMM_BUSY|
494 BGE_MIPHY(phy)|BGE_MIREG(reg));
495
496 for (i = 0; i < BGE_TIMEOUT; i++) {
497 val = CSR_READ_4(sc, BGE_MI_COMM);
498 if (!(val & BGE_MICOMM_BUSY))
499 break;

--- 982 unchanged lines hidden (view full) ---

1482bge_attach(dev)
1483 device_t dev;
1484{
1485 int s;
1486 u_int32_t command;
1487 struct ifnet *ifp;
1488 struct bge_softc *sc;
1489 u_int32_t hwcfg = 0;
1490 u_int32_t mac_addr = 0;
1484 int unit, error = 0, rid;
1485
1486 s = splimp();
1487
1488 sc = device_get_softc(dev);
1489 unit = device_get_unit(dev);
1490 sc->bge_dev = dev;
1491 sc->bge_unit = unit;

--- 72 unchanged lines hidden (view full) ---

1564 bge_release_resources(sc);
1565 error = ENXIO;
1566 goto fail;
1567 }
1568
1569 /*
1570 * Get station address from the EEPROM.
1571 */
1491 int unit, error = 0, rid;
1492
1493 s = splimp();
1494
1495 sc = device_get_softc(dev);
1496 unit = device_get_unit(dev);
1497 sc->bge_dev = dev;
1498 sc->bge_unit = unit;

--- 72 unchanged lines hidden (view full) ---

1571 bge_release_resources(sc);
1572 error = ENXIO;
1573 goto fail;
1574 }
1575
1576 /*
1577 * Get station address from the EEPROM.
1578 */
1572 if (bge_read_eeprom(sc, (caddr_t)&sc->arpcom.ac_enaddr,
1579 mac_addr = bge_readmem_ind(sc, 0x0c14);
1580 if ((mac_addr >> 16) == 0x484b) {
1581 sc->arpcom.ac_enaddr[0] = (u_char)(mac_addr >> 8);
1582 sc->arpcom.ac_enaddr[1] = (u_char)mac_addr;
1583 mac_addr = bge_readmem_ind(sc, 0x0c18);
1584 sc->arpcom.ac_enaddr[2] = (u_char)(mac_addr >> 24);
1585 sc->arpcom.ac_enaddr[3] = (u_char)(mac_addr >> 16);
1586 sc->arpcom.ac_enaddr[4] = (u_char)(mac_addr >> 8);
1587 sc->arpcom.ac_enaddr[5] = (u_char)mac_addr;
1588 } else if (bge_read_eeprom(sc, (caddr_t)&sc->arpcom.ac_enaddr,
1573 BGE_EE_MAC_OFFSET + 2, ETHER_ADDR_LEN)) {
1574 printf("bge%d: failed to read station address\n", unit);
1575 bge_release_resources(sc);
1576 error = ENXIO;
1577 goto fail;
1578 }
1579
1580 /*

--- 1205 unchanged lines hidden ---
1589 BGE_EE_MAC_OFFSET + 2, ETHER_ADDR_LEN)) {
1590 printf("bge%d: failed to read station address\n", unit);
1591 bge_release_resources(sc);
1592 error = ENXIO;
1593 goto fail;
1594 }
1595
1596 /*

--- 1205 unchanged lines hidden ---