[U-Boot] [PATCH 2/4] SPEAr : Placing ethaddr write and read within CONFIG_CMD_NET
Vipin KUMAR
vipin.kumar at st.com
Mon Mar 29 05:58:53 CEST 2010
On 3/29/2010 4:08 AM, Tom wrote:
> 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.
OK. I would incorporate this in patchset v2
Thanks
Regards
Vipin
> Tom
>
More information about the U-Boot
mailing list