Julien May <[EMAIL PROTECTED]> wrote:
> 
> Signed-off-by: Julien May <[EMAIL PROTECTED]>

Could you add a few lines describing the Hammerhead board, perhaps with
a link to your site?

This looks pretty good to me. I have a few comments below, and I've
Cc'ed u-boot-users so that more people can comment on this. Please keep
them in the loop whenever you post a new version of this patch.

If you want, I can apply this to my tree as is, and you can send me
incremental patches fixing up the remaining issues. I'll fold
everything into a single patch before sending it upstream.

> ---
>  MAKEALL                                  |    1 +
>  Makefile                                 |    3 +
>  board/miromico/hammerhead/Makefile       |   40 +++++++
>  board/miromico/hammerhead/config.mk      |    3 +
>  board/miromico/hammerhead/eth.c          |   37 ++++++
>  board/miromico/hammerhead/hammerhead.c   |  105 +++++++++++++++++
>  board/miromico/hammerhead/u-boot.lds     |   73 ++++++++++++
>  cpu/at32ap/at32ap700x/gpio.c             |   11 ++
>  cpu/at32ap/at32ap700x/sm.h               |    2 +-
>  cpu/at32ap/cpu.c                         |    5 +
>  include/asm-avr32/arch-at32ap700x/clk.h  |    1 +
>  include/asm-avr32/arch-at32ap700x/gpio.h |    3 +
>  include/configs/hammerhead.h             |  179 
> ++++++++++++++++++++++++++++++
>  net/eth.c                                |    4 +
>  14 files changed, 466 insertions(+), 1 deletions(-)
>  create mode 100644 board/miromico/hammerhead/Makefile
>  create mode 100644 board/miromico/hammerhead/config.mk
>  create mode 100644 board/miromico/hammerhead/eth.c
>  create mode 100644 board/miromico/hammerhead/hammerhead.c
>  create mode 100644 board/miromico/hammerhead/u-boot.lds
>  create mode 100644 include/configs/hammerhead.h
> 
> diff --git a/MAKEALL b/MAKEALL
> index f40de23..89b68a5 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -699,6 +699,7 @@ LIST_avr32="              \
>       atstk1004       \
>       atstk1006       \
>       atngw100        \
> +     hammerhead      \
>  "
>  
>  #########################################################################
> diff --git a/Makefile b/Makefile
> index 154e592..09bae45 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2885,6 +2885,9 @@ atstk1006_config        :       unconfig
>  atngw100_config      :       unconfig
>       @$(MKCONFIG) $(@:_config=) avr32 at32ap atngw100 atmel at32ap700x
>  
> +hammerhead_config    :       unconfig
> +     @$(MKCONFIG) $(@:_config=) avr32 at32ap hammerhead miromico at32ap700x
> +
>  #########################################################################
>  #########################################################################
>  #########################################################################
> diff --git a/board/miromico/hammerhead/Makefile 
> b/board/miromico/hammerhead/Makefile
> new file mode 100644
> index 0000000..c5fc67a
> --- /dev/null
> +++ b/board/miromico/hammerhead/Makefile
> @@ -0,0 +1,40 @@
> +#
> +# Copyright (C) 2008 Miromico AG
> +#
> +# 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
> +
> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
> +OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
> +
> +$(LIB): $(obj).depend $(OBJS)
> +     $(AR) $(ARFLAGS) $@ $(OBJS)
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/miromico/hammerhead/config.mk 
> b/board/miromico/hammerhead/config.mk
> new file mode 100644
> index 0000000..9a794e5
> --- /dev/null
> +++ b/board/miromico/hammerhead/config.mk
> @@ -0,0 +1,3 @@
> +TEXT_BASE            = 0x00000000
> +PLATFORM_RELFLAGS    += -ffunction-sections -fdata-sections
> +PLATFORM_LDFLAGS     += --gc-sections
> diff --git a/board/miromico/hammerhead/eth.c b/board/miromico/hammerhead/eth.c
> new file mode 100644
> index 0000000..969c48e
> --- /dev/null
> +++ b/board/miromico/hammerhead/eth.c
> @@ -0,0 +1,37 @@
> +/*
> + * Copyright (C) 2008 Miromico AG
> + *
> + * Ethernet initialization for the Miromico Hammerhead AVR32 board
> + *
> + * Mostly copied form Atmel ATNGW100 sources
> + *
> + * 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 board_eth_initialize(bd_t *bi)
> +{
> +     macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]);
> +}
> +#endif
> diff --git a/board/miromico/hammerhead/hammerhead.c 
> b/board/miromico/hammerhead/hammerhead.c
> new file mode 100644
> index 0000000..69ff7fa
> --- /dev/null
> +++ b/board/miromico/hammerhead/hammerhead.c
> @@ -0,0 +1,105 @@
> +/*
> + * Copyright (C) 2008 Miromico AG
> + *
> + * Mostly copied form atmel ATNGW100 sources
> + *
> + * 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 "../cpu/at32ap/at32ap700x/sm.h"
> +
> +#include <common.h>
> +
> +#include <asm/io.h>
> +#include <asm/sdram.h>
> +#include <asm/arch/clk.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/arch/hmatrix.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static const struct sdram_config sdram_config = {
> +     .data_bits      = SDRAM_DATA_32BIT,
> +     .row_bits       = 13,
> +     .col_bits       = 9,
> +     .bank_bits      = 2,
> +     .cas            = 3,
> +     .twr            = 2,
> +     .trc            = 7,
> +     .trp            = 2,
> +     .trcd           = 2,
> +     .tras           = 5,
> +     .txsr           = 5,
> +     /* 7.81 us */
> +     .refresh_period = (781 * (SDRAMC_BUS_HZ / 1000)) / 100000,
> +};
> +
> +int board_early_init_f(void)
> +{
> +     /* Enable SDRAM in the EBI mux */
> +     hmatrix_slave_write(EBI, SFR, HMATRIX_BIT(EBI_SDRAM_ENABLE));
> +
> +     gpio_enable_ebi();
> +     gpio_enable_usart1();
> +
> +#if defined(CONFIG_MACB)
> +     gpio_enable_macb0();
> +#endif
> +#if defined(CONFIG_MMC)
> +     gpio_enable_mmci();
> +#endif
> +
> +     /* Select GCLK3 peripheral function. We'll need it as clock output
> +      * for ethernet PHY. */
> +     gpio_enable_gclk3();
> +     return 0;
> +}
> +
> +long int initdram(int board_type)
> +{
> +     unsigned long expected_size;
> +     unsigned long actual_size;
> +     void *sdram_base;
> +
> +     sdram_base = map_physmem(EBI_SDRAM_BASE, EBI_SDRAM_SIZE, MAP_NOCACHE);
> +
> +     expected_size = sdram_init(sdram_base, &sdram_config);
> +     actual_size = get_ram_size(sdram_base, expected_size);
> +
> +     unmap_physmem(sdram_base, EBI_SDRAM_SIZE);
> +
> +     if (expected_size != actual_size)
> +             printf("Warning: Only %u of %u MiB SDRAM is working\n",
> +                    actual_size >> 20, expected_size >> 20);
> +
> +     return actual_size;
> +}
> +
> +void board_init_info(void)
> +{
> +     gd->bd->bi_phy_id[0] = 0x01;
> +}
> +
> +void gclk_init(void)

