Beispiel #1
0
/* Identify NIC type
*/
static void
identify_nic(void)
{
	struct board_info *db = &dmfe_info;	/* Point a board information structure */
	u16 phy_reg3;
	DM9000_iow(DM9000_NCR, NCR_EXT_PHY);
	phy_reg3 = phy_read(3);
	switch (phy_reg3 & 0xfff0) {
	case 0xb900:
		if (phy_read(31) == 0x4404) {
			db->nic_type = HOMERUN_NIC;
			program_dm9801(phy_reg3);
			DM9000_DBG("found homerun NIC\n");
		} else {
			db->nic_type = LONGRUN_NIC;
			DM9000_DBG("found longrun NIC\n");
			program_dm9802();
		}
		break;
	default:
		db->nic_type = FASTETHER_NIC;
		break;
	}
	DM9000_iow(DM9000_NCR, 0);
}
Beispiel #2
0
/* Identify NIC type */
static void identify_nic(board_info_t * db)
{
    u16 phy_reg3;

    iow(db, 0, DM9000_EXT_MII);
    phy_reg3 = phy_read(db, 3);

    switch (phy_reg3 & 0xfff0) {

    case 0xb900:

        if (phy_read(db, 31) == 0x4404) {
            db->nic_type = HOMERUN_NIC;
            program_dm9801(db, phy_reg3);
        } else {
            db->nic_type = LONGRUN_NIC;
            program_dm9802(db);
        }
        break;
    default:
        db->nic_type = FASTETHER_NIC;
        break;
    }

    iow(db, 0, DM9000_INT_MII);
}