[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