File s390-tools-sles15sp2-23-zipl-add-SIGP_SET_ARCHITECTURE-to-sigp.h-and-use-it.patch of Package s390-tools.19608

Subject: [PATCH] [FEAT VS1804] zipl: add SIGP_SET_ARCHITECTURE to sigp.h and use 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: 0e385a81caf7c266c0784613e0264c03271eb99a
Problem-ID:  VS1804

Upstream-Description:

             zipl: add SIGP_SET_ARCHITECTURE to sigp.h and use it

             This makes the code easier to read.

             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>
---
 include/boot/sigp.h |    1 +
 zipl/boot/head.S    |    6 ++++--
 zipl/boot/stage3.c  |    6 ++++--
 zipl/boot/tape0.S   |    6 ++++--
 4 files changed, 13 insertions(+), 6 deletions(-)

--- a/include/boot/sigp.h
+++ b/include/boot/sigp.h
@@ -12,6 +12,7 @@
 
 /* Signal Processor Order Codes */
 #define SIGP_STOP_AND_STORE_STATUS	9
+#define SIGP_SET_ARCHITECTURE		18
 #define SIGP_SET_MULTI_THREADING	22
 #define SIGP_STORE_ASTATUS_AT_ADDRESS	23
 
--- a/zipl/boot/head.S
+++ b/zipl/boot/head.S
@@ -9,16 +9,18 @@
  * it under the terms of the MIT license. See LICENSE for details.
  */
 
+#include "boot/sigp.h"
+
 .section .text.start
 .globl _start
 _start:
 	basr	%r13,0
 0:	la	%r7,2				/* First try code 2: */
 	la	%r6,0				/* 64 bit psws are restored */
-	sigp	%r7,%r6,0x12			/* Switch to 64 bit */
+	sigp	%r7,%r6,SIGP_SET_ARCHITECTURE	/* Switch to 64 bit */
 	bc	8,.Lswitched_64-0b(%r13)	/* Accepted ? */
 	la	%r7,1				/* Failed - try code 1 */
-	sigp	%r7,%r6,0x12			/* Switch to 64 bit */
+	sigp	%r7,%r6,SIGP_SET_ARCHITECTURE	/* Switch to 64 bit */
 .Lswitched_64:
 	sam64					/* Switch to 64 bit addr mode */
 	basr	%r13,0
--- a/zipl/boot/stage3.c
+++ b/zipl/boot/stage3.c
@@ -10,6 +10,7 @@
  */
 
 #include "libc.h"
+#include "boot/sigp.h"
 #include "s390.h"
 #include "stage3.h"
 #include "error.h"
@@ -194,11 +195,12 @@ static inline void __noreturn start_kern
 		"       sam31\n"
 		"       sr      %r1,%r1\n"
 		"       sr      %r2,%r2\n"
-		"       sigp    %r1,%r2,0x12\n"
+		"       sigp    %r1,%r2,%[order]\n"
 		"       lpsw    0\n"
 		: [addr] "=&d" (addr),
 		  [code] "+&d" (code)
-		: [psw] "a" (psw) );
+		: [psw] "a" (psw),
+		  [order] "L" (SIGP_SET_ARCHITECTURE));
 	while (1);
 }
 
--- a/zipl/boot/tape0.S
+++ b/zipl/boot/tape0.S
@@ -7,6 +7,8 @@
 # it under the terms of the MIT license. See LICENSE for details.
 #
 
+#include "boot/sigp.h"
+
 IPL_BS			= 1024			# block size for tape access
 IPL_OFF			= 0x4000		# temporary kernel load addr
 COMMAND_LINE_SIZE	= 896			# max command line length
@@ -184,10 +186,10 @@ iplstart:
 0:
 	la      %r7,2                           #/* First try code 2: */
 	la      %r6,0                           #/* 64 bit psws are restored */
-	sigp    %r7,%r6,0x12                    #/* Switch to 64 bit */
+	sigp    %r7,%r6,SIGP_SET_ARCHITECTURE   #/* Switch to 64 bit */
 	bc      8,.Lswitched_64-0b(%r13)        #/* Accepted ? */
 	la      %r7,1                           #/* Failed - try code 1 */
-	sigp    %r7,%r6,0x12                    #/* Switch to 64 bit */
+	sigp    %r7,%r6,SIGP_SET_ARCHITECTURE   #/* Switch to 64 bit */
 .Lswitched_64:
 	sam64                                   #/* Switch to 64 bit addr mode */
 	basr    %r13,0
openSUSE Build Service is sponsored by