/** * print_macaddr - print MAC address registers and MAC address in eeprom */ static void print_macaddr(void) { puts("Current MAC Address in MAC: "); ulong addrl = smc911x_get_mac_csr(ADDRL); ulong addrh = smc911x_get_mac_csr(ADDRH); printf("%02x:%02x:%02x:%02x:%02x:%02x\n", (u8)(addrl), (u8)(addrl >> 8), (u8)(addrl >> 16), (u8)(addrl >> 24), (u8)(addrh), (u8)(addrh >> 8)); puts("Current MAC Address in EEPROM: "); int i; for (i = 1; i < 6; ++i) printf("%02x:", read_eeprom_reg(i)); printf("%02x\n", read_eeprom_reg(i)); }
/** * dump_eeprom - dump the whole content of the EEPROM */ static void dump_eeprom(void) { int i; puts("EEPROM:\n"); for (i = 0; i < 7; ++i) printf("%02x: 0x%02x\n", i, read_eeprom_reg(i)); }
/** * dump_eeprom - dump the whole content of the EEPROM */ static void dump_eeprom(struct eth_device *dev) { int i; puts("EEPROM:\n"); for (i = 0; i < 7; ++i) printf("%02x: 0x%02x\n", i, read_eeprom_reg(dev, i)); }
int board_get_enetaddr(uchar *mac_addr) { /* See if there is anything there */ if (((*ID_REV & ID_REV_ID_MASK) != ID_REV_CHIP_118) && ((*ID_REV & ID_REV_ID_MASK) != ID_REV_CHIP_218)) return 1; /* Reset the MAC */ *HW_CFG = HW_CFG_SRST; while (*HW_CFG & HW_CFG_SRST) if (ctrlc()) return 1; /* Wait for EEPROM to settle */ while (*E2P_CMD & E2P_CMD_EPC_BUSY) if (ctrlc()) return 1; /* The first byte is magic to indicate status * of the EEPROM. 0xa5 == eeprom mac is valid. */ if (read_eeprom_reg(0x00) != 0xa5) return 1; mac_addr[0] = read_eeprom_reg(0x01); mac_addr[1] = read_eeprom_reg(0x02); mac_addr[2] = read_eeprom_reg(0x03); mac_addr[3] = read_eeprom_reg(0x04); mac_addr[4] = read_eeprom_reg(0x05); mac_addr[5] = read_eeprom_reg(0x06); return 0; }
static int verify_macaddr(char *s) { u16 reg; int i, err = 0; puts("HWaddr: "); for (i = 0; i < 3; i++) { reg = read_eeprom_reg(0x20 + i); printf("%02x:%02x%c", reg & 0xff, reg >> 8, i != 2 ? ':' : '\n'); if (s) err |= reg != ((u16 *)s)[i]; } return err ? 0 : 1; }
static int verify_macaddr(struct eth_device *dev, char *s) { u16 reg; int i, err = 0; printf("MAC Address: "); err = i = 0; for (i = 0; i < 3; i++) { reg = read_eeprom_reg(dev, 0x20 + i); printf("%02x:%02x%c", reg & 0xff, reg >> 8, i != 2 ? ':' : '\n'); if (s) err |= reg != ((u16 *)s)[i]; } return err ? 0 : 1; }
/** * copy_from_eeprom - copy MAC address in eeprom to address registers */ static void copy_from_eeprom(void) { ulong addrl = read_eeprom_reg(0x01) | read_eeprom_reg(0x02) << 8 | read_eeprom_reg(0x03) << 16 | read_eeprom_reg(0x04) << 24; ulong addrh = read_eeprom_reg(0x05) | read_eeprom_reg(0x06) << 8; smc911x_set_mac_csr(ADDRL, addrl); smc911x_set_mac_csr(ADDRH, addrh); puts("EEPROM contents copied to MAC\n"); }