@ -124,6 +124,7 @@
# define CONFIG_CMD_NAND /* NAND support */
# define CONFIG_CMD_PING
# define CONFIG_CMD_USB
# define CONFIG_CMD_EEPROM
# undef CONFIG_CMD_FLASH /* only NAND on the SOM */
# undef CONFIG_CMD_IMLS
@ -134,6 +135,9 @@
# define CONFIG_SYS_I2C_SLAVE 1
# define CONFIG_SYS_I2C_BUS 0
# define CONFIG_SYS_I2C_BUS_SELECT 1
# define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* base address */
# define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* bytes of address */
# define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW 0x07
# define CONFIG_DRIVER_OMAP34XX_I2C
@ -347,4 +351,66 @@
" fi; " \
" else echo U-Boot not downloaded..exiting;fi \0 " \
/*
* this is common code for all TAM3517 boards .
* MAC address is stored from manufacturer in
* I2C EEPROM
*/
# if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
/*
* The I2C EEPROM on the TAM3517 contains
* mac address and production data
*/
struct tam3517_module_info {
char customer [ 48 ] ;
char product [ 48 ] ;
/*
* bit 0 ~ 47 : sequence number
* bit 48 ~ 55 : week of year , from 0.
* bit 56 ~ 63 : year
*/
unsigned long long sequence_number ;
/*
* bit 0 ~ 7 : revision fixed
* bit 8 ~ 15 : revision major
* bit 16 ~ 31 : TNxxx
*/
unsigned int revision ;
unsigned char eth_addr [ 4 ] [ 8 ] ;
unsigned char _rev [ 100 ] ;
} ;
# define TAM3517_READ_MAC_FROM_EEPROM \
do { \
struct tam3517_module_info info ; \
char buf [ 80 ] , ethname [ 20 ] ; \
int i ; \
i2c_init ( CONFIG_SYS_I2C_SPEED , CONFIG_SYS_I2C_SLAVE ) ; \
if ( eeprom_read ( CONFIG_SYS_I2C_EEPROM_ADDR , 0 , \
( void * ) & info , sizeof ( info ) ) ) \
break ; \
memset ( buf , 0 , sizeof ( buf ) ) ; \
for ( i = 0 ; i < ARRAY_SIZE ( info . eth_addr ) ; i + + ) { \
sprintf ( buf , " %02X:%02X:%02X:%02X:%02X:%02X " , \
info . eth_addr [ i ] [ 5 ] , \
info . eth_addr [ i ] [ 4 ] , \
info . eth_addr [ i ] [ 3 ] , \
info . eth_addr [ i ] [ 2 ] , \
info . eth_addr [ i ] [ 1 ] , \
info . eth_addr [ i ] [ 0 ] ) ; \
\
if ( i ) \
sprintf ( ethname , " eth%daddr " , i ) ; \
else \
sprintf ( ethname , " ethaddr " ) ; \
printf ( " Setting %s from EEPROM with %s \n " , ethname , buf ) ; \
setenv ( ethname , buf ) ; \
} \
} while ( 0 )
# endif
# endif /* __TAM3517_H */