[U-Boot-Users] [PATCH 1/1] avr32: add support for EarthLCD Favr-32 board
Ben Warren
biggerbadderben at gmail.com
Tue Jul 29 16:32:01 CEST 2008
Hello,
On Tue, Jul 29, 2008 at 3:27 AM, Hans-Christian Egtvedt
<hans-christian.egtvedt at atmel.com> wrote:
> This patch adds support for the Favr-32 board made by EarthLCD.
>
> This kit, which is also called ezLCD-101 when running with EarthLCD firmware,
> has a 10.4" touch screen LCD panel, 16 MB 32-bit SDRAM, 8 MB parallel flash,
> Ethernet, audio out, USB device, SD-card slot, USART and various other
> connectors for cennecting stuff to SPI, I2C, GPIO, etc.
>
> Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt at atmel.com>
> ---
> MAINTAINERS | 4 +
> MAKEALL | 1 +
> Makefile | 3 +
> board/earthlcd/favr-32-ezkit/Makefile | 42 +++++
> board/earthlcd/favr-32-ezkit/config.mk | 4 +
> board/earthlcd/favr-32-ezkit/eth.c | 33 ++++
> board/earthlcd/favr-32-ezkit/favr-32-ezkit.c | 87 ++++++++++
> board/earthlcd/favr-32-ezkit/flash.c | 230 ++++++++++++++++++++++++++
> board/earthlcd/favr-32-ezkit/u-boot.lds | 71 ++++++++
> include/configs/favr-32-ezkit.h | 200 ++++++++++++++++++++++
> net/eth.c | 3 +
> 11 files changed, 678 insertions(+), 0 deletions(-)
> create mode 100644 board/earthlcd/favr-32-ezkit/Makefile
> create mode 100644 board/earthlcd/favr-32-ezkit/config.mk
> create mode 100644 board/earthlcd/favr-32-ezkit/eth.c
> create mode 100644 board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
> create mode 100644 board/earthlcd/favr-32-ezkit/flash.c
> create mode 100644 board/earthlcd/favr-32-ezkit/u-boot.lds
> create mode 100644 include/configs/favr-32-ezkit.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a3d70b1..e043913 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -709,6 +709,10 @@ Haavard Skinnemoen <hskinnemoen at atmel.com>
> ATSTK1006 AT32AP7000
> ATNGW100 AT32AP7000
>
> +Hans-Christian Egtvedt <hans-christian.egtvedt at atmel.com>
> +
> + FAVR-32-EZKIT AT32AP7000
> +
> #########################################################################
> # SuperH Systems: #
> # #
> diff --git a/MAKEALL b/MAKEALL
> index 32caab7..c2bb2a7 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -723,6 +723,7 @@ LIST_avr32=" \
> atstk1004 \
> atstk1006 \
> atngw100 \
> + favr-32-ezkit \
> "
>
> #########################################################################
> diff --git a/Makefile b/Makefile
> index 8bfc891..15d7f37 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2902,6 +2902,9 @@ atstk1006_config : unconfig
> atngw100_config : unconfig
> @$(MKCONFIG) $(@:_config=) avr32 at32ap atngw100 atmel at32ap700x
>
> +favr-32-ezkit_config : unconfig
> + @$(MKCONFIG) $(@:_config=) avr32 at32ap favr-32-ezkit earthlcd at32ap700x
> +
> #########################################################################
> #########################################################################
> #########################################################################
> diff --git a/board/earthlcd/favr-32-ezkit/Makefile b/board/earthlcd/favr-32-ezkit/Makefile
> new file mode 100644
> index 0000000..a09ad4d
> --- /dev/null
> +++ b/board/earthlcd/favr-32-ezkit/Makefile
> @@ -0,0 +1,42 @@
> +#
> +# (C) Copyright 2001-2006
> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> +#
> +# Copyright (C) 2008 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 flash.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/earthlcd/favr-32-ezkit/config.mk b/board/earthlcd/favr-32-ezkit/config.mk
> new file mode 100644
> index 0000000..2337d62
> --- /dev/null
> +++ b/board/earthlcd/favr-32-ezkit/config.mk
> @@ -0,0 +1,4 @@
> +PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
> +PLATFORM_LDFLAGS += --gc-sections
> +TEXT_BASE = 0x00000000
> +LDSCRIPT = $(obj)board/earthlcd/favr-32-ezkit/u-boot.lds
> diff --git a/board/earthlcd/favr-32-ezkit/eth.c b/board/earthlcd/favr-32-ezkit/eth.c
> new file mode 100644
> index 0000000..2029842
> --- /dev/null
> +++ b/board/earthlcd/favr-32-ezkit/eth.c
> @@ -0,0 +1,33 @@
> +/*
> + * Copyright (C) 2008 Atmel Corporation
> + *
> + * Ethernet initialization for the Favr-32 LCD kit.
> + *
> + * 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 favr32_ezkit_eth_initialize(bd_t *bi)
> +{
> + macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]);
> +}
> +#endif
Please do this instead:
extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET)
int board_eth_init(bd_t *bi)
{
return macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]);
}
#endif
And move it to
/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
> diff --git a/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c b/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
> new file mode 100644
> index 0000000..8f11dd9
> --- /dev/null
> +++ b/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c
> @@ -0,0 +1,87 @@
> +/*
> + * Copyright (C) 2008 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 <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 = {
> + /* MT48LC4M32B2P-6 (16 MB) */
> + .data_bits = SDRAM_DATA_32BIT,
> + .row_bits = 12,
> + .col_bits = 8,
> + .bank_bits = 2,
> + .cas = 3,
> + .twr = 2,
> + .trc = 7,
> + .trp = 2,
> + .trcd = 2,
> + .tras = 5,
> + .txsr = 5,
> + /* 15.6 us */
> + .refresh_period = (156 * (SDRAMC_BUS_HZ / 1000)) / 10000,
> +};
> +
> +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_usart3();
> +#if defined(CONFIG_MACB)
> + gpio_enable_macb0();
> +#endif
> +#if defined(CONFIG_MMC)
> + gpio_enable_mmci();
> +#endif
> +
> + return 0;
> +}
> +
> +phys_size_t 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;
> +}
> diff --git a/board/earthlcd/favr-32-ezkit/flash.c b/board/earthlcd/favr-32-ezkit/flash.c
Is this flash CFI-compliant? If so, please use the CFI driver.
Otherwise, ignore me.
<snip>
> +#endif /* __CONFIG_H */
> diff --git a/net/eth.c b/net/eth.c
> index 21d1496..6e81687 100644
> --- a/net/eth.c
> +++ b/net/eth.c
> @@ -282,6 +282,9 @@ int eth_initialize(bd_t *bis)
> #if defined(CONFIG_ATNGW100)
> atngw100_eth_initialize(bis);
> #endif
> +#if defined(CONFIG_FAVR32_EZKIT)
> + favr32_ezkit_eth_initialize(bis);
> +#endif
> #if defined(CONFIG_MCFFEC)
> mcffec_initialize(bis);
> #endif
Touching this file is unnecessary if you change to board_eth_init() as
mentioned earlier.
thanks,
Ben
More information about the U-Boot
mailing list