Hmm...I'm not crazy about adding another board init hook here. Can you
move this stuff into board_early_init_f()?

No, I suppose it needs to go after cpu_init()...

<looks at the stinking pile of crap called common.h>

<cringes at the number of #ifdefs in most arches' init sequence>

Not a single arch seems to implement all the board-specific initcalls.
Help, please?

> +{
> +     /* Hammerhead boards uses GCLK3 as 25MHz output to ethernet PHY */
> +
> +     /* Enable GCLK3 with no input divider, from OSC0 (crystal) */
> +     sm_writel( PM_GCCTRL(3), SM_BIT(CEN) );

In any case, please drop the extra spaces after '(' and before ')'.

> +}

> diff --git a/board/miromico/hammerhead/u-boot.lds 
> b/board/miromico/hammerhead/u-boot.lds
> new file mode 100644
> index 0000000..e736adf
> --- /dev/null
> +++ b/board/miromico/hammerhead/u-boot.lds
> @@ -0,0 +1,73 @@
> +/* -*- Fundamental -*-
> + *
> + * 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
> + */
> +OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
> +OUTPUT_ARCH(avr32)
> +ENTRY(_start)
> +
> +SECTIONS
> +{
> +     . = 0;
> +     _text = .;
> +     .text : {
> +             *(.exception.text)
> +             *(.text)
> +             *(.text.*)
> +     }
> +     _etext = .;
> +
> +     .rodata : {
> +             *(.rodata)
> +             *(.rodata.*)
> +     }
> +
> +     . = ALIGN(8);
> +     _data = .;
> +     .data : {
> +             *(.data)
> +             *(.data.*)
> +     }
> +
> +     . = ALIGN(4);
> +     __u_boot_cmd_start = .;
> +     .u_boot_cmd : {
> +             KEEP(*(.u_boot_cmd))
> +     }
> +     __u_boot_cmd_end = .;
> +
> +     . = ALIGN(4);
> +     _got = .;
> +     .got : {
> +             *(.got)
> +     }
> +     _egot = .;
> +
> +     . = ALIGN(8);
> +     _edata = .;
> +
> +     .bss : {
> +             *(.bss)
> +             *(.bss.*)
> +     }
> +     . = ALIGN(8);
> +     _end = .;
> +}
> diff --git a/cpu/at32ap/at32ap700x/gpio.c b/cpu/at32ap/at32ap700x/gpio.c
> index 859124a..2b7717f 100644
> --- a/cpu/at32ap/at32ap700x/gpio.c
> +++ b/cpu/at32ap/at32ap700x/gpio.c
> @@ -142,3 +142,14 @@ void gpio_enable_mmci(void)
>       gpio_select_periph_A(GPIO_PIN_PA15, 0); /* DATA3 */
>  }
>  #endif
> +
> +/*
> + * Hammerhead board uses GCLK3 (Periph A on PB29) as 25MHz clock output
> + * for ethernet PHY.
> + */
> +void __gpio_enable_gclk3(void)
> +{
> +     gpio_select_periph_A(GPIO_PIN_PB29, 0); /* GCLK3         */
> +}
> +
> +void gpio_enable_gclk3(void) __attribute__((weak, 
> alias("__gpio_enable_gclk3")));

