zipl/boot: use C pre-processor for linker script generation

Use C pre-processor for linker script generation and refactor some
constants. This allows the usage of the constants in our "linker
scripts" `*.lds.S` (actually, these are assembler files, so we can
make us of the C pre-processor and its capabilities).

While at it, enforce the described memory layout in the generated
linker script.

Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Philipp Rudo <prudo@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Marc Hartmayer
2020-03-18 13:05:50 +01:00
committed by Jan Höppner
parent ce65c39e18
commit 19f747847f
7 changed files with 91 additions and 18 deletions

View File

@@ -14,19 +14,29 @@
#include "lib/zt_common.h"
#include "linux_layout.h"
#define STAGE2_DESC _AC(0x78, UL)
#define STAGE2_ENTRY _AC(0x2018, UL)
#define STAGE2_HEAP_ADDRESS _AC(0x6000, UL)
#define STAGE2_HEAP_SIZE _AC(0x3000, UL)
#define STAGE2_STACK_ADDRESS _AC(0xe400, UL)
#define STAGE2_STACK_SIZE _AC(0x1c00, UL)
#define STAGE3_ENTRY _AC(0xa000, UL)
#define STAGE2_LOAD_ADDRESS _AC(0x2000, UL)
#define STAGE3_LOAD_ADDRESS STAGE3_ENTRY
#define IMAGE_LOAD_ADDRESS IMAGE_ENTRY
#define STAGE3_MAXIMUM_SIZE _AC(0x3000, UL)
#define STAGE3_HEAP_SIZE _AC(0x4000, UL)
#define STAGE3_HEAP_ADDRESS _AC(0x2000, UL)
#define STAGE3_STACK_SIZE _AC(0x1000, UL)
#define STAGE3_STACK_ADDRESS _AC(0xF000, UL)
#define STAGE3_PARAMS_ADDRESS _AC(0x9000, UL)
#define STAGE3_PARAMS_MAXIMUM_SIZE _AC(0x1000, UL)
#define COMMAND_LINE_EXTRA _AC(0xE000, UL)
#define COMMAND_LINE_EXTRA_SIZE _AC(0x0400, UL)
#ifndef __ASSEMBLER__
#endif /* __ASSEMBLER__ */