EPE_WRITE
EPE_WRITE(IntEn, IntEn_REOFIE);
EPE_WRITE(RXStsEnq, ndq);
EPE_WRITE(RXDEnq, ndq);
EPE_WRITE(AFP, 0);
EPE_WRITE(SelfCtl, SelfCtl_RESET);
EPE_WRITE(RXBufThrshld, 0x800040);
EPE_WRITE(TXBufThrshld, 0x200010);
EPE_WRITE(RXStsThrshld, 0x40002);
EPE_WRITE(TXStsThrshld, 0x40002);
EPE_WRITE(RXDThrshld, 0x40002);
EPE_WRITE(TXDThrshld, 0x40002);
EPE_WRITE(TXDQBAdd, (uint32_t)addr);
EPE_WRITE(TXDQCurAdd, (uint32_t)addr);
EPE_WRITE(TXDQBLen, TX_QLEN * 2 * sizeof(uint32_t));
EPE_WRITE(TXStsQBAdd, (uint32_t)addr);
EPE_WRITE(TXStsQCurAdd, (uint32_t)addr);
EPE_WRITE(TXStsQBLen, TX_QLEN * sizeof(uint32_t));
EPE_WRITE(RXDQBAdd, (uint32_t)addr);
EPE_WRITE(RXDCurAdd, (uint32_t)addr);
EPE_WRITE(RXDQBLen, RX_QLEN * 2 * sizeof(uint32_t));
EPE_WRITE(RXStsQBAdd, (uint32_t)addr);
EPE_WRITE(RXStsQCurAdd, (uint32_t)addr);
EPE_WRITE(RXStsQBLen, RX_QLEN * 2 * sizeof(uint32_t));
EPE_WRITE(SelfCtl, (SelfCtl_MDCDIV(mdcdiv) | SelfCtl_PSPRS));
EPE_WRITE(BMCtl, BMCtl_RxEn | BMCtl_TxEn);
EPE_WRITE(IntEn, IntEn_REOFIE);
EPE_WRITE(MaxFrmLen, (0x7ff << 16) | MHLEN);
EPE_WRITE(RXDEnq, RX_QLEN - 1);
EPE_WRITE(RXStsEnq, RX_QLEN - 1);
EPE_WRITE(SelfCtl, d & ~SelfCtl_PSPRS); /* no preamble suppress */
EPE_WRITE(MIICmd, (MIICmd_READ | (phy << 5) | reg));
EPE_WRITE(SelfCtl, d); /* restore old value */
EPE_WRITE(SelfCtl, d & ~SelfCtl_PSPRS); /* no preamble suppress */
EPE_WRITE(MIIData, val);
EPE_WRITE(MIICmd, (MIICmd_WRITE | (phy << 5) | reg));
EPE_WRITE(SelfCtl, d); /* restore old value */
EPE_WRITE(TestCtl, reg);
EPE_WRITE(IntEn, IntEn_REOFIE | IntEn_ECIE);
EPE_WRITE(TXDEnq, ndq);
EPE_WRITE(RXCtl, RXCtl_IA0 | RXCtl_BA | RXCtl_RCRCA | RXCtl_SRxON);
EPE_WRITE(TXCtl, TXCtl_STxON);
EPE_WRITE(GIIntMsk, GIIntMsk_INT); /* start interrupting */
EPE_WRITE(RXCtl, 0);
EPE_WRITE(TXCtl, 0);
EPE_WRITE(GIIntMsk, 0);
EPE_WRITE(RXCtl, rxctl & ~RXCtl_SRxON);
EPE_WRITE(AFP, 0);
EPE_WRITE(AFP, 2);
EPE_WRITE(AFP, 3);
EPE_WRITE(AFP, 7);
EPE_WRITE(HashTbl, hashes[0]);
EPE_WRITE(HashTbl + 4, hashes[1]);
EPE_WRITE(RXCtl, rxctl);