|
|
|
@ -66,7 +66,7 @@ int i2c_read (unsigned char chip, unsigned int addr, int alen, |
|
|
|
|
* Internal structure: see struct definition |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
void misc_init_r(void) |
|
|
|
|
int misc_init_r(void) |
|
|
|
|
{ |
|
|
|
|
struct manufacturer_data data; |
|
|
|
|
char serial [9]; |
|
|
|
@ -80,7 +80,7 @@ void misc_init_r(void) |
|
|
|
|
if (i2c_read(I2C_CHIP, I2C_OFFSET, I2C_ALEN, (unsigned char *)&data, |
|
|
|
|
sizeof(data)) != 0) { |
|
|
|
|
puts ("Error reading manufacturer data from EEPROM\n"); |
|
|
|
|
return; |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* check if manufacturer data block is valid */ |
|
|
|
@ -93,7 +93,7 @@ void misc_init_r(void) |
|
|
|
|
|
|
|
|
|
if (chksum != data.chksum) { |
|
|
|
|
puts ("Error: manufacturer data block has invalid checksum\n"); |
|
|
|
|
return; |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* copy serial number */ |
|
|
|
@ -107,4 +107,6 @@ void misc_init_r(void) |
|
|
|
|
if (getenv("ethaddr") == NULL) { |
|
|
|
|
eth_setenv_enetaddr("ethaddr", data.macadr); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|