From 605680d6fdf49807d90b6036d925232ffabaa2c9 Mon Sep 17 00:00:00 2001 From: Mikhail Zaslonko Date: Mon, 9 Sep 2024 13:18:15 +0200 Subject: [PATCH] zipl/boot: Increase section size for eckd_mv dumper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update eckd2dump linker script to remove stage2 space constraints and avoid linker section overlaps when using 'unfortunate' compiler version & flags combination. Since Multi-volume dumper size changes, we also update the dump-tool version number for 'zgetdump' to distinguish. Signed-off-by: Mikhail Zaslonko Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/171 Signed-off-by: Jan Höppner --- include/boot/loaders_layout.h | 4 ++-- zipl/boot/Makefile | 2 +- zipl/boot/eckd2dump.lds.S | 4 ++-- zipl/boot/eckd2dump_mv.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/boot/loaders_layout.h b/include/boot/loaders_layout.h index 19867a34..61b94169 100644 --- a/include/boot/loaders_layout.h +++ b/include/boot/loaders_layout.h @@ -21,7 +21,7 @@ #define STAGE2_DESC _AC(0x78, UL) #define STAGE2_ENTRY _AC(0x2018, UL) -#define ECKD2DUMP_MV_TAIL_ADDRESS _AC(0x5000, UL) +#define ECKD2DUMP_MV_TAIL_ADDRESS _AC(0x6000, UL) #define STAGE2_HEAP_ADDRESS _AC(0x6000, UL) #define ECKD2DUMP_HEAP_ADDRESS _AC(0xb000, UL) #define STAGE2_HEAP_SIZE _AC(0x3000, UL) @@ -34,7 +34,7 @@ #define STAGE2_DUMPER_SIZE_V1 _AC(0x1000, UL) #define STAGE2_DUMPER_SIZE_V2 _AC(0x2000, UL) #define STAGE2_DUMPER_SIZE_V3 _AC(0x3000, UL) -#define STAGE2_DUMPER_SIZE_MV _AC(0x3000, UL) +#define STAGE2_DUMPER_SIZE_MV _AC(0x4000, UL) #define STAGE2_DUMPER_SIZE_ZLIB _AC(0x8000, UL) #define STAGE3_ENTRY _AC(0xa000, UL) diff --git a/zipl/boot/Makefile b/zipl/boot/Makefile index 063bbc87..a7827a73 100644 --- a/zipl/boot/Makefile +++ b/zipl/boot/Makefile @@ -57,7 +57,7 @@ eckd2dump_sv.lds: eckd2dump.lds.S $(CPP) -Wp,-MD,.$@.d,-MT,$@ $(INCLUDE_PARMS) -D STAGE2DUMP_TAIL_ADDRESS=0x9ff0 \ -P -C -o $@ $< eckd2dump_mv.lds: eckd2dump.lds.S - $(CPP) -Wp,-MD,.$@.d,-MT,$@ $(INCLUDE_PARMS) -D STAGE2DUMP_TAIL_ADDRESS=0x4ff0 \ + $(CPP) -Wp,-MD,.$@.d,-MT,$@ $(INCLUDE_PARMS) -D STAGE2DUMP_TAIL_ADDRESS=0x5ff0 \ -D ECKD2DUMP_MV -P -C -o $@ $< stage2.lds: stage2.lds.S $(CPP) -Wp,-MD,.$@.d,-MT,$@ $(INCLUDE_PARMS) -D STAGE2DUMP_TAIL_ADDRESS=0x4ff0 \ diff --git a/zipl/boot/eckd2dump.lds.S b/zipl/boot/eckd2dump.lds.S index a16a73be..a81cacd2 100644 --- a/zipl/boot/eckd2dump.lds.S +++ b/zipl/boot/eckd2dump.lds.S @@ -17,8 +17,8 @@ * * 0x78 Stage 2 description parameters * 0x2018 Stage 2 entry point - * 0x4ff0 Stage 2 multi-volume dump parameters (eckd2dump_mv) - * 0x5000 Multi-volume dump parameters table (eckd2dump_mv) + * 0x5ff0 Stage 2 multi-volume dump parameters (eckd2dump_mv) + * 0x6000 Multi-volume dump parameters table (eckd2dump_mv) * 0x9ff0 Stage 2 single volume dump parameters (eckd2dump_sv) */ diff --git a/zipl/boot/eckd2dump_mv.c b/zipl/boot/eckd2dump_mv.c index 37f222b7..4b6a1012 100644 --- a/zipl/boot/eckd2dump_mv.c +++ b/zipl/boot/eckd2dump_mv.c @@ -22,7 +22,7 @@ /* * Magic number at start of dump record */ -const uint64_t __section(.stage2.head) magic = 0x584d554c54363401ULL; /* XMULT64, version 1 */ +const uint64_t __section(.stage2.head) magic = 0x584d554c54363402ULL; /* XMULT64, version 2 */ /* * Parameter format for ECKD MV dumper (13 bytes):