Lines Matching refs:emac
1 /* Blackfin Ethernet Media Access Controller (EMAC) model.
143 struct bfin_emac *emac = hw_data (me);
145 bu8 addr = PHYAD (emac->staadd);
146 bu8 reg = REGAD (emac->staadd);
147 bu16 data = emac->stadat;
159 struct bfin_emac *emac = hw_data (me);
161 bu8 addr = PHYAD (emac->staadd);
162 bu8 reg = REGAD (emac->staadd);
169 emac->stadat = data;
176 struct bfin_emac *emac = hw_data (me);
187 mmr_off = addr - emac->base;
188 valuep = (void *)((uintptr_t)emac + mmr_base() + mmr_off);
217 emac->rx_stat &= ~RX_COMP;
219 emac->tx_stat &= ~TX_COMP;
255 memset (&emac->rxc_ok, 0, mmr_offset (rxc_ge1024) - mmr_offset (rxc_ok) + 4);
256 memset (&emac->txc_ok, 0, mmr_offset (txc_abort) - mmr_offset (txc_ok) + 4);
279 struct bfin_emac *emac = hw_data (me);
288 mmr_off = addr - emac->base;
289 valuep = (void *)((uintptr_t)emac + mmr_base() + mmr_off);
343 attach_bfin_emac_regs (struct hw *me, struct bfin_emac *emac)
367 emac->base = attach_address;
376 struct bfin_emac *emac = hw_data (me);
377 struct dv_bfin *dma = hw_data (emac->dma_master);
388 emac->tx_stat |= TX_OK;
389 emac->tx_stky |= TX_OK;
391 memcpy (data, &emac->tx_stat, 4);
397 if (!(emac->opmode & RE))
407 if (emac->sysctl & RXDWA)
413 ret = read (emac->tap, data, nr_bytes);
427 if (emac->sysctl & RXCKS)
430 emac->rx_crc = 0;
435 emac->rx_stat |= RX_ACCEPT;
436 emac->rx_stat = (emac->rx_stat & ~RX_FRLEN) | len;
438 emac->rx_stat |= RX_COMP;
439 emac->rx_stky |= RX_COMP;
444 emac->rx_stat |= RX_OK;
445 emac->rx_stky |= RX_OK;
448 if (emac->sysctl & RXCKS)
450 memcpy (data, &emac->rx_crc, 4);
454 memcpy (data, &emac->rx_stat, 4);
468 struct bfin_emac *emac = hw_data (me);
469 struct dv_bfin *dma = hw_data (emac->dma_master);
476 if (!(emac->opmode & TE))
484 ret = write (emac->tap, data + 2, len);
489 emac->tx_stat |= TX_COMP;
490 emac->tx_stky |= TX_COMP;
533 struct bfin_emac *emac = hw_data (me);
534 close (emac->tap);
541 struct bfin_emac *emac = hw_data (me);
544 emac->tap = open ("/dev/net/tun", O_RDWR);
545 if (emac->tap == -1)
551 memset (&emac->ifr, 0, sizeof (emac->ifr));
552 emac->ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
553 strcpy (emac->ifr.ifr_name, "tap-gdb");
556 if (ioctl (emac->tap, TUNSETIFF, &emac->ifr) < 0
558 || ioctl (emac->tap, TUNSETNOCSUM) < 0
561 || ioctl (emac->tap, TUNSETSNDBUF, &flags) < 0
566 close (emac->tap);
570 flags = fcntl (emac->tap, F_GETFL);
571 fcntl (emac->tap, F_SETFL, flags | O_NONBLOCK);
578 struct bfin_emac *emac;
580 emac = HW_ZALLOC (me, struct bfin_emac);
582 set_hw_data (me, emac);
591 attach_bfin_emac_regs (me, emac);
593 /* Initialize the EMAC. */
594 emac->addrlo = 0xffffffff;
595 emac->addrhi = 0x0000ffff;
596 emac->vlan1 = 0x0000ffff;
597 emac->vlan2 = 0x0000ffff;
598 emac->sysctl = 0x00003f00;
599 emac->mmc_ctl = 0x0000000a;