Hmm...what's the point here? I don't think there are that many ways to
enable gclk3...?

In fact, I'm sort of thinking it might be better to just open-code this
in the board file. It's only a single line of code...

> diff --git a/cpu/at32ap/at32ap700x/sm.h b/cpu/at32ap/at32ap700x/sm.h
> index 6492c8e..b6e4409 100644
> --- a/cpu/at32ap/at32ap700x/sm.h
> +++ b/cpu/at32ap/at32ap700x/sm.h
> @@ -21,7 +21,7 @@
>  #define SM_PM_IMR                            0x0048
>  #define SM_PM_ISR                            0x004c
>  #define SM_PM_ICR                            0x0050
> -#define SM_PM_GCCTRL                         0x0060
> +#define SM_PM_GCCTRL(x)                              (0x0060 + 4 * x)
>  #define SM_RTC_CTRL                          0x0080
>  #define SM_RTC_VAL                           0x0084
>  #define SM_RTC_TOP                           0x0088
> diff --git a/cpu/at32ap/cpu.c b/cpu/at32ap/cpu.c
> index 0ba8361..4a92aab 100644
> --- a/cpu/at32ap/cpu.c
> +++ b/cpu/at32ap/cpu.c
> @@ -65,6 +65,11 @@ int cpu_init(void)
>       sysreg_write(EVBA, (unsigned long)&_evba);
>       asm volatile("csrf      %0" : : "i"(SYSREG_EM_OFFSET));
>  
> +     if(gclk_init)
> +     {
> +             gclk_init();
> +     }
> +

Please remove the superfluous braces.

>       return 0;
>  }
>  
> diff --git a/include/asm-avr32/arch-at32ap700x/clk.h 
> b/include/asm-avr32/arch-at32ap700x/clk.h
> index 4a1dd33..63671db 100644
> --- a/include/asm-avr32/arch-at32ap700x/clk.h
> +++ b/include/asm-avr32/arch-at32ap700x/clk.h
> @@ -76,6 +76,7 @@ static inline unsigned long get_mci_clk_rate(void)
>  #endif
>  
>  extern void clk_init(void);
> +extern void gclk_init(void) __attribute__((weak));

Hmmm...right. An undefined weak symbol evaluates to zero...

>  /* Board code may need the SDRAM base clock as a compile-time constant */
>  #define SDRAMC_BUS_HZ        (MAIN_CLK_RATE >> CFG_CLKDIV_HSB)
> diff --git a/include/asm-avr32/arch-at32ap700x/gpio.h 
> b/include/asm-avr32/arch-at32ap700x/gpio.h
> index b10a3e4..c350d54 100644
> --- a/include/asm-avr32/arch-at32ap700x/gpio.h
> +++ b/include/asm-avr32/arch-at32ap700x/gpio.h
> @@ -216,5 +216,8 @@ void gpio_enable_macb1(void);
>  #ifdef AT32AP700x_CHIP_HAS_MMCI
>  void gpio_enable_mmci(void);
>  #endif
> +#ifdef CONFIG_HAMMERHEAD
> +void gpio_enable_gclk3(void);
> +#endif

