summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig43
-rw-r--r--arch/arm/include/asm/memory.h4
2 files changed, 45 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1f35b63f8701..3c3b868948aa 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1479,6 +1479,49 @@ config PAGE_OFFSET
default 0x80000000 if VMSPLIT_2G
default 0xC0000000
+choice
+ prompt "Task size"
+ depends on MMU
+ default TASK_SIZE_1G_LESS_16M if VMSPLIT_1G
+ default TASK_SIZE_2G_LESS_16M if VMSPLIT_2G
+ default TASK_SIZE_3G_LESS_16M
+
+config TASK_SIZE_1G_LESS_16M
+ bool "Task size is 1GiB less 16MiB"
+ depends on VMSPLIT_1G
+
+config TASK_SIZE_1G_LESS_24M
+ bool "Task size is 1GiB less 24MiB"
+ depends on VMSPLIT_1G
+
+config TASK_SIZE_2G_LESS_16M
+ bool "Task size is 2GiB less 16MiB"
+ depends on VMSPLIT_2G
+
+config TASK_SIZE_2G_LESS_24M
+ bool "Task size is 2GiB less 24MiB"
+ depends on VMSPLIT_2G
+
+config TASK_SIZE_3G_LESS_16M
+ bool "Task size is 3GiB less 16MiB"
+ depends on VMSPLIT_3G
+
+config TASK_SIZE_3G_LESS_24M
+ bool "Task size is 3GiB less 24MiB"
+ depends on VMSPLIT_3G
+
+endchoice
+
+config TASK_SIZE
+ hex
+ depends on MMU
+ default 0x3E800000 if TASK_SIZE_1G_LESS_24M
+ default 0x3F000000 if TASK_SIZE_1G_LESS_16M
+ default 0x7E800000 if TASK_SIZE_2G_LESS_24M
+ default 0x7F000000 if TASK_SIZE_2G_LESS_16M
+ default 0xBE800000 if TASK_SIZE_3G_LESS_24M
+ default 0xBF000000
+
config NR_CPUS
int "Maximum number of CPUs (2-32)"
range 2 32
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index b8de516e600e..25669795d80d 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -33,7 +33,7 @@
* TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
*/
#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET)
-#define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(0x01000000))
+#define TASK_SIZE UL(CONFIG_TASK_SIZE)
#define TASK_UNMAPPED_BASE (UL(CONFIG_PAGE_OFFSET) / 3)
/*
@@ -46,7 +46,7 @@
* and PAGE_OFFSET - it must be within 32MB of the kernel text.
*/
#ifndef CONFIG_THUMB2_KERNEL
-#define MODULES_VADDR (PAGE_OFFSET - 16*1024*1024)
+#define MODULES_VADDR UL(CONFIG_TASK_SIZE)
#else
/* smaller range for Thumb-2 symbols relocation (2^24)*/
#define MODULES_VADDR (PAGE_OFFSET - 8*1024*1024)