189 lines
5.6 KiB
Diff
189 lines
5.6 KiB
Diff
|
Subject: [PATCH] [FEAT VS1804] zipl: define __section macro and make use of it
|
||
|
From: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||
|
|
||
|
Summary: genprotimg: Introduce new tool for the creation of PV images
|
||
|
Description: genprotimg takes a kernel, host-key documents, optionally an
|
||
|
initrd, optionally a file with the kernel command line, and it
|
||
|
generates a single, loadable image file. The image consists of a
|
||
|
concatenation of a plain text boot loader, the encrypted
|
||
|
components for kernel, initrd, and cmdline, and the
|
||
|
integrity-protected PV header, containing metadata necessary for
|
||
|
running the guest in PV mode. It's possible to use this image file
|
||
|
as a kernel for zIPL or for a direct kernel boot using QEMU.
|
||
|
Upstream-ID: 154734efc7ffeb1e51dd2be62561a364fdc6117c
|
||
|
Problem-ID: VS1804
|
||
|
|
||
|
Upstream-Description:
|
||
|
|
||
|
zipl: define __section macro and make use of it
|
||
|
|
||
|
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
|
||
|
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
|
||
|
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
|
||
|
|
||
|
|
||
|
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||
|
---
|
||
|
include/lib/zt_common.h | 1 +
|
||
|
zipl/boot/eckd2dump_mv.c | 8 ++++----
|
||
|
zipl/boot/eckd2dump_sv.c | 5 +++--
|
||
|
zipl/boot/fba2dump.c | 4 ++--
|
||
|
zipl/boot/stage2.c | 4 +++-
|
||
|
zipl/boot/stage2dump.c | 5 +++--
|
||
|
zipl/boot/stage2dump.h | 3 +--
|
||
|
zipl/boot/tape2dump.c | 4 +++-
|
||
|
8 files changed, 20 insertions(+), 14 deletions(-)
|
||
|
|
||
|
--- a/include/lib/zt_common.h
|
||
|
+++ b/include/lib/zt_common.h
|
||
|
@@ -31,6 +31,7 @@
|
||
|
#define __packed __attribute__((packed))
|
||
|
#define __aligned(x) __attribute__((aligned(x)))
|
||
|
#define __may_alias __attribute__((may_alias))
|
||
|
+#define __section(x) __attribute__((__section__(#x)))
|
||
|
|
||
|
typedef unsigned long long u64;
|
||
|
typedef signed long long s64;
|
||
|
--- a/zipl/boot/eckd2dump_mv.c
|
||
|
+++ b/zipl/boot/eckd2dump_mv.c
|
||
|
@@ -9,6 +9,8 @@
|
||
|
* it under the terms of the MIT license. See LICENSE for details.
|
||
|
*/
|
||
|
|
||
|
+#include "lib/zt_common.h"
|
||
|
+
|
||
|
#include "eckd2dump.h"
|
||
|
#include "error.h"
|
||
|
#include "stage2dump.h"
|
||
|
@@ -19,8 +21,7 @@
|
||
|
/*
|
||
|
* Magic number at start of dump record
|
||
|
*/
|
||
|
-uint64_t magic __attribute__((section(".stage2.head")))
|
||
|
- = 0x584d554c54363401ULL; /* XMULT64, version 1 */
|
||
|
+uint64_t __section(.stage2.head) magic = 0x584d554c54363401ULL; /* XMULT64, version 1 */
|
||
|
|
||
|
/*
|
||
|
* Parameter format for ECKD MV dumper (13 bytes):
|
||
|
@@ -59,8 +60,7 @@ struct mvdump_parm_table {
|
||
|
(MAX_DUMP_VOLUMES * (sizeof(struct mvdump_param) + 1))];
|
||
|
} __packed;
|
||
|
|
||
|
-static struct mvdump_parm_table mvdump_table
|
||
|
- __attribute__((section(".eckd2dump_mv.tail")));
|
||
|
+static struct mvdump_parm_table __section(.eckd2dump_mv.tail) mvdump_table;
|
||
|
|
||
|
static int volnr_current;
|
||
|
|
||
|
--- a/zipl/boot/eckd2dump_sv.c
|
||
|
+++ b/zipl/boot/eckd2dump_sv.c
|
||
|
@@ -9,6 +9,8 @@
|
||
|
* it under the terms of the MIT license. See LICENSE for details.
|
||
|
*/
|
||
|
|
||
|
+#include "lib/zt_common.h"
|
||
|
+
|
||
|
#include "eckd2dump.h"
|
||
|
#include "error.h"
|
||
|
#include "stage2dump.h"
|
||
|
@@ -16,8 +18,7 @@
|
||
|
/*
|
||
|
* Magic number at start of dump record
|
||
|
*/
|
||
|
-uint64_t magic __attribute__((section(".stage2.head"))) =
|
||
|
- 0x5845434b44363401ULL; /* "XECKD64", version 1 */
|
||
|
+uint64_t __section(.stage2.head) magic = 0x5845434b44363401ULL; /* "XECKD64", version 1 */
|
||
|
|
||
|
/*
|
||
|
* ECKD parameter block passed by zipl
|
||
|
--- a/zipl/boot/fba2dump.c
|
||
|
+++ b/zipl/boot/fba2dump.c
|
||
|
@@ -9,6 +9,7 @@
|
||
|
* it under the terms of the MIT license. See LICENSE for details.
|
||
|
*/
|
||
|
|
||
|
+#include "lib/zt_common.h"
|
||
|
#include "error.h"
|
||
|
#include "fba.h"
|
||
|
#include "stage2dump.h"
|
||
|
@@ -20,8 +21,7 @@
|
||
|
/*
|
||
|
* Magic number at start of dump record
|
||
|
*/
|
||
|
-uint64_t magic __attribute__((section(".stage2.head")))
|
||
|
- = 0x5844464241363401ULL; /* XDFBA64, version 1 */
|
||
|
+uint64_t __section(.stage2.head) magic = 0x5844464241363401ULL; /* XDFBA64, version 1 */
|
||
|
|
||
|
/*
|
||
|
* FBA dump device partition specification
|
||
|
--- a/zipl/boot/stage2.c
|
||
|
+++ b/zipl/boot/stage2.c
|
||
|
@@ -9,6 +9,8 @@
|
||
|
* it under the terms of the MIT license. See LICENSE for details.
|
||
|
*/
|
||
|
|
||
|
+#include "lib/zt_common.h"
|
||
|
+
|
||
|
#include "error.h"
|
||
|
#include "libc.h"
|
||
|
#include "menu.h"
|
||
|
@@ -141,4 +143,4 @@ void panic_notify(unsigned long UNUSED(r
|
||
|
{
|
||
|
}
|
||
|
|
||
|
-uint64_t stage2_head __attribute__((section(".stage2.head")));
|
||
|
+uint64_t __section(.stage2.head) stage2_head;
|
||
|
--- a/zipl/boot/stage2dump.c
|
||
|
+++ b/zipl/boot/stage2dump.c
|
||
|
@@ -11,6 +11,8 @@
|
||
|
|
||
|
#include <stdarg.h>
|
||
|
|
||
|
+#include "lib/zt_common.h"
|
||
|
+
|
||
|
#include "error.h"
|
||
|
#include "sclp.h"
|
||
|
#include "stage2dump.h"
|
||
|
@@ -34,8 +36,7 @@ struct ipib_info {
|
||
|
/*
|
||
|
* Tail parameters
|
||
|
*/
|
||
|
-struct stage2dump_parm_tail parm_tail
|
||
|
- __attribute__ ((section(".stage2dump.tail"))) = {
|
||
|
+struct stage2dump_parm_tail parm_tail = {
|
||
|
.mem_upper_limit = 0xffffffffffffffffULL,
|
||
|
};
|
||
|
|
||
|
--- a/zipl/boot/stage2dump.h
|
||
|
+++ b/zipl/boot/stage2dump.h
|
||
|
@@ -28,8 +28,7 @@ struct stage2dump_parm_tail {
|
||
|
uint64_t mem_upper_limit;
|
||
|
} __packed;
|
||
|
|
||
|
-extern struct stage2dump_parm_tail parm_tail
|
||
|
- __attribute__ ((section(".stage2dump.tail")));
|
||
|
+extern struct stage2dump_parm_tail __section(.stage2dump.tail) parm_tail;
|
||
|
|
||
|
/*
|
||
|
* S390 dump format defines
|
||
|
--- a/zipl/boot/tape2dump.c
|
||
|
+++ b/zipl/boot/tape2dump.c
|
||
|
@@ -9,6 +9,8 @@
|
||
|
* it under the terms of the MIT license. See LICENSE for details.
|
||
|
*/
|
||
|
|
||
|
+#include "lib/zt_common.h"
|
||
|
+
|
||
|
#include "cio.h"
|
||
|
#include "error.h"
|
||
|
#include "libc.h"
|
||
|
@@ -33,7 +35,7 @@ struct tape_head {
|
||
|
uint64_t ccw2;
|
||
|
} __packed;
|
||
|
|
||
|
-struct tape_head tape_head __attribute__((section(".stage2.head"))) = {
|
||
|
+struct tape_head __section(.stage2.head) tape_head = {
|
||
|
.psw = 0x0008000080002018ULL, /* Start code at 0x2018 */
|
||
|
.ccw1 = 0x0700000060000001ULL, /* Rewind ccw */
|
||
|
.ccw2 = 0x0200200020003000ULL, /* CCW to load dump tool to 0x2000 */
|