All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup
@ 2009-04-12 22:49 David Brownell
  2009-04-17  5:41 ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 4+ messages in thread
From: David Brownell @ 2009-04-12 22:49 UTC (permalink / raw)
  To: u-boot

From: David Brownell <dbrownell@users.sourceforge.net>

Chips without the EMAC controller won't need the utilities
it uses to read an Ethernet address from EEPROM; so don't 
include them needlessly.

Use is_valid_ether() to validate the address from EEPROM.
All-zero addresses aren't the only invalid addresses.
A fully erased EEPROM returns all-ones, also invalid...

Switch those Ethernet utilities to use "%pM" for printing
MAC addresses; and not say ROM when they mean EEPROM.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>

--- a/board/davinci/common/misc.c
+++ b/board/davinci/common/misc.c
@@ -25,6 +25,7 @@
 
 #include <common.h>
 #include <i2c.h>
+#include <net.h>
 #include <asm/arch/hardware.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -49,6 +50,8 @@ void dv_display_clk_infos(void)
 	       ((REG(PLL2_DIV2) & 0x1f) + 1) / 2);
 }
 
+#ifdef CONFIG_DRIVER_TI_EMAC
+
 /* Read ethernet MAC address from EEPROM for DVEVM compatible boards.
  * Returns 1 if found, 0 otherwise.
  */
@@ -60,8 +63,8 @@ int dvevm_read_mac_address(uint8_t *buf)
 		     (uint8_t *) &buf[0], 6))
 		goto i2cerr;
 
-	/* Check that MAC address is not null. */
-	if (memcmp(buf, "\0\0\0\0\0\0", 6) == 0)
+	/* Check that MAC address is valid. */
+	if (!is_valid_ether_addr(buf))
 		goto err;
 
 	return 1; /* Found */
@@ -75,11 +78,11 @@ err:
 }
 
 /* If there is a MAC address in the environment, and if it is not identical to
- * the MAC address in the ROM, then a warning is printed and the MAC address
+ * the MAC address in the EEPROM, then a warning is printed and the MAC address
  * from the environment is used.
  *
  * If there is no MAC address in the environment, then it will be initialized
- * (silently) from the value in the ROM.
+ * (silently) from the value in the EEPROM.
  */
 void dv_configure_mac_address(uint8_t *rom_enetaddr)
 {
@@ -96,31 +99,24 @@ void dv_configure_mac_address(uint8_t *r
 			tmp = (*end) ? end+1 : end;
 	}
 
-	/* Check if ROM and U-Boot environment MAC addresses match. */
+	/* Check if EEPROM and U-Boot environment MAC addresses match. */
 	if (memcmp(env_enetaddr, "\0\0\0\0\0\0", 6) != 0 &&
 	    memcmp(env_enetaddr, rom_enetaddr, 6) != 0) {
 		printf("Warning: MAC addresses don't match:\n");
-		printf("  ROM MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n",
-		       rom_enetaddr[0], rom_enetaddr[1],
-		       rom_enetaddr[2], rom_enetaddr[3],
-		       rom_enetaddr[4], rom_enetaddr[5]);
-		printf("  \"ethaddr\" value: %02X:%02X:%02X:%02X:%02X:%02X\n",
-		       env_enetaddr[0], env_enetaddr[1],
-		       env_enetaddr[2], env_enetaddr[3],
-		       env_enetaddr[4], env_enetaddr[5]) ;
+		printf("  EEPROM MAC address: %pM\n", rom_enetaddr);
+		printf("     \"ethaddr\" value: %pM\n", env_enetaddr) ;
 		debug("### Using MAC address from environment\n");
 	}
 	if (!tmp) {
 		char ethaddr[20];
 
 		/* There is no MAC address in the environment, so we initialize
-		 * it from the value in the ROM. */
-		sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X",
-			rom_enetaddr[0], rom_enetaddr[1],
-			rom_enetaddr[2], rom_enetaddr[3],
-			rom_enetaddr[4], rom_enetaddr[5]) ;
-		debug("### Setting environment from ROM MAC address = \"%s\"\n",
+		 * it from the value in the EEPROM. */
+		sprintf(ethaddr, "%pM", rom_enetaddr) ;
+		debug("### Setting environment from EEPROM MAC address = \"%s\"\n",
 		      ethaddr);
 		setenv("ethaddr", ethaddr);
 	}
 }
