s390/boot: move sclp early buffer from fixed address in asm to C
authorAlexander Egorenkov <egorenar@linux.ibm.com>
Thu, 5 Nov 2020 12:09:06 +0000 (13:09 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Tue, 27 Jul 2021 07:39:15 +0000 (09:39 +0200)
commitf1d3c5323772a215d910aeaf697d210a3671cf81
tree18dd370f427bf284c19835fbed139d8ca23083cd
parent8b6bd6f295b7ff5e3205ef135de8ad3b2034ed73
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>
arch/s390/boot/boot.h
arch/s390/boot/compressed/vmlinux.lds.S
arch/s390/boot/head.S
arch/s390/boot/sclp_early_core.c
arch/s390/include/asm/sclp.h
arch/s390/include/asm/setup.h
drivers/s390/char/sclp_early_core.c