Exemplo n.º 1
0
/**
 *	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));
}
Exemplo n.º 2
0
/**
 *	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));
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
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;
}
Exemplo n.º 6
0
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;
}
Exemplo n.º 7
0
/**
 *	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");
}