summaryrefslogtreecommitdiff
path: root/drivers/dm9000x.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2007-08-14 16:36:29 +0200
committerStefan Roese <sr@denx.de>2007-08-14 16:36:29 +0200
commit3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae (patch)
treefb66bf8861d9f78765160d734a438856f5317cdb /drivers/dm9000x.c
parent4ce846ec59f36b85d6644a769690ad3feb667575 (diff)
parent4ef35e53c693556c54b0c22d6f873de87bade253 (diff)
downloadu-boot-imx-3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae.zip
u-boot-imx-3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae.tar.gz
u-boot-imx-3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae.tar.bz2
Merge with git://www.denx.de/git/u-boot.git
Diffstat (limited to 'drivers/dm9000x.c')
-rw-r--r--drivers/dm9000x.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/dm9000x.c b/drivers/dm9000x.c
index 6877076..78acb09 100644
--- a/drivers/dm9000x.c
+++ b/drivers/dm9000x.c
@@ -302,6 +302,21 @@ eth_init(bd_t * bd)
/* Set Node address */
for (i = 0; i < 6; i++)
((u16 *) bd->bi_enetaddr)[i] = read_srom_word(i);
+
+ if (!is_zero_ether_addr(bd->bi_enetaddr) &&
+ !is_mutlicast_ether_addr(bd->bi_enetaddr)) {
+ /* try reading from environment */
+ u8 i;
+ char *s, *e;
+ s = getenv ("ethaddr");
+ for (i = 0; i < 6; ++i) {
+ bd->bi_enetaddr[i] = s ?
+ simple_strtoul (s, &e, 16) : 0;
+ if (s)
+ s = (*e) ? e + 1 : e;
+ }
+ }
+
printf("MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", bd->bi_enetaddr[0],
bd->bi_enetaddr[1], bd->bi_enetaddr[2], bd->bi_enetaddr[3],
bd->bi_enetaddr[4], bd->bi_enetaddr[5]);