diff options
author | Alexander Egorenkov <egorenar@linux.ibm.com> | 2020-11-05 13:09:06 +0100 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2021-07-27 09:39:15 +0200 |
commit | f1d3c5323772a215d910aeaf697d210a3671cf81 (patch) | |
tree | 18dd370f427bf284c19835fbed139d8ca23083cd /arch/s390/include | |
parent | 8b6bd6f295b7ff5e3205ef135de8ad3b2034ed73 (diff) | |
download | linux-f1d3c5323772a215d910aeaf697d210a3671cf81.tar.bz2 |
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/include')
-rw-r--r-- | arch/s390/include/asm/sclp.h | 1 | ||||
-rw-r--r-- | arch/s390/include/asm/setup.h | 4 |
2 files changed, 2 insertions, 3 deletions
diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index 3adbb417f740..835adb85b016 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -115,6 +115,7 @@ struct zpci_report_error_header { u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */ } __packed; +void sclp_early_set_buffer(void *sccb); int sclp_early_read_info(void); int sclp_early_read_storage_info(void); int sclp_early_get_core_info(struct sclp_core_info *info); diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h index cf285f57579f..b72714c632d7 100644 --- a/arch/s390/include/asm/setup.h +++ b/arch/s390/include/asm/setup.h @@ -7,15 +7,13 @@ #define _ASM_S390_SETUP_H #include <linux/bits.h> -#include <asm/sclp.h> #include <uapi/asm/setup.h> #include <linux/build_bug.h> #define EP_OFFSET 0x10008 #define EP_STRING "S390EP" #define PARMAREA 0x10400 -#define EARLY_SCCB_OFFSET 0x11000 -#define HEAD_END (EARLY_SCCB_OFFSET + EXT_SCCB_READ_SCP) +#define HEAD_END 0x11000 /* * Machine features detected in early.c |