public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rix <tom@bumblecow.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 04/17] SPEAr : Placing ethaddr write and read within CONFIG_CMD_NET
Date: Tue, 04 May 2010 07:18:42 -0500	[thread overview]
Message-ID: <4BE010A2.4010905@bumblecow.com> (raw)
In-Reply-To: <4BDFB1CE.1020106@st.com>

Vipin KUMAR wrote:
> On 5/3/2010 5:06 AM, Tom Rix 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@st.com>
>>> ---
>>>  board/spear/common/spr_misc.c |   23 ++++++++++++++++++++---
>>>  1 files changed, 20 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/board/spear/common/spr_misc.c
>>> b/board/spear/common/spr_misc.c
>>> index e356912..4af9436 100644
>>> --- a/board/spear/common/spr_misc.c
>>> +++ b/board/spear/common/spr_misc.c
>>> @@ -38,6 +38,10 @@
>>>  DECLARE_GLOBAL_DATA_PTR;
>>>  static struct chip_data chip_data;
>>>  
>>> +#if defined(CONFIG_CMD_NET)
>>> +static int i2c_read_mac(uchar *buffer);
>>> +#endif
>>> +
>>>  int dram_init(void)
>>>  {
>>>      struct xloader_table *xloader_tb =
>>> @@ -166,6 +170,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 +210,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
>> These variable should be moved to "etheraddr" if-check scope
>> This will clean up having multiple #if defined(CONFIG_CMD_NET) checks
> 
> unsigned char mac[] has a larger scope so it is not moved. 
> Other variable definitions moved to "etheraddr" if-check scope as suggested
> 
>>>  
>>>      if ((argc > 3) || (argc < 2)) {
>>>          cmd_usage(cmdtp);
>>> @@ -244,6 +254,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 +267,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 +287,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");
>>>          }
>> From misc_init_r, the mac_id is stored in the enviromement.
>> Because the enviroment has precendence over the i2c.
>> Reporting the i2c mac address may be inconsistent or wrong.
>>
> The print in the chip_config print clearly says that this mac address 
> is set in i2c memory and in fact this is also the intention.
> 
> Probably, I should add a comment saying ethaddr in environment variable 
> may be different and it is the one used as mac id in network interface
> OR should I add a print itself that this is the mac id stored in i2c 
> memory and may be stale ?

The most useful one should be printed out.

If the user is setting up a network service list dhcp that depends on
the mac address, then the mac used by the u-boot network ip should be
returned.

If this is providing some board id and the i2c mac is unique, then
the i2c mac should be used.

What you don't want to happen is to confuse the user by reporting one
mac and using another.   Just printing out the the i2c mac may or may not
be stale will also confuse the user.

Tom


> 
>> Tom
>>
>>
>>> -
>>> +#endif
>>>          printf("Xloader Rev = %s\n", chip->version);
>>>  
>>>          return 0;
>>> @@ -293,4 +307,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\n"
>>> +#endif
>>>         "chip_config print");
>>
> 
> 
> 

  reply	other threads:[~2010-05-04 12:18 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-26  2:56 [U-Boot] [PATCH v2 00/17] Network support for spear platform and spear1300 support Vipin KUMAR
2010-04-26  2:56 ` [U-Boot] [PATCH v2 01/17] u-boot.img file not created when srctree and objtree are different Vipin KUMAR
2010-04-26  2:56   ` [U-Boot] [PATCH v2 02/17] change_bit routine defined Vipin KUMAR
2010-04-26  2:56     ` [U-Boot] [PATCH v2 03/17] SPEAr : SMI erase and write timeouts increased Vipin KUMAR
2010-04-26  2:56       ` [U-Boot] [PATCH v2 04/17] SPEAr : Placing ethaddr write and read within CONFIG_CMD_NET Vipin KUMAR
2010-04-26  2:56         ` [U-Boot] [PATCH v2 05/17] SPEAr : Reducing the max RAM size to 128MB Vipin KUMAR
2010-04-26  2:56           ` [U-Boot] [PATCH v2 06/17] SPEAr : Basic arch related support added for SPEAr SoCs Vipin KUMAR
2010-04-26  2:56             ` [U-Boot] [PATCH v2 07/17] SPEAr : Network driver support added Vipin KUMAR
2010-04-26  2:56               ` [U-Boot] [PATCH v2 08/17] SPEAr : Network support configured for spear SoCs Vipin KUMAR
2010-04-26  2:56                 ` [U-Boot] [PATCH v2 09/17] SPEAr : macb driver support added for spear310 and spear320 Vipin KUMAR
2010-04-26  2:56                   ` [U-Boot] [PATCH v2 10/17] SPEAr : FSMC driver support added Vipin KUMAR
2010-04-26  2:56                     ` [U-Boot] [PATCH v2 11/17] SPEAr : Configuring FSMC driver for NAND interface Vipin KUMAR
2010-04-26  2:56                       ` [U-Boot] [PATCH v2 12/17] SPEAr : i2c driver moved completely into drivers/i2c Vipin KUMAR
2010-04-26  2:56                         ` [U-Boot] [PATCH v2 13/17] SPEAr : smi driver moved completely into drivers/mtd Vipin KUMAR
2010-04-26  2:56                           ` [U-Boot] [PATCH v2 14/17] SPEAr : USBD driver support added Vipin KUMAR
2010-04-26  2:56                             ` [U-Boot] [PATCH v2 15/17] SPEAr : Basic spear1300 architecture " Vipin KUMAR
2010-04-26  2:56                               ` [U-Boot] [PATCH v2 16/17] SPEAr : spear1300 SoC " Vipin KUMAR
2010-04-26  2:56                                 ` [U-Boot] [PATCH v2 17/17] SPEAr : Supporting various configurations for spear3xx and spear6xx boards Vipin KUMAR
2010-05-03  0:38                                   ` Tom Rix
2010-05-03  7:59                                     ` Vipin KUMAR
2010-05-03  0:37                                 ` [U-Boot] [PATCH v2 16/17] SPEAr : spear1300 SoC support added Tom Rix
2010-05-03  8:35                                   ` Vipin KUMAR
2010-05-03 10:19                                     ` Tom Rix
2010-05-03 11:17                                       ` Vipin KUMAR
2010-05-03  0:33                               ` [U-Boot] [PATCH v2 15/17] SPEAr : Basic spear1300 architecture " Tom Rix
2010-05-03 11:14                                 ` Vipin KUMAR
2010-05-03  0:29                             ` [U-Boot] [PATCH v2 14/17] SPEAr : USBD driver " Tom Rix
2010-05-03  0:27                           ` [U-Boot] [PATCH v2 13/17] SPEAr : smi driver moved completely into drivers/mtd Tom Rix
2010-04-27  5:08                         ` [U-Boot] [PATCH v2 12/17] SPEAr : i2c driver moved completely into drivers/i2c Heiko Schocher
2010-05-03  0:25                         ` Tom Rix
2010-05-04  9:07                           ` Vipin KUMAR
2010-05-04 17:56                             ` Scott Wood
2010-05-06  1:44                               ` Vipin KUMAR
2010-05-05 21:37                             ` Tom Rix
2010-05-06  2:08                               ` Vipin KUMAR
2010-04-27 21:09                       ` [U-Boot] [PATCH v2 11/17] SPEAr : Configuring FSMC driver for NAND interface Scott Wood
2010-05-03  0:24                       ` Tom Rix
2010-05-04  8:48                         ` Vipin KUMAR
2010-04-27 21:09                     ` [U-Boot] [PATCH v2 10/17] SPEAr : FSMC driver support added Scott Wood
2010-05-03  0:22                     ` Tom Rix
2010-05-04  8:08                       ` Vipin KUMAR
2010-05-03  0:14                   ` [U-Boot] [PATCH v2 09/17] SPEAr : macb driver support added for spear310 and spear320 Tom Rix
2010-05-04  8:01                     ` Vipin KUMAR
2010-05-02 23:49                 ` [U-Boot] [PATCH v2 08/17] SPEAr : Network support configured for spear SoCs Tom Rix
2010-05-04  7:15                   ` Vipin KUMAR
2010-05-02 23:48               ` [U-Boot] [PATCH v2 07/17] SPEAr : Network driver support added Tom Rix
2010-05-04  6:33                 ` Vipin KUMAR
2010-05-04 13:14                   ` Tom Rix
2010-05-02 23:40             ` [U-Boot] [PATCH v2 06/17] SPEAr : Basic arch related support added for SPEAr SoCs Tom Rix
2010-05-04  5:57               ` Vipin KUMAR
2010-05-02 23:37           ` [U-Boot] [PATCH v2 05/17] SPEAr : Reducing the max RAM size to 128MB Tom Rix
2010-05-04  5:50             ` Vipin KUMAR
2010-05-02 23:36         ` [U-Boot] [PATCH v2 04/17] SPEAr : Placing ethaddr write and read within CONFIG_CMD_NET Tom Rix
2010-05-04  5:34           ` Vipin KUMAR
2010-05-04 12:18             ` Tom Rix [this message]
2010-05-06  4:11               ` Vipin KUMAR
2010-05-06 22:28                 ` Wolfgang Denk
2010-05-02 23:33       ` [U-Boot] [PATCH v2 03/17] SPEAr : SMI erase and write timeouts increased Tom Rix
2010-05-04  3:43         ` Vipin KUMAR
2010-05-02 23:31     ` [U-Boot] [PATCH v2 02/17] change_bit routine defined Tom Rix
2010-05-04  1:54       ` Vipin KUMAR
2010-05-02 23:27   ` [U-Boot] [PATCH v2 01/17] u-boot.img file not created when srctree and objtree are different Tom Rix
2010-04-30 11:08 ` [U-Boot] [PATCH v2 00/17] Network support for spear platform and spear1300 support Vipin KUMAR
2010-04-30 12:48   ` Tom Rix
2010-05-01 10:09     ` Vipin Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BE010A2.4010905@bumblecow.com \
    --to=tom@bumblecow.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox