FW
bic \tmp1, \tmp1, #(1<<6) | (1<<0) @ clear ACTLR.SMP | ACTLR.FW
FW(fecp, grp_hash_table_high, fep->fec.hthi);
FW(fecp, grp_hash_table_low, fep->fec.htlo);
FW(fecp, addr_low, addrhi);
FW(fecp, addr_high, addrlo);
FW(fecp, grp_hash_table_high, fep->fec.hthi);
FW(fecp, grp_hash_table_low, fep->fec.htlo);
FW(fecp, r_buff_size, PKT_MAXBLR_SIZE);
FW(fecp, r_cntrl, PKT_MAXBUF_SIZE << 16);
FW(fecp, r_hash, PKT_MAXBUF_SIZE);
FW(fecp, r_des_start, rx_bd_base_phys);
FW(fecp, x_des_start, tx_bd_base_phys);
FW(fecp, fun_code, 0x78000000);
FW(fecp, mii_speed, fec_inf->mii_speed);
FW(fecp, ievent, 0xffc0);
FW(fecp, ivec, (virq_to_hw(fep->interrupt) / 2) << 29);
FW(fecp, r_cntrl, FEC_RCNTRL_MII_MODE); /* MII enable */
FW(fecp, imask, FEC_ENET_TXF | FEC_ENET_TXB |
FW(fecp, ecntrl, FEC_ECNTRL_PINMUX | FEC_ECNTRL_ETHER_EN);
FW(fecp, r_des_active, 0x01000000);
FW(fecp, x_cntrl, 0x01); /* Graceful transmit stop */
FW(fecp, imask, 0);
FW(fecp, ievent, FEC_NAPI_EVENT_MSK);
FW(fecp, r_des_active, 0x01000000);
FW(fecp, x_des_active, 0x01000000);
FW(fecp, ievent, int_events);
#define FS(_fecp, _reg, _v) FW(_fecp, _reg, FR(_fecp, _reg) | (_v))
#define FC(_fecp, _reg, _v) FW(_fecp, _reg, FR(_fecp, _reg) & ~(_v))
FW(fecp, ecntrl, FEC_ECNTRL_PINMUX | FEC_ECNTRL_RESET);
#define IDTCM_FW_REG(FW, VER, REG) (((FW) < (VER)) ? (REG) : (REG##_##VER))
#define IDTFC3_FW_REG(FW, VER, REG) (((FW) < (VER)) ? (REG) : (REG##_##VER))
#define IDTFC3_FW_FIELD(FW, VER, FIELD) (((FW) < (VER)) ? (FIELD) : (FIELD##_##VER))