mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 28/28] ARM: disable HAVE_CONFIGURABLE_MEMORY_LAYOUT
Date: Wed, 17 Oct 2012 23:03:37 +0200	[thread overview]
Message-ID: <1350507817-7819-29-git-send-email-s.hauer@pengutronix.de> (raw)
In-Reply-To: <1350507817-7819-1-git-send-email-s.hauer@pengutronix.de>

HAVE_CONFIGURABLE_MEMORY_LAYOUT was first meant as a feature, now it's a
feature to remove it. barebox on ARM now completely uses the memory passed
in from the lowlevel code and configures the malloc area and stack space
during runtime making it obsolete to hardcode these values. With the
removal of HAVE_CONFIGURABLE_MEMORY_LAYOUT barebox no longer requests the
SDRAM region for the stack automatically, so add code to request the region
manually.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/Kconfig            |    1 -
 arch/arm/cpu/cpu.c          |    9 +++++++++
 arch/arm/cpu/start.c        |    4 ++++
 arch/arm/pbl/zbarebox.lds.S |    8 ++++----
 common/meminfo.c            |    5 -----
 5 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 69a6e57..6b36654 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2,7 +2,6 @@ config ARM
 	bool
 	select HAS_KALLSYMS
 	select HAS_MODULES
-	select HAVE_CONFIGURABLE_MEMORY_LAYOUT
 	select HAVE_CONFIGURABLE_TEXT_BASE
 	select HAVE_PBL_IMAGE
 	select HAVE_IMAGE_COMPRESSION
diff --git a/arch/arm/cpu/cpu.c b/arch/arm/cpu/cpu.c
index 2ca871f..0250b02 100644
--- a/arch/arm/cpu/cpu.c
+++ b/arch/arm/cpu/cpu.c
@@ -91,6 +91,15 @@ void arch_shutdown(void)
 	__asm__ __volatile__("msr cpsr, %0" : : "r"(r));
 }
 
+extern unsigned long arm_stack_top;
+
+static int arm_request_stack(void)
+{
+	request_sdram_region("stack", arm_stack_top - 0x8000, 0x8000);
+	return 0;
+}
+coredevice_initcall(arm_request_stack);
+
 #ifdef CONFIG_THUMB2_BAREBOX
 static void thumb2_execute(void *func, int argc, char *argv[])
 {
diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c
index 163a636..9247684 100644
--- a/arch/arm/cpu/start.c
+++ b/arch/arm/cpu/start.c
@@ -29,6 +29,8 @@
 
 static uint32_t __barebox_arm_boarddata;
 
+unsigned long arm_stack_top;
+
 /*
  * the board specific lowlevel init code can pass a pointer or
  * data value to barebox_arm_entry() and pick it up later with
@@ -85,6 +87,8 @@ static noinline void __start(uint32_t membase, uint32_t memsize,
 	mem_malloc_init((void *)malloc_start,
 			(void *)malloc_end);
 
+	arm_stack_top = membase + memsize;
+
 	__barebox_arm_boarddata = boarddata;
 
 	start_barebox();
diff --git a/arch/arm/pbl/zbarebox.lds.S b/arch/arm/pbl/zbarebox.lds.S
index ff2d2ab..582abc9 100644
--- a/arch/arm/pbl/zbarebox.lds.S
+++ b/arch/arm/pbl/zbarebox.lds.S
@@ -20,7 +20,7 @@
  * MA 02111-1307 USA
  *
  */
-
+#include <sizes.h>
 #include <asm-generic/barebox.lds.h>
 #include <asm-generic/memory_layout.h>
 
@@ -29,7 +29,7 @@ OUTPUT_ARCH(arm)
 ENTRY(pbl_start)
 SECTIONS
 {
-	. = HEAD_TEXT_BASE;
+	. = TEXT_BASE - SZ_2M;
 
 	PRE_IMAGE
 
@@ -71,6 +71,6 @@ SECTIONS
 	__bss_stop = .;
 	_end = .;
 
-	_barebox_image_size = __piggydata_end - HEAD_TEXT_BASE;
-	_barebox_pbl_size = __bss_start - HEAD_TEXT_BASE;
+	_barebox_image_size = __piggydata_end - TEXT_BASE - SZ_2M;
+	_barebox_pbl_size = __bss_start - TEXT_BASE - SZ_2M;
 }
diff --git a/common/meminfo.c b/common/meminfo.c
index 06fce5a..b819d5a 100644
--- a/common/meminfo.c
+++ b/common/meminfo.c
@@ -13,11 +13,6 @@ static int display_meminfo(void)
 	debug("bss segment:  0x%p -> 0x%p\n", __bss_start, __bss_stop);
 	printf("malloc space: 0x%08lx -> 0x%08lx (size %s)\n",
 		mstart, mend, size_human_readable(msize));
-#ifdef CONFIG_ARM
-	printf("stack space:  0x%08x -> 0x%08x (size %s)\n",
-		STACK_BASE, STACK_BASE + STACK_SIZE,
-		size_human_readable(STACK_SIZE));
-#endif
 	return 0;
 }
 late_initcall(display_meminfo);
