|
@@ -31,6 +31,7 @@
|
|
#include <status_led.h>
|
|
#include <status_led.h>
|
|
#include <sha1.h>
|
|
#include <sha1.h>
|
|
#include <asm/io.h>
|
|
#include <asm/io.h>
|
|
|
|
+#include <net.h>
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
|
@@ -186,8 +187,7 @@ static void load_ethaddr(void)
|
|
{
|
|
{
|
|
int ok_ethaddr, ok_eth1addr;
|
|
int ok_ethaddr, ok_eth1addr;
|
|
int ret;
|
|
int ret;
|
|
- char buf[EEPROM_LEN];
|
|
|
|
- char mac[32];
|
|
|
|
|
|
+ uchar buf[EEPROM_LEN];
|
|
char *use_eeprom;
|
|
char *use_eeprom;
|
|
u16 checksumcrc16 = 0;
|
|
u16 checksumcrc16 = 0;
|
|
|
|
|
|
@@ -200,14 +200,14 @@ static void load_ethaddr(void)
|
|
/* read the MACs from EEprom */
|
|
/* read the MACs from EEprom */
|
|
status_led_set (0, STATUS_LED_ON);
|
|
status_led_set (0, STATUS_LED_ON);
|
|
status_led_set (1, STATUS_LED_ON);
|
|
status_led_set (1, STATUS_LED_ON);
|
|
- ret = eeprom_read (CONFIG_SYS_I2C_EEPROM_ADDR, 0, (uchar *)buf, EEPROM_LEN);
|
|
|
|
|
|
+ ret = eeprom_read (CONFIG_SYS_I2C_EEPROM_ADDR, 0, buf, EEPROM_LEN);
|
|
if (ret == 0) {
|
|
if (ret == 0) {
|
|
- checksumcrc16 = cyg_crc16 ((uchar *)buf, EEPROM_LEN - 2);
|
|
|
|
|
|
+ checksumcrc16 = cyg_crc16 (buf, EEPROM_LEN - 2);
|
|
/* check, if the EEprom is programmed:
|
|
/* check, if the EEprom is programmed:
|
|
* - The Prefix(Byte 0,1,2) is equal to "ATR"
|
|
* - The Prefix(Byte 0,1,2) is equal to "ATR"
|
|
* - The checksum, stored in the last 2 Bytes, is correct
|
|
* - The checksum, stored in the last 2 Bytes, is correct
|
|
*/
|
|
*/
|
|
- if ((strncmp (buf,"ATR",3) != 0) ||
|
|
|
|
|
|
+ if ((strncmp ((char *)buf,"ATR",3) != 0) ||
|
|
((checksumcrc16 >> 8) != buf[EEPROM_LEN - 2]) ||
|
|
((checksumcrc16 >> 8) != buf[EEPROM_LEN - 2]) ||
|
|
((checksumcrc16 & 0xff) != buf[EEPROM_LEN - 1])) {
|
|
((checksumcrc16 & 0xff) != buf[EEPROM_LEN - 1])) {
|
|
/* EEprom is not programmed */
|
|
/* EEprom is not programmed */
|