File s390-tools-sles15sp2-39-zipl-sclp-add-macros-for-the-control-program-masks.patch of Package s390-tools.18357
Subject: [PATCH] [FEAT VS1804] zipl/sclp: add macros for the control-program masks
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: 303a3707e2e59e0ad581876db426a52fffa606b0
Problem-ID: VS1804
Upstream-Description:
zipl/sclp: add macros for the control-program masks
Add macros for the control-program masks and use them.
Reviewed-by: Philipp Rudo <prudo@linux.ibm.com>
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
---
zipl/boot/sclp.c | 16 ++++++++--------
zipl/boot/sclp.h | 6 ++++++
2 files changed, 14 insertions(+), 8 deletions(-)
--- a/zipl/boot/sclp.c
+++ b/zipl/boot/sclp.c
@@ -126,20 +126,20 @@ int sclp_setup(int initialise)
switch (initialise) {
case SCLP_INIT:
- sccb->receive_mask = 0x80000000;
- sccb->send_mask = 0x40000000;
+ sccb->receive_mask = SCLP_EVENT_MASK_OPCMD;
+ sccb->send_mask = SCLP_EVENT_MASK_MSG;
break;
case SCLP_DISABLE:
- sccb->receive_mask = 0x0;
- sccb->send_mask = 0x0;
+ sccb->receive_mask = SCLP_EVENT_MASK_DISABLE;
+ sccb->send_mask = SCLP_EVENT_MASK_DISABLE;
break;
case SCLP_HSA_INIT:
- sccb->receive_mask = 0x0;
- sccb->send_mask = 0x40000010;
+ sccb->receive_mask = SCLP_EVENT_MASK_DISABLE;
+ sccb->send_mask = SCLP_EVENT_MASK_MSG | SCLP_EVENT_MASK_SDIAS;
break;
case SCLP_HSA_INIT_ASYNC:
- sccb->receive_mask = 0x00000010;
- sccb->send_mask = 0x40000010;
+ sccb->receive_mask = SCLP_EVENT_MASK_SDIAS;
+ sccb->send_mask = SCLP_EVENT_MASK_MSG | SCLP_EVENT_MASK_SDIAS;
break;
}
--- a/zipl/boot/sclp.h
+++ b/zipl/boot/sclp.h
@@ -28,6 +28,12 @@
#define SCLP_CMD_READ_INFO2 0x00020001
#define SCLP_CMD_READ_DATA 0x00770005
+/* SCLP event masks */
+#define SCLP_EVENT_MASK_DISABLE 0x00000000
+#define SCLP_EVENT_MASK_SDIAS 0x00000010
+#define SCLP_EVENT_MASK_MSG 0x40000000
+#define SCLP_EVENT_MASK_OPCMD 0x80000000
+
#define PSW_EXT_MASK 0x00080000ULL
#define PSW_EXT_ADDR 0x80000000ULL
#define PSW_WAIT_MASK 0x010a0000ULL