135 lines
5.7 KiB
Diff
135 lines
5.7 KiB
Diff
|
From 5536da8458b7825b084bfc94256bfdc1ca0127a3 Mon Sep 17 00:00:00 2001
|
||
|
From: Christian Borntraeger <borntraeger@de.ibm.com>
|
||
|
Date: Tue, 22 Jun 2021 22:19:23 +0200
|
||
|
Subject: [PATCH 1/6] s390x/cpumodel: add 3931 and 3932
|
||
|
|
||
|
RH-Author: Cornelia Huck <cohuck@redhat.com>
|
||
|
RH-MergeRequest: 21: s390x/cpumodel: add 3931 and 3932
|
||
|
RH-Commit: [1/1] b678fdf9364407c615678980330e496676e04f9e (cohuck/qemu-kvm-c9s)
|
||
|
RH-Bugzilla: 1932191
|
||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||
|
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||
|
|
||
|
This defines 5 new facilities and the new 3931 and 3932 machines.
|
||
|
As before the name is not yet known and we do use gen16a and gen16b.
|
||
|
The new features are part of the full model.
|
||
|
|
||
|
The default model is still empty (same as z15) and will be added
|
||
|
in a separate patch at a later point in time.
|
||
|
|
||
|
Also add the dependencies of new facilities and as a fix for z15 add
|
||
|
a dependency from S390_FEAT_VECTOR_PACKED_DECIMAL_ENH to
|
||
|
S390_VECTOR_PACKED_DECIMAL.
|
||
|
|
||
|
[merged <20210701084348.26556-1-borntraeger@de.ibm.com>]
|
||
|
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
||
|
Message-Id: <20210622201923.150205-2-borntraeger@de.ibm.com>
|
||
|
Reviewed-by: David Hildenbrand <david@redhat.com>
|
||
|
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
|
||
|
(cherry picked from commit fb4a08121695a88acefcbcd86f1376df079eefee)
|
||
|
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
|
||
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||
|
---
|
||
|
target/s390x/cpu_features_def.h.inc | 5 +++++
|
||
|
target/s390x/cpu_models.c | 6 ++++++
|
||
|
target/s390x/gen-features.c | 14 ++++++++++++++
|
||
|
3 files changed, 25 insertions(+)
|
||
|
|
||
|
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||
|
index 7db3449e04..e86662bb3b 100644
|
||
|
--- a/target/s390x/cpu_features_def.h.inc
|
||
|
+++ b/target/s390x/cpu_features_def.h.inc
|
||
|
@@ -109,6 +109,11 @@ DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH, "vxpdeh", STFL, 152, "Vector-Packed-Decimal-
|
||
|
DEF_FEAT(MSA_EXT_9, "msa9-base", STFL, 155, "Message-security-assist-extension-9 facility (excluding subfunctions)")
|
||
|
DEF_FEAT(ETOKEN, "etoken", STFL, 156, "Etoken facility")
|
||
|
DEF_FEAT(UNPACK, "unpack", STFL, 161, "Unpack facility")
|
||
|
+DEF_FEAT(NNPA, "nnpa", STFL, 165, "NNPA facility")
|
||
|
+DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH2, "vxpdeh2", STFL, 192, "Vector-Packed-Decimal-Enhancement facility 2")
|
||
|
+DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility")
|
||
|
+DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility")
|
||
|
+DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility")
|
||
|
|
||
|
/* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */
|
||
|
DEF_FEAT(SIE_GSLS, "gsls", SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility")
|
||
|
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||
|
index 9254ff46bf..3cb4d25a10 100644
|
||
|
--- a/target/s390x/cpu_models.c
|
||
|
+++ b/target/s390x/cpu_models.c
|
||
|
@@ -88,6 +88,8 @@ static S390CPUDef s390_cpu_defs[] = {
|
||
|
CPUDEF_INIT(0x3907, 14, 1, 47, 0x08000000U, "z14ZR1", "IBM z14 Model ZR1 GA1"),
|
||
|
CPUDEF_INIT(0x8561, 15, 1, 47, 0x08000000U, "gen15a", "IBM z15 T01 GA1"),
|
||
|
CPUDEF_INIT(0x8562, 15, 1, 47, 0x08000000U, "gen15b", "IBM z15 T02 GA1"),
|
||
|
+ CPUDEF_INIT(0x3931, 16, 1, 47, 0x08000000U, "gen16a", "IBM 3931 GA1"),
|
||
|
+ CPUDEF_INIT(0x3932, 16, 1, 47, 0x08000000U, "gen16b", "IBM 3932 GA1"),
|
||
|
};
|
||
|
|
||
|
#define QEMU_MAX_CPU_TYPE 0x2964
|
||
|
@@ -815,6 +817,8 @@ static void check_consistency(const S390CPUModel *model)
|
||
|
{ S390_FEAT_MSA_EXT_9, S390_FEAT_MSA_EXT_4 },
|
||
|
{ S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_TOD_CLOCK_STEERING },
|
||
|
{ S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR },
|
||
|
+ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL },
|
||
|
+ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH },
|
||
|
{ S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR },
|
||
|
{ S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 },
|
||
|
{ S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP },
|
||
|
@@ -846,6 +850,8 @@ static void check_consistency(const S390CPUModel *model)
|
||
|
{ S390_FEAT_PTFF_STOUE, S390_FEAT_MULTIPLE_EPOCH },
|
||
|
{ S390_FEAT_AP_QUEUE_INTERRUPT_CONTROL, S390_FEAT_AP },
|
||
|
{ S390_FEAT_DIAG_318, S390_FEAT_EXTENDED_LENGTH_SCCB },
|
||
|
+ { S390_FEAT_NNPA, S390_FEAT_VECTOR },
|
||
|
+ { S390_FEAT_RDP, S390_FEAT_LOCAL_TLB_CLEARING },
|
||
|
};
|
||
|
int i;
|
||
|
|
||
|
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||
|
index a6ec918e90..8f99cea665 100644
|
||
|
--- a/target/s390x/gen-features.c
|
||
|
+++ b/target/s390x/gen-features.c
|
||
|
@@ -424,6 +424,8 @@ static uint16_t base_GEN15_GA1[] = {
|
||
|
S390_FEAT_MISC_INSTRUCTION_EXT3,
|
||
|
};
|
||
|
|
||
|
+#define base_GEN16_GA1 EmptyFeat
|
||
|
+
|
||
|
/* Full features (in order of release)
|
||
|
* Automatically includes corresponding base features.
|
||
|
* Full features are all features this hardware supports even if kvm/QEMU do not
|
||
|
@@ -567,6 +569,15 @@ static uint16_t full_GEN15_GA1[] = {
|
||
|
S390_FEAT_UNPACK,
|
||
|
};
|
||
|
|
||
|
+static uint16_t full_GEN16_GA1[] = {
|
||
|
+ S390_FEAT_NNPA,
|
||
|
+ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2,
|
||
|
+ S390_FEAT_BEAR_ENH,
|
||
|
+ S390_FEAT_RDP,
|
||
|
+ S390_FEAT_PAI,
|
||
|
+};
|
||
|
+
|
||
|
+
|
||
|
/* Default features (in order of release)
|
||
|
* Automatically includes corresponding base features.
|
||
|
* Default features are all features this version of QEMU supports for this
|
||
|
@@ -652,6 +663,8 @@ static uint16_t default_GEN15_GA1[] = {
|
||
|
S390_FEAT_ETOKEN,
|
||
|
};
|
||
|
|
||
|
+#define default_GEN16_GA1 EmptyFeat
|
||
|
+
|
||
|
/* QEMU (CPU model) features */
|
||
|
|
||
|
static uint16_t qemu_V2_11[] = {
|
||
|
@@ -782,6 +795,7 @@ static CpuFeatDefSpec CpuFeatDef[] = {
|
||
|
CPU_FEAT_INITIALIZER(GEN14_GA1),
|
||
|
CPU_FEAT_INITIALIZER(GEN14_GA2),
|
||
|
CPU_FEAT_INITIALIZER(GEN15_GA1),
|
||
|
+ CPU_FEAT_INITIALIZER(GEN16_GA1),
|
||
|
};
|
||
|
|
||
|
#define FEAT_GROUP_INITIALIZER(_name) \
|
||
|
--
|
||
|
2.27.0
|
||
|
|