From: Albert ARIBAUD <albert.aribaud@free.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/2] at91sam9261ek: make operational again
Date: Fri, 28 Jan 2011 00:11:47 +0100 [thread overview]
Message-ID: <4D41FBB3.1070105@free.fr> (raw)
In-Reply-To: <1296168378-8399-2-git-send-email-linux@bohmer.net>
Hi Remy,
Le 27/01/2011 23:46, Remy Bohmer a ?crit :
> Since U-boot v2010.12 the at91sam9261ek board is broken.
> This is solved and tested on this board.
>
> Note: It requires that the 1st stage bootloader (like Atmel at91-bootstrap)
> to load U-boot at a different address compared to previous releases of
> U-boot due to conflicts in the BSS area during relocation.
> (0x23f00000 -> -0x23e00000)
>
> Derived from a patch of: Alexander Stein<alexander.stein@systec-electronic.com>
>
> Signed-off-by: Remy Bohmer<linux@bohmer.net>
> ---
> board/atmel/at91sam9261ek/Makefile | 10 +++++-----
> board/atmel/at91sam9261ek/at91sam9261ek.c | 7 ++++---
> board/atmel/at91sam9261ek/config.mk | 1 -
> include/configs/at91sam9261ek.h | 25 +++++++++++++++++++++----
> 4 files changed, 30 insertions(+), 13 deletions(-)
> delete mode 100644 board/atmel/at91sam9261ek/config.mk
>
> diff --git a/board/atmel/at91sam9261ek/Makefile b/board/atmel/at91sam9261ek/Makefile
> index 9d20ba0..1da810f 100644
> --- a/board/atmel/at91sam9261ek/Makefile
> +++ b/board/atmel/at91sam9261ek/Makefile
> @@ -29,16 +29,16 @@ include $(TOPDIR)/config.mk
>
> LIB = $(obj)lib$(BOARD).o
>
> -COBJS-y += at91sam9261ek.o
> +COBJS-y += $(BOARD).o
> COBJS-y += led.o
> COBJS-$(CONFIG_HAS_DATAFLASH) += partition.o
>
> -SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
> -OBJS := $(addprefix $(obj),$(COBJS-y))
> -SOBJS := $(addprefix $(obj),$(SOBJS))
> +SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
> +OBJS := $(addprefix $(obj),$(COBJS-y) $(SOBJS-y))
> +SOBJS := $(addprefix $(obj),$(SOBJS-y))
What is the rationale for putting both C *and* assembly language objects
in OBJS?
> $(LIB): $(obj).depend $(OBJS) $(SOBJS)
> - $(call cmd_link_o_target, $(OBJS) $(SOBJS))
> + $(call cmd_link_o_target, $(OBJS))
If there is a rationale for putting all objects in OBJS, then SOBJS
should be removed from the dependencies of LIB. If there is not, then
SOBJS should remain in the '$(call...)'.
> clean:
> rm -f $(SOBJS) $(OBJS)
> diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c
> index de5cfae..25c181e 100644
> --- a/board/atmel/at91sam9261ek/at91sam9261ek.c
> +++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
> @@ -246,7 +246,7 @@ int board_init(void)
> gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9261EK;
> #endif
> /* adress of boot parameters */
> - gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
> + gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
>
> at91_serial_hw_init();
> #ifdef CONFIG_CMD_NAND
> @@ -273,8 +273,9 @@ int board_eth_init(bd_t *bis)
>
> int dram_init(void)
> {
> - gd->bd->bi_dram[0].start = PHYS_SDRAM;
> - gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> + /* dram_init must store complete ramsize in gd->ram_size */
> + gd->ram_size = get_ram_size((volatile long *)CONFIG_SYS_SDRAM_BASE,
> + CONFIG_SYS_SDRAM_SIZE);
> return 0;
> }
>
> diff --git a/board/atmel/at91sam9261ek/config.mk b/board/atmel/at91sam9261ek/config.mk
> deleted file mode 100644
> index e554a45..0000000
> --- a/board/atmel/at91sam9261ek/config.mk
> +++ /dev/null
> @@ -1 +0,0 @@
> -CONFIG_SYS_TEXT_BASE = 0x23f00000
> diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
> index 401478b..0cffd94 100644
> --- a/include/configs/at91sam9261ek.h
> +++ b/include/configs/at91sam9261ek.h
> @@ -27,6 +27,8 @@
> #ifndef __CONFIG_H
> #define __CONFIG_H
>
> +#include<asm/sizes.h>
> +
> #define CONFIG_AT91_LEGACY
>
> /* ARM asynchronous clock */
> @@ -39,6 +41,7 @@
> #else
> #define CONFIG_AT91SAM9261 1 /* It's an Atmel AT91SAM9261 SoC*/
> #endif
> +#define CONFIG_AT91FAMILY
> #define CONFIG_ARCH_CPU_INIT
> #undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */
>
> @@ -105,11 +108,21 @@
> #define CONFIG_CMD_DHCP 1
> #define CONFIG_CMD_NAND 1
> #define CONFIG_CMD_USB 1
> +#define CONFIG_CMD_CACHE 1
>
> /* SDRAM */
> #define CONFIG_NR_DRAM_BANKS 1
> -#define PHYS_SDRAM 0x20000000
> -#define PHYS_SDRAM_SIZE 0x04000000 /* 64 megs */
> +#define CONFIG_SYS_SDRAM_BASE 0x20000000
> +#define CONFIG_SYS_SDRAM_SIZE SZ_64M /* 64 megs */
> +
> +/*
> + * AT91-bootstrap expects that U-boot needs to be loaded at 0x23f00000
> + * but since U-boot is now being relocated to the end of RAM which is
> + * almost in the same area, there will be an overlap in the BSS segment
> + * resulting in a lockup during boot. So, we need to tell the
> + * AT91-bootstrap code to load it at a lower address, namely 0x23e00000
> + */
> +#define CONFIG_SYS_TEXT_BASE 0x23e00000
>
> /* DataFlash */
> #define CONFIG_ATMEL_DATAFLASH_SPI
> @@ -168,7 +181,7 @@
>
> #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
>
> -#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM
> +#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
> #define CONFIG_SYS_MEMTEST_END 0x23e00000
>
> #ifdef CONFIG_SYS_USE_DATAFLASH_CS0
> @@ -230,8 +243,12 @@
> * Size of malloc() pool
> */
> #define CONFIG_SYS_MALLOC_LEN ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
> +/* size in bytes reserved for initial data */
> +
> +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_4K \
> + - GENERATED_GBL_DATA_SIZE)
>
> -#define CONFIG_STACKSIZE (32*1024) /* regular stack */
> +#define CONFIG_STACKSIZE (SZ_32K) /* regular stack */
Do not use SZ_ constants -- several instances in this patch.
> #ifdef CONFIG_USE_IRQ
> #error CONFIG_USE_IRQ not supported
Amicalement,
--
Albert.
next prev parent reply other threads:[~2011-01-27 23:11 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-27 22:46 [U-Boot] [PATCH 1/2] Fix timer usage of the Atmel SPI dataflash driver Remy Bohmer
2011-01-27 22:46 ` [U-Boot] [PATCH 2/2] at91sam9261ek: make operational again Remy Bohmer
2011-01-27 22:49 ` Remy Bohmer
2011-01-27 23:11 ` Albert ARIBAUD [this message]
2011-01-28 20:38 ` Remy Bohmer
2011-02-01 10:45 ` Michael Trimarchi
2011-02-01 12:16 ` Albert ARIBAUD
2011-02-01 19:11 ` Michael Trimarchi
2011-02-01 19:31 ` Remy Bohmer
2011-02-01 19:54 ` Reinhard Meyer
2011-02-05 12:54 ` Remy Bohmer
2011-04-18 10:36 ` [U-Boot] [PATCH 1/2] Fix timer usage of the Atmel SPI dataflash driver Reinhard Meyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D41FBB3.1070105@free.fr \
--to=albert.aribaud@free.fr \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.