[U-Boot-Users] [PATCH] Add MIMC200 board

Ben Warren biggerbadderben at gmail.com
Mon Jul 28 16:01:51 CEST 2008


Hi Mark,

On Mon, Jul 28, 2008 at 3:16 AM, Mark Jackson <mpfj at mimc.co.uk> wrote:
> The MIMC200 board is based on Atmel's NGW100 dev kit,
> but with an extra 8MByte FLASH and 128KByte FRAM.
> ---

<snip>

> diff --git a/board/atmel/mimc200/eth.c b/board/atmel/mimc200/eth.c
> new file mode 100644
> index 0000000..4e13399
> --- /dev/null
> +++ b/board/atmel/mimc200/eth.c
> @@ -0,0 +1,36 @@
> +/*
> + * Copyright (C) 2006 Atmel Corporation
> + *
> + * Ethernet initialization for the AVR32 Network Gateway
> + *
> + * 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);
> +
> +#ifdef CONFIG_CMD_NET
> +void mimc200_eth_initialize(bd_t *bi)
> +{
> +    macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]);
> +    macb_eth_initialize(1, (void *)MACB1_BASE, bi->bi_phy_id[1]);
> +}
> +#endif

Please change to this:

#ifdef CONFIG_CMD_NET
int board_eth_init(bd_t *bi)
{
    macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]);
    macb_eth_initialize(1, (void *)MACB1_BASE, bi->bi_phy_id[1]);
    return 0;
}
#endif

> diff --git a/board/atmel/mimc200/Makefile b/board/atmel/mimc200/Makefile
> new file mode 100644
> index 0000000..1b5c635
> --- /dev/null
> +++ b/board/atmel/mimc200/Makefile
> @@ -0,0 +1,40 @@
> +#
> +# Copyright (C) 2005-2006 Atmel Corporation
> +#
> +# 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 $(TOPDIR)/config.mk
> +
> +LIB    := $(obj)lib$(BOARD).a
> +
> +COBJS    := $(BOARD).o eth.o
> +

When you've made the change to board/eth.c, please verify that your
board_eth_init() function is linked into the final executable.  The
output of 'grep eth_enit System.map' must show different addresses for
the board_eth_init and __def_eth_init symbols.  If they are the same,
please move the board_eth_init() function to board/mimc200.c

<snip>

> diff --git a/net/eth.c b/net/eth.c
> index 38979aa..409756d 100644
> --- a/net/eth.c
> +++ b/net/eth.c
> @@ -75,6 +75,7 @@ extern int atngw100_eth_initialize(bd_t *);
>  extern int mcffec_initialize(bd_t*);
>  extern int mcdmafec_initialize(bd_t*);
>  extern int at91sam9_eth_initialize(bd_t *);
> +extern int mimc200_eth_initialize(bd_t *);
>
>  #ifdef CONFIG_API
>  extern void (*push_packet)(volatile void *, int);
> @@ -290,6 +291,9 @@ int eth_initialize(bd_t *bis)
>     defined(CONFIG_AT91SAM9263)
>     at91sam9_eth_initialize(bis);
>  #endif
> +#if defined(CONFIG_MIMC200)
> +    mimc200_eth_initialize(bis);
> +#endif

By changing the function name earlier to board_eth_init(), you no
longer need to touch net/eth.c.  Please remove this stuff.

regards,
Ben




More information about the U-Boot mailing list