Please remove the #ifdef.

>  #endif /* __ASM_AVR32_ARCH_GPIO_H__ */
> diff --git a/include/configs/hammerhead.h b/include/configs/hammerhead.h
> new file mode 100644
> index 0000000..6699aea
> --- /dev/null
> +++ b/include/configs/hammerhead.h
> @@ -0,0 +1,179 @@
> +/*
> + * Copyright (C) 2008 Miromico AG
> + *
> + * Configuration settings for the Miromico Hammerhead AVR32 board
> + *
> + * 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
> + */
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#define CONFIG_AVR32                 1
> +#define CONFIG_AT32AP                        1
> +#define CONFIG_AT32AP7000            1
> +#define CONFIG_HAMMERHEAD            1
> +
> +#define CFG_HZ                               1000
> +
> +/*
> + * Set up the PLL to run at 140 MHz, the CPU to run at the PLL
> + * frequency, the HSB and PBB busses to run at 1/2 the PLL frequency
> + * and the PBA bus to run at 1/4 the PLL frequency.
> + */
> +#define CONFIG_PLL                   1
> +#define CFG_POWER_MANAGER            1
> +#define CFG_OSC0_HZ                  25000000  /* 25MHz crystal */
> +#define CFG_PLL0_DIV                 1
> +#define CFG_PLL0_MUL                 5

This gives (25000000 / 1) * 5 = 125 MHz. Please update the comment.

Sure you don't wanna crank it up to 150 MHz, btw? ;-)

> +#define CFG_PLL0_SUPPRESS_CYCLES     16
> +#define CFG_CLKDIV_CPU                       0
> +#define CFG_CLKDIV_HSB                       1
> +#define CFG_CLKDIV_PBA                       2
> +#define CFG_CLKDIV_PBB                       1
> +
> +/*
> + * The PLLOPT register controls the PLL like this:
> + *   icp = PLLOPT<2>
> + *   ivco = PLLOPT<1:0>
> + *
> + * We want icp=1 (default) and ivco=0 (80-160 MHz) or ivco=2 (150-240MHz).
> + */
> +#define CFG_PLL0_OPT                 0x04
> +
> +#define CONFIG_USART1                        1
> +
> +#define CONFIG_HOSTNAME                      hammerhead
> +
> +/* User serviceable stuff */
> +#define CONFIG_DOS_PARTITION         1
> +
> +#define CONFIG_CMDLINE_TAG           1
> +#define CONFIG_SETUP_MEMORY_TAGS     1
> +#define CONFIG_INITRD_TAG            1
> +
> +#define CONFIG_STACKSIZE             (2048)
> +
> +#define CONFIG_BAUDRATE                      115200
> +#define CONFIG_BOOTARGS                                                      
> \
> +     "console=ttyS0 root=/dev/mtdblock1 rootfstype=jffs2"

It turns out that you can use "console=ttyS0 root=mtd1
rootfstype=jffs2". That's shorter and makes it possible to boot a
kernel without Block Device support.

> +#define CONFIG_BOOTCOMMAND                                           \
> +     "fsload; bootm"
> +
> +/*
> + * Only interrupt autoboot if <space> is pressed. Otherwise, garbage
> + * data on the serial line may interrupt the boot sequence.
> + */
> +#define CONFIG_BOOTDELAY             1
> +#define CONFIG_AUTOBOOT                      1
> +#define CONFIG_AUTOBOOT_KEYED                1
> +#define CONFIG_AUTOBOOT_PROMPT                               \
> +     "Press SPACE to abort autoboot in %d seconds\n"
> +#define CONFIG_AUTOBOOT_DELAY_STR    "d"
> +#define CONFIG_AUTOBOOT_STOP_STR     " "
> +
> +/*
> + * After booting the board for the first time, new ethernet address
> + * should be generated and assigned to the environment variables
> + * "ethaddr". This is normally done during production.
> + */
> +#define CONFIG_OVERWRITE_ETHADDR_ONCE        1
> +#define CONFIG_NET_MULTI             1
> +
> +/*
> + * BOOTP/DHCP options
> + */
> +#define CONFIG_BOOTP_SUBNETMASK
> +#define CONFIG_BOOTP_GATEWAY
> +
> +#define CONFIG_DOS_PARTITION         1

You've defined this before.

> +/*
> + * Command line configuration.
> + */
> +#include <config_cmd_default.h>
> +
> +#define CONFIG_CMD_ASKENV
> +#define CONFIG_CMD_DHCP
> +#define CONFIG_CMD_EXT2
> +#define CONFIG_CMD_FAT
> +#define CONFIG_CMD_JFFS2
> +#define CONFIG_CMD_MMC
> +#undef CONFIG_CMD_FPGA
> +#undef CONFIG_CMD_SETGETDCR
> +
> +#define CONFIG_ATMEL_USART           1
> +#define CONFIG_MACB                  1
> +#define CONFIG_PIO2                  1
> +#define CFG_NR_PIOS                  5
> +#define CFG_HSDRAMC                  1
> +#define CONFIG_MMC                   1
> +
> +#define CFG_DCACHE_LINESZ            32
> +#define CFG_ICACHE_LINESZ            32
> +
> +#define CONFIG_NR_DRAM_BANKS         1
> +
> +#define CFG_FLASH_CFI                        1
> +#define CFG_FLASH_CFI_DRIVER         1
> +
> +#define CFG_FLASH_BASE                       0x00000000
> +#define CFG_FLASH_SIZE                       0x800000
> +#define CFG_MAX_FLASH_BANKS          1
> +#define CFG_MAX_FLASH_SECT           135
> +
> +#define CFG_MONITOR_BASE             CFG_FLASH_BASE
> +
> +#define CFG_INTRAM_BASE                      0x24000000
> +#define CFG_INTRAM_SIZE                      0x8000
> +
> +#define CFG_SDRAM_BASE                       0x10000000
> +
> +#define CFG_ENV_IS_IN_FLASH          1
> +#define CFG_ENV_SIZE                 65536
> +#define CFG_ENV_ADDR                 (CFG_FLASH_BASE + CFG_FLASH_SIZE - 
> CFG_ENV_SIZE)
> +
> +#define CFG_INIT_SP_ADDR             (CFG_INTRAM_BASE + CFG_INTRAM_SIZE)
> +
> +#define CFG_MALLOC_LEN                       (256*1024)
> +#define CFG_MALLOC_END                                                       
> \
> +     ({                                                              \
> +             DECLARE_GLOBAL_DATA_PTR;                                \
> +             CFG_SDRAM_BASE + gd->sdram_size;                        \
> +     })
> +#define CFG_MALLOC_START             (CFG_MALLOC_END - CFG_MALLOC_LEN)

I don't think CFG_MALLOC_END and CFG_MALLOC_START is used anywhere.
Please remove them.

> +
> +#define CFG_DMA_ALLOC_LEN            (16384)
> +
> +/* Allow 4MB for the kernel run-time image */
> +#define CFG_LOAD_ADDR                        (CFG_SDRAM_BASE + 0x00400000)
> +#define CFG_BOOTPARAMS_LEN           (16 * 1024)
> +
> +/* Other configuration settings that shouldn't have to change all that often 
> */
> +#define CFG_PROMPT                   "Uboot> "

Some people think "U-Boot> " looks nicer. Or you can make it something
custom, e.g. "Hammerhead> ". It's up to you, really.

> +#define CFG_CBSIZE                   256
> +#define CFG_MAXARGS                  16
> +#define CFG_PBSIZE                   (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
> +#define CFG_LONGHELP                 1
> +
> +#define CFG_MEMTEST_START            CFG_SDRAM_BASE
> +#define CFG_MEMTEST_END                      (CFG_MEMTEST_START + 0x1f00000)
> +
> +#define CFG_BAUDRATE_TABLE { 115200, 38400, 19200, 9600, 2400 }
> +
> +#endif /* __CONFIG_H */
> diff --git a/net/eth.c b/net/eth.c
> index c4f24c6..054a9fd 100644
> --- a/net/eth.c
> +++ b/net/eth.c
> @@ -65,6 +65,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 board_eth_initialize(bd_t *);
>  
>  #ifdef CONFIG_API
>  extern void (*push_packet)(volatile void *, int);
> @@ -291,6 +292,9 @@ int eth_initialize(bd_t *bis)
>  #if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260)
>       at91sam9_eth_initialize(bis);
>  #endif
> +#if defined(CONFIG_HAMMERHEAD)
> +     board_eth_initialize(bis);
> +#endif

Hmm...this needs to be coordinated with Ben Warren's ethernet init
patches somehow.

If you call it "board_eth_init()" instead, we can simply chop off this
hunk when Ben's patches are in, and it will all Just Work. Hopefully.

>  
>       if (!eth_devices) {
>               puts ("No ethernet found.\n");

Haavard

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to