From: David Brownell <david-b@pacbell.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup
Date: Sun, 12 Apr 2009 15:49:26 -0700 [thread overview]
Message-ID: <200904121549.26602.david-b@pacbell.net> (raw)
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 */
next reply other threads:[~2009-04-12 22:49 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-12 22:49 David Brownell [this message]
2009-04-17 5:41 ` [U-Boot] [PATCH u-boot git] DaVinci Ethernet cleanup Jean-Christophe PLAGNIOL-VILLARD
2009-04-20 4:07 ` Ben Warren
2009-04-27 22:33 ` Wolfgang Denk
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=200904121549.26602.david-b@pacbell.net \
--to=david-b@pacbell.net \
--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