Lines Matching defs:eaddr

147 static int	ae_get_vpd_eaddr(ae_softc_t *sc, uint32_t *eaddr);
148 static int ae_get_reg_eaddr(ae_softc_t *sc, uint32_t *eaddr);
204 #define AE_CHECK_EADDR_VALID(eaddr) \
205 ((eaddr[0] == 0 && eaddr[1] == 0) || \
206 (eaddr[0] == 0xffffffff && eaddr[1] == 0xffff))
356 ether_ifattach(ifp, sc->eaddr);
546 uint8_t eaddr[ETHER_ADDR_LEN];
571 bcopy(if_getlladdr(ifp), eaddr, ETHER_ADDR_LEN);
572 val = eaddr[2] << 24 | eaddr[3] << 16 | eaddr[4] << 8 | eaddr[5];
574 val = eaddr[0] << 8 | eaddr[1];
952 ae_get_vpd_eaddr(ae_softc_t *sc, uint32_t *eaddr)
961 KASSERT(eaddr != NULL, ("[ae, %d]: eaddr is NULL", __LINE__));
995 eaddr[0] = val;
997 eaddr[1] = val;
1004 eaddr[1] &= 0xffff; /* Only last 2 bytes are used. */
1005 if (AE_CHECK_EADDR_VALID(eaddr) != 0) {
1015 ae_get_reg_eaddr(ae_softc_t *sc, uint32_t *eaddr)
1021 eaddr[0] = AE_READ_4(sc, AE_EADDR0_REG);
1022 eaddr[1] = AE_READ_4(sc, AE_EADDR1_REG);
1023 eaddr[1] &= 0xffff; /* Only last 2 bytes are used. */
1025 if (AE_CHECK_EADDR_VALID(eaddr) != 0) {
1037 uint32_t eaddr[2] = {0, 0};
1043 error = ae_get_vpd_eaddr(sc, eaddr);
1045 error = ae_get_reg_eaddr(sc, eaddr);
1050 eaddr[0] = arc4random();
1055 sc->eaddr[0] = 0x02; /* U/L bit set. */
1056 sc->eaddr[1] = 0x1f;
1057 sc->eaddr[2] = 0xc6;
1058 sc->eaddr[3] = (eaddr[0] >> 16) & 0xff;
1059 sc->eaddr[4] = (eaddr[0] >> 8) & 0xff;
1060 sc->eaddr[5] = (eaddr[0] >> 0) & 0xff;
1062 sc->eaddr[0] = (eaddr[1] >> 8) & 0xff;
1063 sc->eaddr[1] = (eaddr[1] >> 0) & 0xff;
1064 sc->eaddr[2] = (eaddr[0] >> 24) & 0xff;
1065 sc->eaddr[3] = (eaddr[0] >> 16) & 0xff;
1066 sc->eaddr[4] = (eaddr[0] >> 8) & 0xff;
1067 sc->eaddr[5] = (eaddr[0] >> 0) & 0xff;