From 7e37a1d4e0605ea120db18f82d039c055fd5d737 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Tue, 19 Nov 2019 17:54:04 +0100 Subject: [PATCH] zipl: move Linux layout definitions into separate header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the Linux layout values to `include/boot/linux_layout.h`. This allows the reuse of the definitions, e.g. in assembler files, and later for the creation of linker scripts. Reviewed-by: Stefan Haberland Reviewed-by: Philipp Rudo Signed-off-by: Marc Hartmayer Signed-off-by: Jan Höppner --- include/boot/linux_layout.h | 33 +++++++++++++++++++++++++++++++++ zipl/boot/stage3.h | 9 ++------- zipl/include/zipl.h | 3 +-- 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 include/boot/linux_layout.h diff --git a/include/boot/linux_layout.h b/include/boot/linux_layout.h new file mode 100644 index 00000000..92d2f281 --- /dev/null +++ b/include/boot/linux_layout.h @@ -0,0 +1,33 @@ +/* + * s390 Linux 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 LINUX_LAYOUT_H +#define LINUX_LAYOUT_H + +#include "lib/zt_common.h" + +/* Entry address offsets */ +#define IMAGE_ENTRY _AC(0x10000, UL) +#define IMAGE_ENTRY_KDUMP _AC(0x10010, UL) + +/* Parameter address offsets */ +#define IPL_DEVICE _AC(0x10400, UL) +#define INITRD_START _AC(0x10408, UL) +#define INITRD_SIZE _AC(0x10410, UL) +#define OLDMEM_BASE _AC(0x10418, UL) +#define OLDMEM_SIZE _AC(0x10420, UL) +#define COMMAND_LINE _AC(0x10480, UL) + +/* Parameter sizes */ +#define COMMAND_LINE_SIZE 896 + + +#ifndef __ASSEMBLER__ +#endif /* __ASSEMBLER__ */ +#endif /* LINUX_LAYOUT_H */ diff --git a/zipl/boot/stage3.h b/zipl/boot/stage3.h index a4a3d7c8..924cfd9d 100644 --- a/zipl/boot/stage3.h +++ b/zipl/boot/stage3.h @@ -16,14 +16,9 @@ #include "s390.h" #include "boot/ipl.h" +#include "boot/linux_layout.h" + -#define IPL_DEVICE 0x10400UL -#define INITRD_START 0x10408UL -#define INITRD_SIZE 0x10410UL -#define OLDMEM_BASE 0x10418UL -#define OLDMEM_SIZE 0x10420UL -#define COMMAND_LINE 0x10480UL -#define COMMAND_LINE_SIZE 896 #define COMMAND_LINE_EXTRA 0xE000 #define STAGE3_FLAG_SCSI 0x0001000000000000ULL diff --git a/zipl/include/zipl.h b/zipl/include/zipl.h index acfc738e..204cc215 100644 --- a/zipl/include/zipl.h +++ b/zipl/include/zipl.h @@ -14,14 +14,13 @@ #include #include "lib/zt_common.h" +#include "boot/linux_layout.h" #define ZIPL_MAGIC "zIPL" #define ZIPL_MAGIC_SIZE 4 #define DISK_LAYOUT_ID 0x00000001 #define STAGE3_ENTRY 0xa000UL -#define IMAGE_ENTRY 0x10000UL -#define IMAGE_ENTRY_KDUMP 0x10010UL #define STAGE2_LOAD_ADDRESS 0x2000UL #define STAGE3_LOAD_ADDRESS 0xa000UL