Module Name: src
Committed By: matt
Date: Fri Oct 5 03:57:21 UTC 2012
Modified Files:
src/sys/arch/arm/broadcom: bcm53xx_eth.c
Log Message:
Fix setting of ethernet address.
Don't set HASFCS
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm53xx_eth.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c
diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.4 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.5
--- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.4 Fri Oct 5 03:24:51 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Fri Oct 5 03:57:21 2012
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.4 2012/10/05 03:24:51 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.5 2012/10/05 03:57:21 matt Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -249,12 +249,12 @@ bcmeth_ccb_attach(device_t parent, devic
aprint_error(": mac-address property is missing\n");
return;
}
- sc->sc_enaddr[0] = (mac1 >> 0) & 0xff;
- sc->sc_enaddr[1] = (mac1 >> 8) & 0xff;
- sc->sc_enaddr[2] = (mac0 >> 0) & 0xff;
- sc->sc_enaddr[3] = (mac0 >> 8) & 0xff;
- sc->sc_enaddr[4] = (mac0 >> 16) & 0xff;
- sc->sc_enaddr[5] = (mac0 >> 24) & 0xff;
+ sc->sc_enaddr[0] = (mac0 >> 0) & 0xff;
+ sc->sc_enaddr[1] = (mac0 >> 8) & 0xff;
+ sc->sc_enaddr[2] = (mac0 >> 16) & 0xff;
+ sc->sc_enaddr[3] = (mac0 >> 24) & 0xff;
+ sc->sc_enaddr[4] = (mac1 >> 0) & 0xff;
+ sc->sc_enaddr[5] = (mac1 >> 8) & 0xff;
} else {
KASSERT(prop_object_type(eaprop) == PROP_TYPE_DATA);
KASSERT(prop_data_size(eaprop) == ETHER_ADDR_LEN);
@@ -373,12 +373,12 @@ bcmeth_mediastatus(struct ifnet *ifp, st
static uint64_t
bcmeth_macaddr_create(const uint8_t *enaddr)
{
- return (enaddr[2] << 0) // UNIMAC_MAC_0
- | (enaddr[3] << 8) // UNIMAC_MAC_0
- | (enaddr[4] << 16) // UNIMAC_MAC_0
- | (enaddr[5] << 24) // UNIMAC_MAC_0
- | ((uint64_t)enaddr[0] << 32) // UNIMAC_MAC_1
- | ((uint64_t)enaddr[1] << 40); // UNIMAC_MAC_1
+ return (enaddr[3] << 0) // UNIMAC_MAC_0
+ | (enaddr[2] << 8) // UNIMAC_MAC_0
+ | (enaddr[1] << 16) // UNIMAC_MAC_0
+ | (enaddr[0] << 24) // UNIMAC_MAC_0
+ | ((uint64_t)enaddr[5] << 32) // UNIMAC_MAC_1
+ | ((uint64_t)enaddr[4] << 40); // UNIMAC_MAC_1
}
static int
@@ -903,7 +903,6 @@ bcmeth_rx_input(
}
if (sc->sc_cmdcfg & PROMISC_EN)
m->m_flags |= M_PROMISC;
- m->m_flags |= M_HASFCS;
m->m_pkthdr.rcvif = ifp;
ifp->if_ipackets++;
@@ -1359,7 +1358,7 @@ bcmeth_txq_consume(
txq->txq_free += txfree;
txq->txq_lastintr -= min(txq->txq_lastintr, txfree);
#if 0
- printf("%s: empty: freed %zu descriptors going form %zu to %zu\n",
+ printf("%s: empty: freed %zu descriptors going from %zu to %zu\n",
__func__, txfree, txq->txq_free - txfree, txq->txq_free);
#endif
KASSERT(txq->txq_lastintr == 0);