Lines Matching refs:ethDev
439 E1000Dev *ethDev = (E1000Dev *)PAlloc_AllocPage();
443 ASSERT((void *)ethDev == (void *)ðDev->nic);
455 memcpy(ðDev->dev, &dev, sizeof(dev));
468 ethDev->mmiobase = (uint8_t *)DMPA2VA(dev.bars[0].base);
471 MMIO_Write32(ethDev, E1000_REG_CTRL, MMIO_Read32(ethDev, E1000_REG_CTRL) | CTRL_SLU);
475 ethDev->irqHandle.irq = dev.irq;
476 ethDev->irqHandle.cb = &E1000_Interrupt;
477 ethDev->irqHandle.arg = ethDev;
478 IRQ_Register(dev.irq, ðDev->irqHandle);
482 E1000_EEPROM_Read(ethDev, NVM_MAC_ADDR + 2*i);
486 Spinlock_Init(ðDev->lock, "E1000 Spinlock", SPINLOCK_TYPE_NORMAL);
489 Semaphore_Init(ðDev->ioSema, 0, "E1000 Semaphore");
490 ethDev->nic.tx = &E1000_Enqueue;
491 ethDev->nic.rx = &E1000_Dequeue;
494 //MMIO_Write32(ethDev, E1000_REG_IMC, ~0);
495 MMIO_Write32(ethDev, E1000_REG_IMS, 0x1F6DC); //ICR_TXDW | ICR_RXO | ICR_RXT0);
496 MMIO_Read32(ethDev, E1000_REG_ICR); // Clear pending interrupts
498 E1000_RXInit(ethDev);
499 E1000_TXInit(ethDev);
501 ethDev->nic.handle = ethDev;
503 NIC_AddNIC(ðDev->nic);