+
+#endif	/* DAVINCI_EMAC */

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup
  2009-04-12 22:49 [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup David Brownell
@ 2009-04-17  5:41 ` Jean-Christophe PLAGNIOL-VILLARD
  2009-04-20  4:07   ` Ben Warren
  0 siblings, 1 reply; 4+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-04-17  5:41 UTC (permalink / raw)
  To: u-boot

On 15:49 Sun 12 Apr     , David Brownell wrote:
> From: David Brownell <dbrownell@users.sourceforge.net>
> 
> Chips without the EMAC controller won't need the utilities
> it uses to read an Ethernet address from EEPROM; so don't 
> include them needlessly.
> 
> Use is_valid_ether() to validate the address from EEPROM.
> All-zero addresses aren't the only invalid addresses.
> A fully erased EEPROM returns all-ones, also invalid...
> 
> Switch those Ethernet utilities to use "%pM" for printing
> MAC addresses; and not say ROM when they mean EEPROM.
> 
> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Looks fine

Ben any comments?

Best Regards,
J.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup
  2009-04-17  5:41 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-04-20  4:07   ` Ben Warren
  2009-04-27 22:33     ` Wolfgang Denk
  0 siblings, 1 reply; 4+ messages in thread
From: Ben Warren @ 2009-04-20  4:07 UTC (permalink / raw)
  To: u-boot

Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 15:49 Sun 12 Apr     , David Brownell wrote:
>   
>> From: David Brownell <dbrownell@users.sourceforge.net>
>>
>> Chips without the EMAC controller won't need the utilities
>> it uses to read an Ethernet address from EEPROM; so don't 
>> include them needlessly.
>>
>> Use is_valid_ether() to validate the address from EEPROM.
>> All-zero addresses aren't the only invalid addresses.
>> A fully erased EEPROM returns all-ones, also invalid...
>>
>> Switch those Ethernet utilities to use "%pM" for printing
>> MAC addresses; and not say ROM when they mean EEPROM.
>>
>> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
>>     
Acked-by: Ben Warren <biggerbadderben@gmail.com>
> Looks fine
>
> Ben any comments?
>
> Best Regards,
> J.
>   
Please pull this in with the other changes.

regards,
Ben

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup
  2009-04-20  4:07   ` Ben Warren
@ 2009-04-27 22:33     ` Wolfgang Denk
  0 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Denk @ 2009-04-27 22:33 UTC (permalink / raw)
  To: u-boot

Dear Jean-Christophe,

In message <49EBF50A.6070001@gmail.com> Ben Warren wrote:
> Jean-Christophe PLAGNIOL-VILLARD wrote:
> > On 15:49 Sun 12 Apr     , David Brownell wrote:
> >   
> >> From: David Brownell <dbrownell@users.sourceforge.net>
> >>
> >> Chips without the EMAC controller won't need the utilities
> >> it uses to read an Ethernet address from EEPROM; so don't 
> >> include them needlessly.
> >>
> >> Use is_valid_ether() to validate the address from EEPROM.
> >> All-zero addresses aren't the only invalid addresses.
> >> A fully erased EEPROM returns all-ones, also invalid...
> >>
> >> Switch those Ethernet utilities to use "%pM" for printing
> >> MAC addresses; and not say ROM when they mean EEPROM.
> >>
> >> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
> >>     
> Acked-by: Ben Warren <biggerbadderben@gmail.com>
> > Looks fine
> >
> > Ben any comments?
> >
> > Best Regards,
> > J.
> >   
> Please pull this in with the other changes.

Is this in your queue? I would like to pull this soon, please.

Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There's another way to survive.  Mutual trust -- and help.
	-- Kirk, "Day of the Dove", stardate unknown

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-04-27 22:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-12 22:49 [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup David Brownell
2009-04-17  5:41 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-20  4:07   ` Ben Warren
2009-04-27 22:33     ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.