From: Krzysztof Halasa <khc@pm.waw.pl>
To: barebox@lists.infradead.org
Subject: [PATCH] Implement ALTERNATE memory layout.
Date: Sat, 30 Mar 2013 12:25:35 +0100 [thread overview]
Message-ID: <m3ip49gmds.fsf@intrepid.localdomain> (raw)
In-Reply-To: <m3r4ixgmok.fsf@intrepid.localdomain> (Krzysztof Halasa's message of "Sat, 30 Mar 2013 12:19:07 +0100")
Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
--- a/arch/arm/cpu/start.c
+++ b/arch/arm/cpu/start.c
@@ -58,7 +58,6 @@ static noinline __noreturn void __start(uint32_t membase, uint32_t memsize,
endmem -= STACK_SIZE; /* Stack */
if (IS_ENABLED(CONFIG_MMU_EARLY)) {
-
endmem &= ~0x3fff;
endmem -= SZ_16K; /* ttb */
@@ -66,6 +65,9 @@ static noinline __noreturn void __start(uint32_t membase, uint32_t memsize,
mmu_early_enable(membase, memsize, endmem);
}
+#ifdef CONFIG_MEMORY_LAYOUT_ALTERNATE
+ malloc_end = endmem;
+#else
if ((unsigned long)_text > membase + memsize ||
(unsigned long)_text < membase)
/*
@@ -76,15 +78,21 @@ static noinline __noreturn void __start(uint32_t membase, uint32_t memsize,
malloc_end = endmem;
else
malloc_end = (unsigned long)_text;
+#endif
/*
* Maximum malloc space is the Kconfig value if given
* or 64MB.
*/
if (MALLOC_SIZE > 0) {
- malloc_start = malloc_end - MALLOC_SIZE;
- if (malloc_start < membase)
+ if (malloc_end > membase + MALLOC_SIZE)
+ malloc_start = malloc_end - MALLOC_SIZE;
+ else
malloc_start = membase;
+ if (malloc_start < (unsigned long)_end &&
+ malloc_end > (unsigned long)_text)
+ /* malloc area follows text */
+ malloc_start = (unsigned long)_end;
} else {
malloc_start = malloc_end - (malloc_end - membase) / 2;
if (malloc_end - malloc_start > SZ_64M)
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -161,7 +161,7 @@ choice
config MEMORY_LAYOUT_DEFAULT
bool "use default memory layout"
help
- select this option to use bareboxs standard memory layout:
+ select this option to use barebox's standard memory layout:
stack
-----
@@ -169,6 +169,17 @@ config MEMORY_LAYOUT_DEFAULT
-----
TEXT_BASE
+config MEMORY_LAYOUT_ALTERNATE
+ bool "use alternate memory layout"
+ help
+ select this option to use barebox's alternate memory layout:
+
+ TEXT_BASE
+ -----
+ malloc heap
+ -----
+ stack
+
config MEMORY_LAYOUT_FIXED
bool "manually assign a memory layout"
help
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2013-03-30 11:25 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-30 11:19 IXP4xx again Krzysztof Halasa
2013-03-30 11:24 ` [PATCH] ARM: XScale processors don't support "clean+invalidate D entry" operation Krzysztof Halasa
2013-03-30 11:25 ` Krzysztof Halasa [this message]
2013-03-30 12:01 ` [PATCH] Implement ALTERNATE memory layout Alexander Shiyan
2013-03-30 13:15 ` Krzysztof Halasa
2013-03-30 13:23 ` Re[2]: " Alexander Shiyan
2013-03-30 19:57 ` Krzysztof Halasa
2013-03-30 18:45 ` Antony Pavlov
2013-04-01 18:04 ` Sascha Hauer
2013-04-02 7:20 ` Sascha Hauer
2013-03-30 11:26 ` [PATCH] ARM: Add support for IXP4xx CPU and for Goramo Multilink router platform Krzysztof Halasa
2013-04-02 6:52 ` Sascha Hauer
2013-04-07 11:42 ` Krzysztof Halasa
2013-04-07 19:54 ` [PATCH] ARM: Support for IXP4xx CPU Krzysztof Halasa
2013-04-08 7:27 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-14 10:30 ` Krzysztof Halasa
2013-04-14 11:51 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-07 19:55 ` [PATCH] ARM: Support for IXP4xx hardware Queue Manager Krzysztof Halasa
2013-04-08 7:31 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-07 19:57 ` [PATCH] ARM: Support for IXP4xx Network Processor Engines (NPEs) Krzysztof Halasa
2013-04-08 7:30 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-07 19:58 ` [PATCH] ARM: Support for IXP4xx built-in Ethernet interfaces Krzysztof Halasa
2013-04-08 7:29 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-08 7:56 ` [PATCH] ARM: Add support for IXP4xx CPU and for Goramo Multilink router platform Sascha Hauer
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=m3ip49gmds.fsf@intrepid.localdomain \
--to=khc@pm.waw.pl \
--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