mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
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>
44 lines
1.2 KiB
C
44 lines
1.2 KiB
C
/*
|
|
* zipl stage2/stage3 layout definitions
|
|
*
|
|
* Copyright IBM Corp. 2020
|
|
*
|
|
* s390-tools is free software; you can redistribute it and/or modify
|
|
* it under the terms of the MIT license. See LICENSE for details.
|
|
*
|
|
*/
|
|
|
|
#ifndef LOADERS_LAYOUT_H
|
|
#define LOADERS_LAYOUT_H
|
|
|
|
#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__ */
|
|
#endif /* LOADERS_LAYOUT_H */
|