libpayload: Move base address, stack and heap size to Kconfig
This will allow more payloads to use the standard linker script instead of implementing their own. Change-Id: Ie60120769829f427ceb722109d85859b61dbde31 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: https://review.coreboot.org/14074 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
347a7529aa
commit
821844534c
|
@ -119,6 +119,35 @@ config MULTIBOOT
|
|||
depends on ARCH_X86
|
||||
default y
|
||||
|
||||
config HEAP_SIZE
|
||||
int "Heap size"
|
||||
default 131072
|
||||
help
|
||||
This is the heap size (malloc'able size) available
|
||||
to the payload.
|
||||
|
||||
If unsure, set to 131072 (128K)
|
||||
|
||||
config STACK_SIZE
|
||||
int "Stack size"
|
||||
default 16384
|
||||
help
|
||||
This is the stack size available to the payload.
|
||||
|
||||
If unsure, set to 16384 (16K)
|
||||
|
||||
config BASE_ADDRESS
|
||||
hex "Base address"
|
||||
default 0x04000000 if ARCH_ARM
|
||||
default 0x80100000 if ARCH_ARM64
|
||||
default 0x00000000 if ARCH_MIPS
|
||||
default 0x00100000 if ARCH_X86
|
||||
help
|
||||
This is the base address for the payload.
|
||||
|
||||
If unsure, set to 0x00100000 on x86, 0x00000000 on MIPS,
|
||||
0x04000000 on ARM or 0x80100000 on ARM64.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Standard Libraries"
|
||||
|
|
|
@ -28,19 +28,14 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
BASE_ADDRESS = 0x4000000;
|
||||
|
||||
OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm", "elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
|
||||
ENTRY(_entry)
|
||||
|
||||
HEAP_SIZE = 2*64*1024;
|
||||
STACK_SIZE = 16384;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = BASE_ADDRESS;
|
||||
. = CONFIG_LP_BASE_ADDRESS;
|
||||
|
||||
. = ALIGN(16);
|
||||
_start = .;
|
||||
|
@ -74,12 +69,12 @@ SECTIONS
|
|||
|
||||
. = ALIGN(16);
|
||||
_heap = .;
|
||||
. += HEAP_SIZE;
|
||||
. += CONFIG_LP_HEAP_SIZE;
|
||||
. = ALIGN(16);
|
||||
_eheap = .;
|
||||
|
||||
_estack = .;
|
||||
. += STACK_SIZE;
|
||||
. += CONFIG_LP_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
_stack = .;
|
||||
}
|
||||
|
|
|
@ -28,19 +28,14 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
BASE_ADDRESS = 0x80100000;
|
||||
|
||||
OUTPUT_FORMAT("elf64-littleaarch64","elf64-littleaarch64", "elf64-littleaarch64")
|
||||
OUTPUT_ARCH(arm64)
|
||||
|
||||
ENTRY(_entry)
|
||||
|
||||
HEAP_SIZE = 2*64*1024;
|
||||
STACK_SIZE = 16384;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = BASE_ADDRESS;
|
||||
. = CONFIG_LP_BASE_ADDRESS;
|
||||
|
||||
. = ALIGN(16);
|
||||
_start = .;
|
||||
|
@ -74,12 +69,12 @@ SECTIONS
|
|||
|
||||
. = ALIGN(16);
|
||||
_heap = .;
|
||||
. += HEAP_SIZE;
|
||||
. += CONFIG_LP_HEAP_SIZE;
|
||||
. = ALIGN(16);
|
||||
_eheap = .;
|
||||
|
||||
_estack = .;
|
||||
. += STACK_SIZE;
|
||||
. += CONFIG_LP_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
_stack = .;
|
||||
|
||||
|
@ -88,7 +83,7 @@ SECTIONS
|
|||
*/
|
||||
|
||||
_exc_estack = .;
|
||||
. += STACK_SIZE;
|
||||
. += CONFIG_LP_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
_exc_stack = .;
|
||||
}
|
||||
|
|
|
@ -20,15 +20,11 @@
|
|||
|
||||
OUTPUT_ARCH(mips)
|
||||
|
||||
BASE_ADDRESS = 0x00000000;
|
||||
ENTRY(_entry)
|
||||
|
||||
HEAP_SIZE = 2*64*1024;
|
||||
STACK_SIZE = 16*1024;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = BASE_ADDRESS;
|
||||
. = CONFIG_LP_BASE_ADDRESS;
|
||||
|
||||
. = ALIGN(16);
|
||||
_start = .;
|
||||
|
@ -68,12 +64,12 @@ SECTIONS
|
|||
|
||||
. = ALIGN(16);
|
||||
_heap = .;
|
||||
. += HEAP_SIZE;
|
||||
. += CONFIG_LP_HEAP_SIZE;
|
||||
. = ALIGN(16);
|
||||
_eheap = .;
|
||||
|
||||
_estack = .;
|
||||
. += STACK_SIZE;
|
||||
. += CONFIG_LP_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
_stack = .;
|
||||
}
|
||||
|
|
|
@ -27,19 +27,14 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
BASE_ADDRESS = 0x100000;
|
||||
|
||||
OUTPUT_FORMAT(elf32-i386)
|
||||
OUTPUT_ARCH(i386)
|
||||
|
||||
ENTRY(_entry)
|
||||
|
||||
HEAP_SIZE = 2*64*1024;
|
||||
STACK_SIZE = 16384;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = BASE_ADDRESS;
|
||||
. = CONFIG_LP_BASE_ADDRESS;
|
||||
|
||||
. = ALIGN(16);
|
||||
_start = .;
|
||||
|
@ -73,12 +68,12 @@ SECTIONS
|
|||
|
||||
. = ALIGN(16);
|
||||
_heap = .;
|
||||
. += HEAP_SIZE;
|
||||
. += CONFIG_LP_HEAP_SIZE;
|
||||
. = ALIGN(16);
|
||||
_eheap = .;
|
||||
|
||||
_estack = .;
|
||||
. += STACK_SIZE;
|
||||
. += CONFIG_LP_STACK_SIZE;
|
||||
. = ALIGN(16);
|
||||
_stack = .;
|
||||
}
|
||||
|
|
|
@ -187,6 +187,10 @@ else
|
|||
_LDFLAGS="$_LDFLAGS -Wl,--fix-cortex-a53-843419"
|
||||
fi
|
||||
|
||||
_LDFLAGS="$_LDFLAGS -Wl,--defsym=CONFIG_LP_BASE_ADDRESS=$CONFIG_LP_BASE_ADDRESS"
|
||||
_LDFLAGS="$_LDFLAGS -Wl,--defsym=CONFIG_LP_HEAP_SIZE=$CONFIG_LP_HEAP_SIZE"
|
||||
_LDFLAGS="$_LDFLAGS -Wl,--defsym=CONFIG_LP_STACK_SIZE=$CONFIG_LP_STACK_SIZE"
|
||||
|
||||
if [ $DEBUGME -eq 1 ]; then
|
||||
echo "$DEFAULT_CC $_LDFLAGS $HEAD_O $CMDLINE $_CFLAGS -lpayload $_LIBGCC"
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue