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
|
depends on ARCH_X86
|
||||||
default y
|
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
|
endmenu
|
||||||
|
|
||||||
menu "Standard Libraries"
|
menu "Standard Libraries"
|
||||||
|
|
|
@ -28,19 +28,14 @@
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
BASE_ADDRESS = 0x4000000;
|
|
||||||
|
|
||||||
OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm", "elf32-littlearm")
|
OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm", "elf32-littlearm")
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
|
|
||||||
ENTRY(_entry)
|
ENTRY(_entry)
|
||||||
|
|
||||||
HEAP_SIZE = 2*64*1024;
|
|
||||||
STACK_SIZE = 16384;
|
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = BASE_ADDRESS;
|
. = CONFIG_LP_BASE_ADDRESS;
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_start = .;
|
_start = .;
|
||||||
|
@ -74,12 +69,12 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_heap = .;
|
_heap = .;
|
||||||
. += HEAP_SIZE;
|
. += CONFIG_LP_HEAP_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_eheap = .;
|
_eheap = .;
|
||||||
|
|
||||||
_estack = .;
|
_estack = .;
|
||||||
. += STACK_SIZE;
|
. += CONFIG_LP_STACK_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_stack = .;
|
_stack = .;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,19 +28,14 @@
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
BASE_ADDRESS = 0x80100000;
|
|
||||||
|
|
||||||
OUTPUT_FORMAT("elf64-littleaarch64","elf64-littleaarch64", "elf64-littleaarch64")
|
OUTPUT_FORMAT("elf64-littleaarch64","elf64-littleaarch64", "elf64-littleaarch64")
|
||||||
OUTPUT_ARCH(arm64)
|
OUTPUT_ARCH(arm64)
|
||||||
|
|
||||||
ENTRY(_entry)
|
ENTRY(_entry)
|
||||||
|
|
||||||
HEAP_SIZE = 2*64*1024;
|
|
||||||
STACK_SIZE = 16384;
|
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = BASE_ADDRESS;
|
. = CONFIG_LP_BASE_ADDRESS;
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_start = .;
|
_start = .;
|
||||||
|
@ -74,12 +69,12 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_heap = .;
|
_heap = .;
|
||||||
. += HEAP_SIZE;
|
. += CONFIG_LP_HEAP_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_eheap = .;
|
_eheap = .;
|
||||||
|
|
||||||
_estack = .;
|
_estack = .;
|
||||||
. += STACK_SIZE;
|
. += CONFIG_LP_STACK_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_stack = .;
|
_stack = .;
|
||||||
|
|
||||||
|
@ -88,7 +83,7 @@ SECTIONS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_exc_estack = .;
|
_exc_estack = .;
|
||||||
. += STACK_SIZE;
|
. += CONFIG_LP_STACK_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_exc_stack = .;
|
_exc_stack = .;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,15 +20,11 @@
|
||||||
|
|
||||||
OUTPUT_ARCH(mips)
|
OUTPUT_ARCH(mips)
|
||||||
|
|
||||||
BASE_ADDRESS = 0x00000000;
|
|
||||||
ENTRY(_entry)
|
ENTRY(_entry)
|
||||||
|
|
||||||
HEAP_SIZE = 2*64*1024;
|
|
||||||
STACK_SIZE = 16*1024;
|
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = BASE_ADDRESS;
|
. = CONFIG_LP_BASE_ADDRESS;
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_start = .;
|
_start = .;
|
||||||
|
@ -68,12 +64,12 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_heap = .;
|
_heap = .;
|
||||||
. += HEAP_SIZE;
|
. += CONFIG_LP_HEAP_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_eheap = .;
|
_eheap = .;
|
||||||
|
|
||||||
_estack = .;
|
_estack = .;
|
||||||
. += STACK_SIZE;
|
. += CONFIG_LP_STACK_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_stack = .;
|
_stack = .;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,19 +27,14 @@
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
BASE_ADDRESS = 0x100000;
|
|
||||||
|
|
||||||
OUTPUT_FORMAT(elf32-i386)
|
OUTPUT_FORMAT(elf32-i386)
|
||||||
OUTPUT_ARCH(i386)
|
OUTPUT_ARCH(i386)
|
||||||
|
|
||||||
ENTRY(_entry)
|
ENTRY(_entry)
|
||||||
|
|
||||||
HEAP_SIZE = 2*64*1024;
|
|
||||||
STACK_SIZE = 16384;
|
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = BASE_ADDRESS;
|
. = CONFIG_LP_BASE_ADDRESS;
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_start = .;
|
_start = .;
|
||||||
|
@ -73,12 +68,12 @@ SECTIONS
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_heap = .;
|
_heap = .;
|
||||||
. += HEAP_SIZE;
|
. += CONFIG_LP_HEAP_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_eheap = .;
|
_eheap = .;
|
||||||
|
|
||||||
_estack = .;
|
_estack = .;
|
||||||
. += STACK_SIZE;
|
. += CONFIG_LP_STACK_SIZE;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
_stack = .;
|
_stack = .;
|
||||||
}
|
}
|
||||||
|
|
|
@ -187,6 +187,10 @@ else
|
||||||
_LDFLAGS="$_LDFLAGS -Wl,--fix-cortex-a53-843419"
|
_LDFLAGS="$_LDFLAGS -Wl,--fix-cortex-a53-843419"
|
||||||
fi
|
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
|
if [ $DEBUGME -eq 1 ]; then
|
||||||
echo "$DEFAULT_CC $_LDFLAGS $HEAD_O $CMDLINE $_CFLAGS -lpayload $_LIBGCC"
|
echo "$DEFAULT_CC $_LDFLAGS $HEAD_O $CMDLINE $_CFLAGS -lpayload $_LIBGCC"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue