summary refs log tree commit diff
path: root/arch/s390/boot/head.S
diff options
context:
space:
mode:
authorVasily Gorbik <gor@linux.ibm.com>2019-07-15 15:30:33 +0200
committerHeiko Carstens <heiko.carstens@de.ibm.com>2019-07-23 10:43:50 +0200
commit6abe28197024f732f1e298b1a593505282505857 (patch)
tree51afb04f173a15ee3bb2f26b4ac1d8e268914da1 /arch/s390/boot/head.S
parent5f9e832c137075045d15cd6899ab0505cfb2ca4b (diff)
downloadlinux-6abe28197024f732f1e298b1a593505282505857.tar.gz
s390: enable detection of kernel version from bzImage
Extend "parmarea" to include an offset of the version string, which is
stored as 8-byte big endian value.

To retrieve version string from bzImage reliably, one should check the
presence of "S390EP" ascii string at 0x10008 (available since v3.2),
then read the version string offset from 0x10428 (which has been 0
since v3.2 up to now). The string is null terminated.

Could be retrieved with the following "file" command magic (requires
file v5.34):
8 string \x02\x00\x00\x18\x60\x00\x00\x50\x02\x00\x00\x68\x60\x00\x00\x50\x40\x40\x40\x40\x40\x40\x40\x40 Linux S390
>0x10008       string          S390EP
>>0x10428      bequad          >0
>>>(0x10428.Q) string          >\0             \b, version %s

Reported-by: Petr Tesarik <ptesarik@suse.com>
Suggested-by: Petr Tesarik <ptesarik@suse.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390/boot/head.S')
-rw-r--r--arch/s390/boot/head.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/boot/head.S b/arch/s390/boot/head.S
index 028aab03a9e7..2087bed6e60f 100644
--- a/arch/s390/boot/head.S
+++ b/arch/s390/boot/head.S
@@ -361,6 +361,7 @@ ENTRY(startup_kdump)
 	.quad	0			# INITRD_SIZE
 	.quad	0			# OLDMEM_BASE
 	.quad	0			# OLDMEM_SIZE
+	.quad	kernel_version		# points to kernel version string
 
 	.org	COMMAND_LINE
 	.byte	"root=/dev/ram0 ro"