[U-Boot] [PATCH][Re-Submit] Custom AFEB9260 board support

Ben Warren biggerbadderben at gmail.com
Fri Aug 29 19:48:56 CEST 2008


Hi Sergey,

Sergey Lapin wrote:
> This patch provides support for AFEB9260 board, a product of
> OpenSource hardware and software. Some commertial projects
> are made with this design. A board is basically AT91SAM9260-EK
> with some modifications and different peripherals and different
> parts used. Main purpose of this project is to gain experience in
> hardware design.
> More info: http://groups.google.com/group/arm9fpga-evolution-board
> (In Russian only, sorry).
> Subversion repository: svn://194.85.238.22/home/users/george/svn/arm9eb
>
> Signed-off-by: Sergey Lapin <slapin at ossfans.org>
> ---
>   
<snip>
> diff --git a/board/afeb9260/ether.c b/board/afeb9260/ether.c
> new file mode 100644
> index 0000000..a1f71db
> --- /dev/null
> +++ b/board/afeb9260/ether.c
> @@ -0,0 +1,37 @@
> +/*
> + *
> + * (C) Copyright 2008 Sergey Lapin <slapin at ossfans.org>
> + * AFEB9260 Ethernet support.
> + * Based on Atmel AT91SAM9260-EK ethernet support
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +#include <common.h>
> +
> +#include <asm/arch/memory-map.h>
> +
> +extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
> +
> +#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET)
> +void afeb9260_eth_initialize(bd_t *bi)
> +{
> +	macb_eth_initialize(0, (void *)AT91_BASE_EMAC, 0x01);
> +}
> +#endif
> +
>   
This file is no longer needed.  Please follow the 'board_eth_init()' 
method.  A good example is in:
board/atmel/atngw100/atngw100.c

Tonight I'll submit a patch that does this for all the at91 boards too.

<snip>
> diff --git a/net/eth.c b/net/eth.c
> index 4e508a0..26cc9f2 100644
> --- a/net/eth.c
> +++ b/net/eth.c
> @@ -67,6 +67,7 @@ extern int tsi108_eth_initialize(bd_t*);
>  extern int npe_initialize(bd_t *);
>  extern int uec_initialize(int);
>  extern int at91sam9_eth_initialize(bd_t *);
> +extern int afeb9260_eth_initialize(bd_t *);
>  
>  #ifdef CONFIG_API
>  extern void (*push_packet)(volatile void *, int);
> @@ -254,10 +255,31 @@ int eth_initialize(bd_t *bis)
>  #if defined(CONFIG_RTL8169)
>  	rtl8169_initialize(bis);
>  #endif
> -#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
> -    defined(CONFIG_AT91SAM9263)
> +#if defined(CONFIG_BF537)
> +	bfin_EMAC_initialize(bis);
> +#endif
> +#if defined(CONFIG_ATSTK1000)
> +	atstk1000_eth_initialize(bis);
> +#endif
> +#if defined(CONFIG_GRETH)
> +	greth_initialize(bis);
> +#endif
> +#if defined(CONFIG_ATNGW100)
> +	atngw100_eth_initialize(bis);
> +#endif
> +#if defined(CONFIG_MCFFEC)
> +	mcffec_initialize(bis);
> +#endif
> +#if defined(CONFIG_FSLDMAFEC)
> +	mcdmafec_initialize(bis);
> +#endif
> +#if !defined(CONFIG_AFEB9260) && (defined(CONFIG_AT91CAP9) || \
> +	defined(CONFIG_AT91SAM9260) || defined(CONFIG_AT91SAM9263))
>  	at91sam9_eth_initialize(bis);
>  #endif
> +#if defined(CONFIG_AFEB9260)
> +	afeb9260_eth_initialize(bis);
> +#endif
>  
>  	if (!eth_devices) {
>  		puts ("No ethernet found.\n");
>   
Once you implement board_eth_init() as mentioned above, you no longer 
need to touch net/eth.c

regards,
Ben


More information about the U-Boot mailing list