On 30 March 2013 15:25, Krzysztof Halasa <khc@xxxxxxxxx> wrote:
Signed-off-by: Krzysztof Hałasa <khc@xxxxxxxxx>
--- 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 */
This is a formatting change not functional change. Please, move it to a separate patch.
@@ -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:
This is a "fix typo" change. Please, move it to a separate patch.
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@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox
Best regards,
Antony Pavlov
_______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox