public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Ben Warren <biggerbadderben@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 01/27] Blackfin: bfin_mac: force board_get_enetaddr() usage
Date: Wed, 28 Jan 2009 21:43:31 -0800	[thread overview]
Message-ID: <49814203.7020604@gmail.com> (raw)
In-Reply-To: <1233187416-22378-2-git-send-email-vapier@gentoo.org>

Hi Mike,

Mike Frysinger wrote:
> Since the on-chip MAC does not have an eeprom or similar interface, force
> all Blackfin boards that use this to define their own board_get_enetaddr()
> function.
>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> CC: Ben Warren <biggerbadderben@gmail.com>
> ---
>  drivers/net/bfin_mac.c |   24 +++++++++++++++++++++++-
>  include/common.h       |    2 +-
>  lib_blackfin/board.c   |   31 ++-----------------------------
>  3 files changed, 26 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
> index dddbb78..f074f17 100644
> --- a/drivers/net/bfin_mac.c
> +++ b/drivers/net/bfin_mac.c
> @@ -70,8 +70,9 @@ const ADI_DMA_CONFIG_REG txdmacfg = {
>  	.b_FLOW    = 7	/* large desc flow */
>  };
>  
> -int bfin_EMAC_initialize(bd_t *bis)
> +int bfin_EMAC_initialize(bd_t *bd)
>  {
> +	const char *ethaddr;
>  	struct eth_device *dev;
>  	dev = (struct eth_device *)malloc(sizeof(*dev));
>  	if (dev == NULL)
> @@ -89,6 +90,27 @@ int bfin_EMAC_initialize(bd_t *bis)
>  
>  	eth_register(dev);
>  
> +	ethaddr = getenv("ethaddr");
> +#ifndef CONFIG_ETHADDR
>   
I know this was there before, but CONFIG_ETHADDR is kinda deprecated.  
We don't allow it in in-tree config files, so as far as I'm concerned we 
should pretend it doesn't exist.  Boards should get their MAC address 
from an EEPROM or from the environment.
> +	if (ethaddr == NULL) {
> +		char nid[20];
> +		board_get_enetaddr(bd->bi_enetaddr);
> +		sprintf(nid, "%02X:%02X:%02X:%02X:%02X:%02X",
>   
How about snprintf()
> +			bd->bi_enetaddr[0], bd->bi_enetaddr[1],
> +			bd->bi_enetaddr[2], bd->bi_enetaddr[3],
> +			bd->bi_enetaddr[4], bd->bi_enetaddr[5]);
> +		setenv("ethaddr", nid);
> +	} else
> +#endif
> +	{
> +		int i;
> +		char *e;
> +		for (i = 0; i < 6; ++i) {
> +			bd->bi_enetaddr[i] = simple_strtoul(ethaddr, &e, 16);
> +			ethaddr = (*e) ? e + 1 : e;
> +		}
> +	}
> +
>  	return 0;
>  }
>  
> diff --git a/include/common.h b/include/common.h
> index afee188..d4c361a 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -354,7 +354,7 @@ void	board_ether_init (void);
>  #if defined(CONFIG_RPXCLASSIC)	|| defined(CONFIG_MBX) || \
>      defined(CONFIG_IAD210)	|| defined(CONFIG_XPEDITE1K) || \
>      defined(CONFIG_METROBOX)    || defined(CONFIG_KAREF) || \
> -    defined(CONFIG_V38B)
> +    defined(CONFIG_V38B)        || defined(CONFIG_BFIN_MAC)
>  void	board_get_enetaddr (uchar *addr);
>  #endif
>  
> diff --git a/lib_blackfin/board.c b/lib_blackfin/board.c
> index 01b71d4..c1fa61b 100644
> --- a/lib_blackfin/board.c
> +++ b/lib_blackfin/board.c
> @@ -378,35 +378,6 @@ void board_init_r(gd_t * id, ulong dest_addr)
>  	/* relocate environment function pointers etc. */
>  	env_relocate();
>  
> -#ifdef CONFIG_CMD_NET
> -	/* board MAC address */
> -	s = getenv("ethaddr");
> -	if (s == NULL) {
> -# ifndef CONFIG_ETHADDR
> -#  if 0
> -		if (!board_get_enetaddr(bd->bi_enetaddr)) {
> -			char nid[20];
> -			sprintf(nid, "%02X:%02X:%02X:%02X:%02X:%02X",
> -				bd->bi_enetaddr[0], bd->bi_enetaddr[1],
> -				bd->bi_enetaddr[2], bd->bi_enetaddr[3],
> -				bd->bi_enetaddr[4], bd->bi_enetaddr[5]);
> -			setenv("ethaddr", nid);
> -		}
> -#  endif
> -# endif
> -	} else {
> -		int i;
> -		char *e;
> -		for (i = 0; i < 6; ++i) {
> -			bd->bi_enetaddr[i] = simple_strtoul(s, &e, 16);
> -			s = (*e) ? e + 1 : e;
> -		}
> -	}
> -
> -	/* IP Address */
> -	bd->bi_ip_addr = getenv_IPaddr("ipaddr");
> -#endif
> -
>  	/* Initialize devices */
>  	devices_init();
>  	jumptable_init();
> @@ -433,6 +404,8 @@ void board_init_r(gd_t * id, ulong dest_addr)
>  #endif
>  
>  #ifdef CONFIG_CMD_NET
> +	/* IP Address */
> +	bd->bi_ip_addr = getenv_IPaddr("ipaddr");
>  	printf("Net:   ");
>  	eth_initialize(gd->bd);
>  	if (getenv("ethaddr"))
>   
regards,
Ben

  reply	other threads:[~2009-01-29  5:43 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-29  0:03 [U-Boot] [PATCH 00/27] Blackfin updates for 2009.03 (part 2) Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 01/27] Blackfin: bfin_mac: force board_get_enetaddr() usage Mike Frysinger
