diff options
| author | Vipin KUMAR <vipin.kumar@st.com> | 2012-05-07 13:06:41 +0530 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-07-07 14:07:40 +0200 | 
| commit | 8026b1e42f533f14115bb629efeaaedec6eaf23b (patch) | |
| tree | b2e11daec61a70f7223cd50cb951439ef4a02876 /board/spear/common/spr_misc.c | |
| parent | 70fdbefc6c50010cc56196b65a233369d2b2ce68 (diff) | |
| download | olio-uboot-2014.01-8026b1e42f533f14115bb629efeaaedec6eaf23b.tar.xz olio-uboot-2014.01-8026b1e42f533f14115bb629efeaaedec6eaf23b.zip | |
SPEAr: Place ethaddr write and read within CONFIG_CMD_NET
ethaddr can be optionally read from i2c memory. So, chip_config command supports
reading/writing hw mac id into i2c memory. Placing this code within
CONFIG_CMD_NET as this would only be needed when network interface is configured
Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/spear/common/spr_misc.c')
| -rw-r--r-- | board/spear/common/spr_misc.c | 29 | 
1 files changed, 21 insertions, 8 deletions
| diff --git a/board/spear/common/spr_misc.c b/board/spear/common/spr_misc.c index be96c1504..e2918ff40 100644 --- a/board/spear/common/spr_misc.c +++ b/board/spear/common/spr_misc.c @@ -36,6 +36,10 @@  DECLARE_GLOBAL_DATA_PTR; +#if defined(CONFIG_CMD_NET) +static int i2c_read_mac(uchar *buffer); +#endif +  int dram_init(void)  {  	/* Store complete RAM size and return */ @@ -136,6 +140,7 @@ int spear_board_init(ulong mach_type)  	return 0;  } +#if defined(CONFIG_CMD_NET)  static int i2c_read_mac(uchar *buffer)  {  	u8 buf[2]; @@ -172,17 +177,18 @@ static int write_mac(uchar *mac)  		return 0;  	} -	puts("I2C EEPROM writing failed \n"); +	puts("I2C EEPROM writing failed\n");  	return -1;  } +#endif  int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  {  	void (*sram_setfreq) (unsigned int, unsigned int); +	unsigned int frequency; +#if defined(CONFIG_CMD_NET)  	unsigned char mac[6]; -	unsigned int reg, frequency; -	char *s, *e; -	char i2c_mac[20]; +#endif  	if ((argc > 3) || (argc < 2))  		return cmd_usage(cmdtp); @@ -207,9 +213,12 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  		}  		return 0; + +#if defined(CONFIG_CMD_NET)  	} else if (!strcmp(argv[1], "ethaddr")) { -		s = argv[2]; +		u32 reg; +		char *e, *s = argv[2];  		for (reg = 0; reg < 6; ++reg) {  			mac[reg] = s ? simple_strtoul(s, &e, 16) : 0;  			if (s) @@ -218,14 +227,15 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  		write_mac(mac);  		return 0; +#endif  	} else if (!strcmp(argv[1], "print")) { +#if defined(CONFIG_CMD_NET)  		if (!i2c_read_mac(mac)) { -			sprintf(i2c_mac, "%pM", mac); -			printf("Ethaddr (from i2c mem) = %s\n", i2c_mac); +			printf("Ethaddr (from i2c mem) = %pM\n", mac);  		} else {  			printf("Ethaddr (from i2c mem) = Not set\n");  		} - +#endif  		return 0;  	} @@ -235,4 +245,7 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  U_BOOT_CMD(chip_config, 3, 1, do_chip_config,  	   "configure chip",  	   "chip_config cpufreq/ddrfreq frequency\n" +#if defined(CONFIG_CMD_NET) +	   "chip_config ethaddr XX:XX:XX:XX:XX:XX\n" +#endif  	   "chip_config print"); |