summaryrefslogtreecommitdiff
path: root/arch/s390/boot/head.S
diff options
context:
space:
mode:
authorAlexander Egorenkov <egorenar@linux.ibm.com>2020-11-05 15:09:06 +0300
committerHeiko Carstens <hca@linux.ibm.com>2021-07-27 10:39:15 +0300
commitf1d3c5323772a215d910aeaf697d210a3671cf81 (patch)
tree18dd370f427bf284c19835fbed139d8ca23083cd /arch/s390/boot/head.S
parent8b6bd6f295b7ff5e3205ef135de8ad3b2034ed73 (diff)
downloadlinux-f1d3c5323772a215d910aeaf697d210a3671cf81.tar.xz
s390/boot: move sclp early buffer from fixed address in asm to C
To make the decompressor relocatable, the early SCLP buffer with a fixed address must be replaced with a relocatable C buffer of the according size and alignment as required by SCLP. Introduce a new function sclp_early_set_buffer() into the SCLP driver which enables the decompressor to change the SCLP early buffer at any time. This will be useful when the decompressor becomes fully relocatable and might need to change the SCLP early buffer to one with an address < 2G as required by SCLP because it was loaded at an address >= 2G. Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com> Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/boot/head.S')
-rw-r--r--arch/s390/boot/head.S4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/s390/boot/head.S b/arch/s390/boot/head.S
index 4ac3958b3032..759f77c6af45 100644
--- a/arch/s390/boot/head.S
+++ b/arch/s390/boot/head.S
@@ -320,6 +320,7 @@ SYM_CODE_START_LOCAL(startup_normal)
spt 6f-.LPG0(%r13)
mvc __LC_LAST_UPDATE_TIMER(8),6f-.LPG0(%r13)
larl %r15,_stack_end-STACK_FRAME_OVERHEAD
+ brasl %r14,sclp_early_setup_buffer
brasl %r14,verify_facilities
brasl %r14,startup_kernel
SYM_CODE_END(startup_normal)
@@ -410,7 +411,4 @@ SYM_DATA_START(parmarea)
.org PARMAREA+__PARMAREA_SIZE
SYM_DATA_END(parmarea)
- .org EARLY_SCCB_OFFSET
- .fill EXT_SCCB_READ_SCP
-
.org HEAD_END