2009-01-29  5:43   ` Ben Warren [this message]
2009-01-29  5:53     ` Mike Frysinger
2009-01-29  6:01       ` Ben Warren
2009-01-29  6:16         ` Mike Frysinger
2009-01-29  6:20           ` Ben Warren
2009-01-29 10:43           ` Wolfgang Denk
2009-01-29  6:59     ` [U-Boot] [PATCH 01/27 v2] " Mike Frysinger
2009-01-29  7:53       ` Ben Warren
2009-01-29 10:45       ` Wolfgang Denk
2009-01-29 16:35         ` Mike Frysinger
2009-01-29 19:03           ` Wolfgang Denk
2009-01-29 20:25             ` Mike Frysinger
2009-01-29 20:41               ` Wolfgang Denk
2009-01-29 21:05                 ` Mike Frysinger
2009-01-29 21:17                   ` Wolfgang Denk
2009-01-29 21:48                     ` Mike Frysinger
2009-01-29 22:18                       ` Wolfgang Denk
2009-01-30  1:23                         ` Mike Frysinger
2009-02-02 20:05                           ` Mike Frysinger
2009-02-02 21:04                             ` Wolfgang Denk
2009-02-03  0:37                               ` Mike Frysinger
2009-02-03  8:16                                 ` Wolfgang Denk
2009-02-03 19:40                                   ` Mike Frysinger
2009-02-10 20:36                                     ` Mike Frysinger
2009-02-11  5:45                                       ` Ben Warren
2009-02-11  5:57                                         ` Mike Frysinger
2009-02-11 12:17                                         ` Wolfgang Denk
2009-02-11 19:25                                           ` Mike Frysinger
2009-02-11 20:15                                             ` Ben Warren
2009-02-12  1:29                                               ` Mike Frysinger
2009-02-12  6:24                                                 ` Ben Warren
2009-02-12  6:30                                                   ` Mike Frysinger
2009-02-12  7:33                                                 ` Wolfgang Denk
2009-02-12  7:57                                                   ` Mike Frysinger
2009-01-30  0:59                 ` [U-Boot] [PATCH] net: new utility functions eth_{parse, {get, set}env}_enetaddr() Mike Frysinger
2009-01-30  1:09                 ` [U-Boot] [PATCH 01/27 v3] Blackfin: bfin_mac: force boards to setup the MAC themselves Mike Frysinger
2009-01-30  1:09                 ` [U-Boot] [PATCH] Blackfin: bf537-stamp: rewrite MAC-in-flash handling Mike Frysinger
2009-01-29 17:49     ` [U-Boot] [PATCH 01/27] Blackfin: bfin_mac: force board_get_enetaddr() usage Scott Wood
2009-01-29 10:30   ` Wolfgang Denk
2009-01-29  0:03 ` [U-Boot] [PATCH 02/27] Blackfin: bfin_mac: set MDCDIV based on SCLK Mike Frysinger
2009-01-29  5:46   ` Ben Warren
2009-01-29  0:03 ` [U-Boot] [PATCH 03/27] Blackfin: bfin_mac: cleanup MII/PHY functions Mike Frysinger
2009-01-29  5:48   ` Ben Warren
2009-01-29  0:03 ` [U-Boot] [PATCH 04/27] Blackfin: bfin_mac: respect CONFIG_PHY_{ADDR, CLOCK_FREQ} Mike Frysinger
2009-01-29  5:50   ` Ben Warren
2009-01-29  0:03 ` [U-Boot] [PATCH 05/27] Blackfin: bfin_mac: use common debug() Mike Frysinger
2009-01-29  5:51   ` Ben Warren
2009-01-29  0:03 ` [U-Boot] [PATCH 06/27] Blackfin: bfin_mac: convert CONFIG_BFIN_MAC_RMII to CONFIG_RMII Mike Frysinger
2009-01-29  6:03   ` Ben Warren
2009-01-29  0:03 ` [U-Boot] [PATCH 07/27] Blackfin: bfin_mac: cleanup pointer/casts for aliasing issues Mike Frysinger
2009-01-29  6:05   ` Ben Warren
2009-01-29  0:03 ` [U-Boot] [PATCH 08/27] Blackfin: only build post code when CONFIG_POST Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 09/27] Blackfin: add driver for on-chip SPI controller Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 10/27] Blackfin: dont check baud if it wont actually get used Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 11/27] Blackfin: enable --gc-sections Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 12/27] Blackfin: cache core/system clock values Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 13/27] Blackfin: setup bi_enetaddr for single nets Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 14/27] Blackfin: rewrite cache handling functions Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 15/27] Blackfin: dma_memcpy(): fix random failures Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 16/27] Blackfin: only flag L1 instruction for DMA memcpy Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 17/27] Blackfin: use 8/16/32 bit transfer widths in dma_memcpy() Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 18/27] Blackfin: fix up EBIU defines Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 19/27] Blackfin: build with -mno-fdpic Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 20/27] Blackfin: add driver for on-chip NAND controller Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 21/27] Blackfin: add driver for on-chip ATAPI controller Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 22/27] Blackfin: add port I bits Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 23/27] Blackfin: update asm-blackfin/posix_types.h to latest Linux version Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 24/27] Blackfin: set default CONFIG_ENV_SPI_CS based on bootrom Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 25/27] Blackfin: output booting source when booting Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 26/27] Blackfin: add port muxing for BF51x SPI Mike Frysinger
2009-01-29  0:03 ` [U-Boot] [PATCH 27/27] Blackfin: add driver for on-chip MMC/SD controller Mike Frysinger

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=49814203.7020604@gmail.com \
    --to=biggerbadderben@gmail.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