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.ku...@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"); -- 1.6.0.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot