FEC_WRITE
FEC_WRITE(sc, FEC_ECNTRL, FEC_ECNTRL_RESET);
FEC_WRITE(sc, FEC_IMASK, 0); /* mask all events */
FEC_WRITE(sc, FEC_IEVENT, 0xffffffff); /* clear events */
FEC_WRITE(sc, FEC_MII_SPEED, FEC_MII_SPEED_DIV(div));
FEC_WRITE(sc, FEC_IEVENT, FEC_INT_MII);
FEC_WRITE(sc, FEC_IEVENT, FEC_INT_MII);
FEC_WRITE(sc, FEC_MII_DATA, FEC_MII_READ(phy, reg));
FEC_WRITE(sc, FEC_IEVENT, FEC_INT_MII);
FEC_WRITE(sc, FEC_MII_DATA, FEC_MII_WRITE(phy, reg, val));
FEC_WRITE(sc, FEC_X_CNTRL, xcr);
FEC_WRITE(sc, FEC_R_CNTRL, rcr);
FEC_WRITE(sc, FEC_PADDR1,
FEC_WRITE(sc, FEC_PADDR2,
FEC_WRITE(sc, FEC_IADDR1, 0);
FEC_WRITE(sc, FEC_IADDR2, 0);
FEC_WRITE(sc, FEC_R_CNTRL,
FEC_WRITE(sc, FEC_X_CNTRL, FEC_X_CNTRL_FDEN);
FEC_WRITE(sc, FEC_RESET_CNTRL, FEC_RESET_CNTRL_FIFO_EN);
FEC_WRITE(sc, FEC_RFIFO_CONTROL, FEC_FIFO_CTRL_INIT);
FEC_WRITE(sc, FEC_TFIFO_CONTROL, FEC_FIFO_CTRL_INIT);
FEC_WRITE(sc, FEC_TFIFO_ALARM, 0x80);
FEC_WRITE(sc, FEC_GADDR1, gaddr[1]); /* buckets 32..63 */
FEC_WRITE(sc, FEC_GADDR2, gaddr[0]); /* buckets 0..31 */
FEC_WRITE(sc, FEC_R_CNTRL, rcr);
FEC_WRITE(sc, FEC_MIB_CONTROL, 0);
FEC_WRITE(sc, FEC_ECNTRL, FEC_ECNTRL_ETHER_EN);
FEC_WRITE(sc, FEC_ECNTRL, 0);
FEC_WRITE(sc, FEC_IEVENT, ievent); /* acknowledge */