From: Remy Bohmer <linux@bohmer.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/2] at91sam9261ek: make operational again
Date: Thu, 27 Jan 2011 23:46:18 +0100 [thread overview]
Message-ID: <1296168378-8399-2-git-send-email-linux@bohmer.net> (raw)
In-Reply-To: <1296168378-8399-1-git-send-email-linux@bohmer.net>
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))
$(LIB): $(obj).depend $(OBJS) $(SOBJS)
- $(call cmd_link_o_target, $(OBJS) $(SOBJS))
+ $(call cmd_link_o_target, $(OBJS))
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 */
#ifdef CONFIG_USE_IRQ
#error CONFIG_USE_IRQ not supported
--
1.7.1
next prev parent reply other threads:[~2011-01-27 22:46 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 ` Remy Bohmer [this message]
2011-01-27 22:49 ` [U-Boot] [PATCH 2/2] at91sam9261ek: make operational again Remy Bohmer
2011-01-27 23:11 ` Albert ARIBAUD
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=1296168378-8399-2-git-send-email-linux@bohmer.net \
--to=linux@bohmer.net \
--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.