[U-Boot] [PATCH 2/4] SPEAr : Placing ethaddr write and read within CONFIG_CMD_NET

Tom Tom.Rix at windriver.com
Mon Mar 29 00:38:34 CEST 2010


Vipin KUMAR wrote:
> 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 at st.com>
> ---
>  board/spear/common/spr_misc.c |   22 +++++++++++++++++++---
>  1 files changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/board/spear/common/spr_misc.c b/board/spear/common/spr_misc.c
> index e356912..935b2fa 100755
> --- a/board/spear/common/spr_misc.c
> +++ b/board/spear/common/spr_misc.c
> @@ -37,6 +37,9 @@
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  static struct chip_data chip_data;
> +#if defined(CONFIG_CMD_NET)
> +static int i2c_read_mac(uchar *);
> +#endif
>  
>  int dram_init(void)
>  {
> @@ -166,6 +169,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];
> @@ -205,15 +209,20 @@ static int write_mac(uchar *mac)
>  	puts("I2C EEPROM writing failed \n");
>  	return -1;
>  }
> +#endif
>  
>  int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>  {
>  	void (*sram_setfreq) (unsigned int, unsigned int);
>  	struct chip_data *chip = &chip_data;
> -	unsigned char mac[6];
> -	unsigned int reg, frequency;
> +	unsigned int frequency;
> +
> +#if defined(CONFIG_CMD_NET)
> +	unsigned int reg;
>  	char *s, *e;
>  	char i2c_mac[20];
> +	unsigned char mac[6];
> +#endif
>  
>  	if ((argc > 3) || (argc < 2)) {
>  		cmd_usage(cmdtp);
> @@ -244,6 +253,8 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>  		}
>  
>  		return 0;
> +
> +#if defined(CONFIG_CMD_NET)
>  	} else if (!strcmp(argv[1], "ethaddr")) {
>  
>  		s = argv[2];
> @@ -255,6 +266,7 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>  		write_mac(mac);
>  
>  		return 0;
> +#endif
>  	} else if (!strcmp(argv[1], "print")) {
>  
>  		if (chip->cpufreq == -1)
> @@ -274,13 +286,14 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>  		else
>  			printf("DDR Type    = Not Known\n");
>  
> +#if defined(CONFIG_CMD_NET)
>  		if (!i2c_read_mac(mac)) {
>  			sprintf(i2c_mac, "%pM", mac);
>  			printf("Ethaddr (from i2c mem) = %s\n", i2c_mac);
>  		} else {
>  			printf("Ethaddr (from i2c mem) = Not set\n");
>  		}
> -
> +#endif
>  		printf("Xloader Rev = %s\n", chip->version);
>  
>  		return 0;
> @@ -293,4 +306,7 @@ int do_chip_config(cmd_tbl_t *cmdtp, int flag, int argc, char *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"
> +#endif
>  	   "chip_config print");

May want to add '\n''s at end of help strings.
Fine otherwise.
Tom


More information about the U-Boot mailing list