-- 
1.7.10.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

      parent reply	other threads:[~2012-10-17 21:03 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-17 21:03 [PATCH] ARM: Make memory known to lowlevel code Sascha Hauer
2012-10-17 21:03 ` [PATCH 01/28] ARM: Make malloc available in all initcalls Sascha Hauer
2012-10-17 21:03 ` [PATCH 02/28] ARM at91sam926x: provide reset function for boards with lowlevel init Sascha Hauer
2012-10-18  7:26   ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-19 15:30     ` Sascha Hauer
2012-10-17 21:03 ` [PATCH 03/28] ARM at91rm9200: " Sascha Hauer
2012-10-18  7:27   ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-17 21:03 ` [PATCH 04/28] ARM: Add new entry point for barebox Sascha Hauer
2012-10-17 21:03 ` [PATCH 05/28] ARM i.MX Add functions to get sdram base and size Sascha Hauer
2012-10-17 21:03 ` [PATCH 06/28] ARM i.MX boards: switch to barebox_arm_entry Sascha Hauer
2012-10-17 21:12   ` Alexander Shiyan
2012-11-01 19:21     ` Sascha Hauer
2012-10-17 21:03 ` [PATCH 07/28] ARM AT91 " Sascha Hauer
2012-10-17 21:03 ` [PATCH 08/28] ARM i.MXs " Sascha Hauer
2012-10-17 21:03 ` [PATCH 09/28] ARM OMAP " Sascha Hauer
2012-10-17 21:03 ` [PATCH 10/28] ARM Samsung " Sascha Hauer
2012-10-17 21:03 ` [PATCH 11/28] ARM PXA " Sascha Hauer
2012-10-17 21:03 ` [PATCH 12/28] ARM ep93xx " Sascha Hauer
2012-10-17 21:03 ` [PATCH 13/28] ARM tegra " Sascha Hauer
2012-10-17 21:03 ` [PATCH 14/28] ARM nomadik " Sascha Hauer
2012-10-17 21:03 ` [PATCH 15/28] ARM versatile " Sascha Hauer
2012-10-17 21:03 ` [PATCH 16/28] ARM netx " Sascha Hauer
2012-10-17 21:03 ` [PATCH 17/28] ARM: remove now unused *_LOWLEVEL_INIT Kconfig options Sascha Hauer
2012-10-17 21:03 ` [PATCH 18/28] ARM start: remove unused board_init_lowlevel* functions Sascha Hauer
2012-10-17 21:03 ` [PATCH 19/28] ARM pbl: setup stack at end of SDRAM Sascha Hauer
2012-10-17 21:03 ` [PATCH 20/28] ARM pbl: Call uncompressed binary with arguments Sascha Hauer
2012-10-18  7:29   ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-19 15:32     ` Sascha Hauer
2012-10-19 16:15       ` Sascha Hauer
2012-10-17 21:03 ` [PATCH 21/28] ARM pbl: make MMU functional again Sascha Hauer
2012-10-17 21:03 ` [PATCH 22/28] ARM start: pick up memory/boarddata arguments from pbl Sascha Hauer
2012-10-17 21:03 ` [PATCH 23/28] ARM start: Add barebox_arm_boarddata function Sascha Hauer
2012-10-17 21:03 ` [PATCH 24/28] ARM: Determine base and size of malloc space from SDRAM Sascha Hauer
2012-10-17 21:03 ` [PATCH 25/28] ARM pbl: always copy piggydata Sascha Hauer
2012-10-18  7:23   ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-19 15:34     ` Sascha Hauer
2012-10-19 17:27       ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-17 21:03 ` [PATCH 26/28] ARM i.MX: Use SRAM stack in lowlevel code Sascha Hauer
2012-10-17 21:03 ` [PATCH 27/28] generic memory layout: fix deps for [MALLOC|STACK]_BASE Sascha Hauer
2012-10-17 21:03 ` Sascha Hauer [this message]

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=1350507817-7819-29-git-send-email-s.hauer@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox