... | ... | ||
---|---|---|---|
5 | * More vector extensions | 5 | * More vector extensions |
6 | * Ineffective-nonconstrained-transaction facility | 6 | * Ineffective-nonconstrained-transaction facility |
7 | * Even more msa crypto extensions | 7 | * Even more msa crypto extensions |
8 | * Additional PLO subfunctions | 8 | * Additional PLO subfunctions |
9 | 9 | ||
10 | |||
11 | For reference, see also the kernel part: | 10 | For reference, see also the kernel part: |
12 | https://lore.kernel.org/kvm/20241107152319.77816-1-brueckner@linux.ibm.com/T/#me506dc2ca538aee3cfc13620a48bdb686c459ab0 | 11 | https://lore.kernel.org/kvm/20241107152319.77816-1-brueckner@linux.ibm.com/T/#me506dc2ca538aee3cfc13620a48bdb686c459ab0 |
12 | |||
13 | Changelog v1->v2: | ||
14 | - Linux headers update to Linux 6.13-rc1 as pre-req | ||
15 | for the Concurrent-function facility | ||
16 | - Added missing CPU feature (group) initialization | ||
17 | for the msa12 and PLO extensions | ||
18 | |||
13 | 19 | ||
14 | Feedback and review is always welcome. Thanks a lot! | 20 | Feedback and review is always welcome. Thanks a lot! |
15 | 21 | ||
16 | Kind regards, | 22 | Kind regards, |
17 | Hendrik | 23 | Hendrik |
18 | 24 | ||
19 | 25 | ||
20 | Hendrik Brueckner (14): | 26 | Hendrik Brueckner (15): |
21 | s390x/cpumodel: add msa10 subfunctions | 27 | s390x/cpumodel: add msa10 subfunctions |
22 | s390x/cpumodel: add msa11 subfunctions | 28 | s390x/cpumodel: add msa11 subfunctions |
23 | s390x/cpumodel: add msa12 changes | 29 | s390x/cpumodel: add msa12 changes |
24 | s390x/cpumodel: add msa13 subfunctions | 30 | s390x/cpumodel: add msa13 subfunctions |
25 | s390x/cpumodel: Add ptff Query Time-Stamp Event (QTSE) support | 31 | s390x/cpumodel: Add ptff Query Time-Stamp Event (QTSE) support |
32 | linux-headers: Update to Linux 6.13-rc1 | ||
26 | s390x/cpumodel: add Concurrent-functions facility support | 33 | s390x/cpumodel: add Concurrent-functions facility support |
27 | s390x/cpumodel: add Vector Enhancements facility 3 | 34 | s390x/cpumodel: add Vector Enhancements facility 3 |
28 | s390x/cpumodel: add Miscellaneous-Instruction-Extensions Facility 4 | 35 | s390x/cpumodel: add Miscellaneous-Instruction-Extensions Facility 4 |
29 | s390x/cpumodel: add Vector-Packed-Decimal-Enhancement facility 3 | 36 | s390x/cpumodel: add Vector-Packed-Decimal-Enhancement facility 3 |
30 | s390x/cpumodel: add Ineffective-nonconstrained-transaction facility | 37 | s390x/cpumodel: add Ineffective-nonconstrained-transaction facility |
31 | s390x/cpumodel: Add Sequential-Instruction-Fetching facility | 38 | s390x/cpumodel: Add Sequential-Instruction-Fetching facility |
32 | s390x/cpumodel: correct PLO feature wording | 39 | s390x/cpumodel: correct PLO feature wording |
33 | s390x/cpumodel: Add PLO-extension facility | 40 | s390x/cpumodel: Add PLO-extension facility |
34 | s390x/cpumodel: gen17 model | 41 | s390x/cpumodel: gen17 model |
35 | 42 | ||
36 | linux-headers/asm-s390/kvm.h | 3 +- | 43 | include/standard-headers/drm/drm_fourcc.h | 1 + |
37 | target/s390x/cpu_features.c | 9 ++ | 44 | include/standard-headers/linux/ethtool.h | 5 + |
38 | target/s390x/cpu_features.h | 1 + | 45 | include/standard-headers/linux/pci_regs.h | 38 ++- |
39 | target/s390x/cpu_features_def.h.inc | 94 ++++++++++++++- | 46 | .../standard-headers/linux/virtio_crypto.h | 1 + |
40 | target/s390x/cpu_models.c | 61 ++++++++++ | 47 | include/standard-headers/linux/virtio_pci.h | 131 ++++++++++ |
41 | target/s390x/gen-features.c | 174 ++++++++++++++++++++++++++++ | 48 | linux-headers/asm-arm64/kvm.h | 6 + |
42 | target/s390x/kvm/kvm.c | 6 + | 49 | linux-headers/asm-arm64/unistd_64.h | 4 + |
43 | 7 files changed, 341 insertions(+), 7 deletions(-) | 50 | linux-headers/asm-generic/mman-common.h | 3 + |
51 | linux-headers/asm-generic/mman.h | 4 + | ||
52 | linux-headers/asm-generic/unistd.h | 11 +- | ||
53 | linux-headers/asm-loongarch/kvm.h | 20 ++ | ||
54 | linux-headers/asm-loongarch/unistd_64.h | 4 + | ||
55 | linux-headers/asm-mips/mman.h | 3 + | ||
56 | linux-headers/asm-mips/unistd_n32.h | 4 + | ||
57 | linux-headers/asm-mips/unistd_n64.h | 4 + | ||
58 | linux-headers/asm-mips/unistd_o32.h | 4 + | ||
59 | linux-headers/asm-powerpc/unistd_32.h | 4 + | ||
60 | linux-headers/asm-powerpc/unistd_64.h | 4 + | ||
61 | linux-headers/asm-riscv/kvm.h | 4 + | ||
62 | linux-headers/asm-riscv/unistd_32.h | 4 + | ||
63 | linux-headers/asm-riscv/unistd_64.h | 4 + | ||
64 | linux-headers/asm-s390/kvm.h | 3 +- | ||
65 | linux-headers/asm-s390/unistd_32.h | 4 + | ||
66 | linux-headers/asm-s390/unistd_64.h | 4 + | ||
67 | linux-headers/asm-x86/kvm.h | 1 + | ||
68 | linux-headers/asm-x86/mman.h | 3 - | ||
69 | linux-headers/asm-x86/unistd_32.h | 4 + | ||
70 | linux-headers/asm-x86/unistd_64.h | 4 + | ||
71 | linux-headers/asm-x86/unistd_x32.h | 4 + | ||
72 | linux-headers/linux/iommufd.h | 224 +++++++++++++++++- | ||
73 | linux-headers/linux/kvm.h | 8 + | ||
74 | linux-headers/linux/psci.h | 5 + | ||
75 | linux-headers/linux/vfio.h | 2 +- | ||
76 | target/s390x/cpu_features.c | 11 + | ||
77 | target/s390x/cpu_features.h | 1 + | ||
78 | target/s390x/cpu_features_def.h.inc | 94 +++++++- | ||
79 | target/s390x/cpu_models.c | 61 +++++ | ||
80 | target/s390x/gen-features.c | 178 ++++++++++++++ | ||
81 | target/s390x/kvm/kvm.c | 6 + | ||
82 | 39 files changed, 851 insertions(+), 29 deletions(-) | ||
44 | 83 | ||
45 | -- | 84 | -- |
46 | 2.43.5 | 85 | 2.43.5 | diff view generated by jsdifflib |
1 | MSA10 introduces new AES XTS subfunctions. | 1 | MSA10 introduces new AES XTS subfunctions. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
4 | Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> | ||
4 | --- | 5 | --- |
5 | target/s390x/cpu_features.c | 2 ++ | 6 | target/s390x/cpu_features.c | 2 ++ |
6 | target/s390x/cpu_features_def.h.inc | 6 ++++++ | 7 | target/s390x/cpu_features_def.h.inc | 6 ++++++ |
7 | target/s390x/cpu_models.c | 4 ++++ | 8 | target/s390x/cpu_models.c | 4 ++++ |
8 | target/s390x/gen-features.c | 20 ++++++++++++++++++++ | 9 | target/s390x/gen-features.c | 20 ++++++++++++++++++++ |
... | ... | diff view generated by jsdifflib |
1 | MSA11 introduces new HMAC subfunctions. | 1 | MSA11 introduces new HMAC subfunctions. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
4 | Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> | ||
4 | --- | 5 | --- |
5 | target/s390x/cpu_features.c | 2 ++ | 6 | target/s390x/cpu_features.c | 2 ++ |
6 | target/s390x/cpu_features_def.h.inc | 10 ++++++++++ | 7 | target/s390x/cpu_features_def.h.inc | 10 ++++++++++ |
7 | target/s390x/cpu_models.c | 8 ++++++++ | 8 | target/s390x/cpu_models.c | 8 ++++++++ |
8 | target/s390x/gen-features.c | 24 ++++++++++++++++++++++++ | 9 | target/s390x/gen-features.c | 24 ++++++++++++++++++++++++ |
... | ... | diff view generated by jsdifflib |
1 | MSA12 changes the KIMD/KLMD instruction format for SHA3/SHAKE. | 1 | MSA12 changes the KIMD/KLMD instruction format for SHA3/SHAKE. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
4 | Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> | ||
4 | --- | 5 | --- |
6 | target/s390x/cpu_features.c | 1 + | ||
5 | target/s390x/cpu_features_def.h.inc | 1 + | 7 | target/s390x/cpu_features_def.h.inc | 1 + |
6 | target/s390x/gen-features.c | 8 ++++++++ | 8 | target/s390x/gen-features.c | 8 ++++++++ |
7 | 2 files changed, 9 insertions(+) | 9 | 3 files changed, 10 insertions(+) |
8 | 10 | ||
11 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c | ||
12 | index XXXXXXX..XXXXXXX 100644 | ||
13 | --- a/target/s390x/cpu_features.c | ||
14 | +++ b/target/s390x/cpu_features.c | ||
15 | @@ -XXX,XX +XXX,XX @@ static S390FeatGroupDef s390_feature_groups[] = { | ||
16 | FEAT_GROUP_INIT("msa10_pckmo", MSA_EXT_10_PCKMO, "Message-security-assist-extension 10 PCKMO subfunctions"), | ||
17 | FEAT_GROUP_INIT("msa11", MSA_EXT_11, "Message-security-assist-extension 11 facility"), | ||
18 | FEAT_GROUP_INIT("msa11_pckmo", MSA_EXT_11_PCKMO, "Message-security-assist-extension 11 PCKMO subfunctions"), | ||
19 | + FEAT_GROUP_INIT("msa12", MSA_EXT_12, "Message-security-assist-extension 12 facility"), | ||
20 | FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"), | ||
21 | FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"), | ||
22 | FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"), | ||
9 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 23 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
10 | index XXXXXXX..XXXXXXX 100644 | 24 | index XXXXXXX..XXXXXXX 100644 |
11 | --- a/target/s390x/cpu_features_def.h.inc | 25 | --- a/target/s390x/cpu_features_def.h.inc |
12 | +++ b/target/s390x/cpu_features_def.h.inc | 26 | +++ b/target/s390x/cpu_features_def.h.inc |
13 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(EDAT_2, "edat2", STFL, 78, "Enhanced-DAT facility 2") | 27 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(EDAT_2, "edat2", STFL, 78, "Enhanced-DAT facility 2") |
... | ... | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
10 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c | 10 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c |
11 | index XXXXXXX..XXXXXXX 100644 | 11 | index XXXXXXX..XXXXXXX 100644 |
12 | --- a/target/s390x/cpu_features.c | 12 | --- a/target/s390x/cpu_features.c |
13 | +++ b/target/s390x/cpu_features.c | 13 | +++ b/target/s390x/cpu_features.c |
14 | @@ -XXX,XX +XXX,XX @@ static S390FeatGroupDef s390_feature_groups[] = { | 14 | @@ -XXX,XX +XXX,XX @@ static S390FeatGroupDef s390_feature_groups[] = { |
15 | FEAT_GROUP_INIT("msa10_pckmo", MSA_EXT_10_PCKMO, "Message-security-assist-extension 10 PCKMO subfunctions"), | ||
16 | FEAT_GROUP_INIT("msa11", MSA_EXT_11, "Message-security-assist-extension 11 facility"), | 15 | FEAT_GROUP_INIT("msa11", MSA_EXT_11, "Message-security-assist-extension 11 facility"), |
17 | FEAT_GROUP_INIT("msa11_pckmo", MSA_EXT_11_PCKMO, "Message-security-assist-extension 11 PCKMO subfunctions"), | 16 | FEAT_GROUP_INIT("msa11_pckmo", MSA_EXT_11_PCKMO, "Message-security-assist-extension 11 PCKMO subfunctions"), |
17 | FEAT_GROUP_INIT("msa12", MSA_EXT_12, "Message-security-assist-extension 12 facility"), | ||
18 | + FEAT_GROUP_INIT("msa13", MSA_EXT_13, "Message-security-assist-extension 13 facility"), | 18 | + FEAT_GROUP_INIT("msa13", MSA_EXT_13, "Message-security-assist-extension 13 facility"), |
19 | + FEAT_GROUP_INIT("msa13_pckmo", MSA_EXT_13_PCKMO, "Message-security-assist-extension 13 PCKMO subfunctions"), | 19 | + FEAT_GROUP_INIT("msa13_pckmo", MSA_EXT_13_PCKMO, "Message-security-assist-extension 13 PCKMO subfunctions"), |
20 | FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"), | 20 | FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"), |
21 | FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"), | 21 | FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"), |
22 | FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"), | 22 | FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"), |
... | ... | diff view generated by jsdifflib |
1 | Introduce a new PTFF subfunction to query-stamp events. | 1 | Introduce a new PTFF subfunction to query-stamp events. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
4 | --- | 4 | --- |
5 | target/s390x/cpu_features.c | 1 + | 5 | target/s390x/cpu_features.c | 1 + |
6 | target/s390x/cpu_features_def.h.inc | 1 + | 6 | target/s390x/cpu_features_def.h.inc | 1 + |
7 | target/s390x/gen-features.c | 9 +++++++++ | 7 | target/s390x/gen-features.c | 9 +++++++++ |
8 | 3 files changed, 11 insertions(+) | 8 | 3 files changed, 11 insertions(+) |
9 | 9 | ||
10 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c | 10 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c |
11 | index XXXXXXX..XXXXXXX 100644 | 11 | index XXXXXXX..XXXXXXX 100644 |
12 | --- a/target/s390x/cpu_features.c | 12 | --- a/target/s390x/cpu_features.c |
13 | +++ b/target/s390x/cpu_features.c | 13 | +++ b/target/s390x/cpu_features.c |
14 | @@ -XXX,XX +XXX,XX @@ static S390FeatGroupDef s390_feature_groups[] = { | 14 | @@ -XXX,XX +XXX,XX @@ static S390FeatGroupDef s390_feature_groups[] = { |
15 | FEAT_GROUP_INIT("plo", PLO, "Perform-locked-operation facility"), | 15 | FEAT_GROUP_INIT("plo", PLO, "Perform-locked-operation facility"), |
16 | FEAT_GROUP_INIT("tods", TOD_CLOCK_STEERING, "Tod-clock-steering facility"), | 16 | FEAT_GROUP_INIT("tods", TOD_CLOCK_STEERING, "Tod-clock-steering facility"), |
17 | FEAT_GROUP_INIT("gen13ptff", GEN13_PTFF, "PTFF enhancements introduced with z13"), | 17 | FEAT_GROUP_INIT("gen13ptff", GEN13_PTFF, "PTFF enhancements introduced with z13"), |
18 | + FEAT_GROUP_INIT("gen17ptff", GEN17_PTFF, "PTFF enhancements introduced with gen17"), | 18 | + FEAT_GROUP_INIT("gen17ptff", GEN17_PTFF, "PTFF enhancements introduced with gen17"), |
19 | FEAT_GROUP_INIT("msa", MSA, "Message-security-assist facility"), | 19 | FEAT_GROUP_INIT("msa", MSA, "Message-security-assist facility"), |
20 | FEAT_GROUP_INIT("msa1", MSA_EXT_1, "Message-security-assist-extension 1 facility"), | 20 | FEAT_GROUP_INIT("msa1", MSA_EXT_1, "Message-security-assist-extension 1 facility"), |
21 | FEAT_GROUP_INIT("msa2", MSA_EXT_2, "Message-security-assist-extension 2 facility"), | 21 | FEAT_GROUP_INIT("msa2", MSA_EXT_2, "Message-security-assist-extension 2 facility"), |
22 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 22 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
23 | index XXXXXXX..XXXXXXX 100644 | 23 | index XXXXXXX..XXXXXXX 100644 |
24 | --- a/target/s390x/cpu_features_def.h.inc | 24 | --- a/target/s390x/cpu_features_def.h.inc |
25 | +++ b/target/s390x/cpu_features_def.h.inc | 25 | +++ b/target/s390x/cpu_features_def.h.inc |
26 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(PTFF_QSI, "ptff-qsi", PTFF, 2, "PTFF Query Steering Information") | 26 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(PTFF_QSI, "ptff-qsi", PTFF, 2, "PTFF Query Steering Information") |
27 | DEF_FEAT(PTFF_QPT, "ptff-qpc", PTFF, 3, "PTFF Query Physical Clock") | 27 | DEF_FEAT(PTFF_QPT, "ptff-qpc", PTFF, 3, "PTFF Query Physical Clock") |
28 | DEF_FEAT(PTFF_QUI, "ptff-qui", PTFF, 4, "PTFF Query UTC Information") | 28 | DEF_FEAT(PTFF_QUI, "ptff-qui", PTFF, 4, "PTFF Query UTC Information") |
29 | DEF_FEAT(PTFF_QTOU, "ptff-qtou", PTFF, 5, "PTFF Query TOD Offset User") | 29 | DEF_FEAT(PTFF_QTOU, "ptff-qtou", PTFF, 5, "PTFF Query TOD Offset User") |
30 | +DEF_FEAT(PTFF_QTSE, "ptff-qtse", PTFF, 6, "PTFF Query Time-Stamp Event") | 30 | +DEF_FEAT(PTFF_QTSE, "ptff-qtse", PTFF, 6, "PTFF Query Time-Stamp Event") |
31 | DEF_FEAT(PTFF_QSIE, "ptff-qsie", PTFF, 10, "PTFF Query Steering Information Extended") | 31 | DEF_FEAT(PTFF_QSIE, "ptff-qsie", PTFF, 10, "PTFF Query Steering Information Extended") |
32 | DEF_FEAT(PTFF_QTOUE, "ptff-qtoue", PTFF, 13, "PTFF Query TOD Offset User Extended") | 32 | DEF_FEAT(PTFF_QTOUE, "ptff-qtoue", PTFF, 13, "PTFF Query TOD Offset User Extended") |
33 | DEF_FEAT(PTFF_STO, "ptff-sto", PTFF, 65, "PTFF Set TOD Offset") | 33 | DEF_FEAT(PTFF_STO, "ptff-sto", PTFF, 65, "PTFF Set TOD Offset") |
34 | diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c | 34 | diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c |
35 | index XXXXXXX..XXXXXXX 100644 | 35 | index XXXXXXX..XXXXXXX 100644 |
36 | --- a/target/s390x/gen-features.c | 36 | --- a/target/s390x/gen-features.c |
37 | +++ b/target/s390x/gen-features.c | 37 | +++ b/target/s390x/gen-features.c |
38 | @@ -XXX,XX +XXX,XX @@ | 38 | @@ -XXX,XX +XXX,XX @@ |
39 | S390_FEAT_PTFF_STOE, \ | 39 | S390_FEAT_PTFF_STOE, \ |
40 | S390_FEAT_PTFF_STOUE | 40 | S390_FEAT_PTFF_STOUE |
41 | 41 | ||
42 | +#define S390_FEAT_GROUP_GEN17_PTFF \ | 42 | +#define S390_FEAT_GROUP_GEN17_PTFF \ |
43 | + S390_FEAT_PTFF_QTSE | 43 | + S390_FEAT_PTFF_QTSE |
44 | + | 44 | + |
45 | #define S390_FEAT_GROUP_MSA \ | 45 | #define S390_FEAT_GROUP_MSA \ |
46 | S390_FEAT_MSA, \ | 46 | S390_FEAT_MSA, \ |
47 | S390_FEAT_KMAC_DEA, \ | 47 | S390_FEAT_KMAC_DEA, \ |
48 | @@ -XXX,XX +XXX,XX @@ static uint16_t group_GEN13_PTFF[] = { | 48 | @@ -XXX,XX +XXX,XX @@ static uint16_t group_GEN13_PTFF[] = { |
49 | static uint16_t group_MULTIPLE_EPOCH_PTFF[] = { | 49 | static uint16_t group_MULTIPLE_EPOCH_PTFF[] = { |
50 | S390_FEAT_GROUP_MULTIPLE_EPOCH_PTFF, | 50 | S390_FEAT_GROUP_MULTIPLE_EPOCH_PTFF, |
51 | }; | 51 | }; |
52 | + | 52 | + |
53 | +static uint16_t group_GEN17_PTFF[] = { | 53 | +static uint16_t group_GEN17_PTFF[] = { |
54 | + S390_FEAT_GROUP_GEN17_PTFF, | 54 | + S390_FEAT_GROUP_GEN17_PTFF, |
55 | +}; | 55 | +}; |
56 | + | 56 | + |
57 | static uint16_t group_MSA[] = { | 57 | static uint16_t group_MSA[] = { |
58 | S390_FEAT_GROUP_MSA, | 58 | S390_FEAT_GROUP_MSA, |
59 | }; | 59 | }; |
60 | @@ -XXX,XX +XXX,XX @@ static FeatGroupDefSpec FeatGroupDef[] = { | 60 | @@ -XXX,XX +XXX,XX @@ static FeatGroupDefSpec FeatGroupDef[] = { |
61 | FEAT_GROUP_INITIALIZER(PLO), | 61 | FEAT_GROUP_INITIALIZER(PLO), |
62 | FEAT_GROUP_INITIALIZER(TOD_CLOCK_STEERING), | 62 | FEAT_GROUP_INITIALIZER(TOD_CLOCK_STEERING), |
63 | FEAT_GROUP_INITIALIZER(GEN13_PTFF), | 63 | FEAT_GROUP_INITIALIZER(GEN13_PTFF), |
64 | + FEAT_GROUP_INITIALIZER(GEN17_PTFF), | 64 | + FEAT_GROUP_INITIALIZER(GEN17_PTFF), |
65 | FEAT_GROUP_INITIALIZER(MSA), | 65 | FEAT_GROUP_INITIALIZER(MSA), |
66 | FEAT_GROUP_INITIALIZER(MSA_EXT_1), | 66 | FEAT_GROUP_INITIALIZER(MSA_EXT_1), |
67 | FEAT_GROUP_INITIALIZER(MSA_EXT_2), | 67 | FEAT_GROUP_INITIALIZER(MSA_EXT_2), |
68 | -- | 68 | -- |
69 | 2.43.5 | 69 | 2.43.5 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | This linux headers update includes required changes for | ||
2 | the gen17 CPU model. | ||
1 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | ||
5 | Suggested-by: Thomas Huth <thuth@redhat.com> | ||
6 | --- | ||
7 | include/standard-headers/drm/drm_fourcc.h | 1 + | ||
8 | include/standard-headers/linux/ethtool.h | 5 + | ||
9 | include/standard-headers/linux/pci_regs.h | 38 ++- | ||
10 | .../standard-headers/linux/virtio_crypto.h | 1 + | ||
11 | include/standard-headers/linux/virtio_pci.h | 131 ++++++++++ | ||
12 | linux-headers/asm-arm64/kvm.h | 6 + | ||
13 | linux-headers/asm-arm64/unistd_64.h | 4 + | ||
14 | linux-headers/asm-generic/mman-common.h | 3 + | ||
15 | linux-headers/asm-generic/mman.h | 4 + | ||
16 | linux-headers/asm-generic/unistd.h | 11 +- | ||
17 | linux-headers/asm-loongarch/kvm.h | 20 ++ | ||
18 | linux-headers/asm-loongarch/unistd_64.h | 4 + | ||
19 | linux-headers/asm-mips/mman.h | 3 + | ||
20 | linux-headers/asm-mips/unistd_n32.h | 4 + | ||
21 | linux-headers/asm-mips/unistd_n64.h | 4 + | ||
22 | linux-headers/asm-mips/unistd_o32.h | 4 + | ||
23 | linux-headers/asm-powerpc/unistd_32.h | 4 + | ||
24 | linux-headers/asm-powerpc/unistd_64.h | 4 + | ||
25 | linux-headers/asm-riscv/kvm.h | 4 + | ||
26 | linux-headers/asm-riscv/unistd_32.h | 4 + | ||
27 | linux-headers/asm-riscv/unistd_64.h | 4 + | ||
28 | linux-headers/asm-s390/kvm.h | 3 +- | ||
29 | linux-headers/asm-s390/unistd_32.h | 4 + | ||
30 | linux-headers/asm-s390/unistd_64.h | 4 + | ||
31 | linux-headers/asm-x86/kvm.h | 1 + | ||
32 | linux-headers/asm-x86/mman.h | 3 - | ||
33 | linux-headers/asm-x86/unistd_32.h | 4 + | ||
34 | linux-headers/asm-x86/unistd_64.h | 4 + | ||
35 | linux-headers/asm-x86/unistd_x32.h | 4 + | ||
36 | linux-headers/linux/iommufd.h | 224 +++++++++++++++++- | ||
37 | linux-headers/linux/kvm.h | 8 + | ||
38 | linux-headers/linux/psci.h | 5 + | ||
39 | linux-headers/linux/vfio.h | 2 +- | ||
40 | 33 files changed, 506 insertions(+), 23 deletions(-) | ||
41 | |||
42 | diff --git a/include/standard-headers/drm/drm_fourcc.h b/include/standard-headers/drm/drm_fourcc.h | ||
43 | index XXXXXXX..XXXXXXX 100644 | ||
44 | --- a/include/standard-headers/drm/drm_fourcc.h | ||
45 | +++ b/include/standard-headers/drm/drm_fourcc.h | ||
46 | @@ -XXX,XX +XXX,XX @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier) | ||
47 | * 64K_D_2D on GFX12 is identical to 64K_D on GFX11. | ||
48 | */ | ||
49 | #define AMD_FMT_MOD_TILE_GFX9_64K_D 10 | ||
50 | +#define AMD_FMT_MOD_TILE_GFX9_4K_D_X 22 | ||
51 | #define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25 | ||
52 | #define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26 | ||
53 | #define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27 | ||
54 | diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-headers/linux/ethtool.h | ||
55 | index XXXXXXX..XXXXXXX 100644 | ||
56 | --- a/include/standard-headers/linux/ethtool.h | ||
57 | +++ b/include/standard-headers/linux/ethtool.h | ||
58 | @@ -XXX,XX +XXX,XX @@ struct ethtool_link_settings { | ||
59 | uint8_t master_slave_state; | ||
60 | uint8_t rate_matching; | ||
61 | uint32_t reserved[7]; | ||
62 | + /* Linux builds with -Wflex-array-member-not-at-end but does | ||
63 | + * not use the "link_mode_masks" member. Leave it defined for | ||
64 | + * userspace for now, and when userspace wants to start using | ||
65 | + * -Wfamnae, we'll need a new solution. | ||
66 | + */ | ||
67 | uint32_t link_mode_masks[]; | ||
68 | /* layout of link_mode_masks fields: | ||
69 | * uint32_t map_supported[link_mode_masks_nwords]; | ||
70 | diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h | ||
71 | index XXXXXXX..XXXXXXX 100644 | ||
72 | --- a/include/standard-headers/linux/pci_regs.h | ||
73 | +++ b/include/standard-headers/linux/pci_regs.h | ||
74 | @@ -XXX,XX +XXX,XX @@ | ||
75 | #define PCI_MSIX_ENTRY_UPPER_ADDR 0x4 /* Message Upper Address */ | ||
76 | #define PCI_MSIX_ENTRY_DATA 0x8 /* Message Data */ | ||
77 | #define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc /* Vector Control */ | ||
78 | -#define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001 | ||
79 | +#define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001 /* Mask Bit */ | ||
80 | +#define PCI_MSIX_ENTRY_CTRL_ST 0xffff0000 /* Steering Tag */ | ||
81 | |||
82 | /* CompactPCI Hotswap Register */ | ||
83 | |||
84 | @@ -XXX,XX +XXX,XX @@ | ||
85 | #define PCI_EXP_DEVCAP2_ATOMIC_COMP64 0x00000100 /* 64b AtomicOp completion */ | ||
86 | #define PCI_EXP_DEVCAP2_ATOMIC_COMP128 0x00000200 /* 128b AtomicOp completion */ | ||
87 | #define PCI_EXP_DEVCAP2_LTR 0x00000800 /* Latency tolerance reporting */ | ||
88 | +#define PCI_EXP_DEVCAP2_TPH_COMP_MASK 0x00003000 /* TPH completer support */ | ||
89 | #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */ | ||
90 | #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */ | ||
91 | #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */ | ||
92 | @@ -XXX,XX +XXX,XX @@ | ||
93 | #define PCI_EXP_DEVSTA2 0x2a /* Device Status 2 */ | ||
94 | #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c /* end of v2 EPs w/o link */ | ||
95 | #define PCI_EXP_LNKCAP2 0x2c /* Link Capabilities 2 */ | ||
96 | +#define PCI_EXP_LNKCAP2_SLS 0x000000fe /* Supported Link Speeds Vector */ | ||
97 | #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ | ||
98 | #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5GT/s */ | ||
99 | #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8GT/s */ | ||
100 | @@ -XXX,XX +XXX,XX @@ | ||
101 | #define PCI_DPA_CAP_SUBSTATE_MASK 0x1F /* # substates - 1 */ | ||
102 | #define PCI_DPA_BASE_SIZEOF 16 /* size with 0 substates */ | ||
103 | |||
104 | +/* TPH Completer Support */ | ||
105 | +#define PCI_EXP_DEVCAP2_TPH_COMP_NONE 0x0 /* None */ | ||
106 | +#define PCI_EXP_DEVCAP2_TPH_COMP_TPH_ONLY 0x1 /* TPH only */ | ||
107 | +#define PCI_EXP_DEVCAP2_TPH_COMP_EXT_TPH 0x3 /* TPH and Extended TPH */ | ||
108 | + | ||
109 | /* TPH Requester */ | ||
110 | #define PCI_TPH_CAP 4 /* capability register */ | ||
111 | -#define PCI_TPH_CAP_LOC_MASK 0x600 /* location mask */ | ||
112 | -#define PCI_TPH_LOC_NONE 0x000 /* no location */ | ||
113 | -#define PCI_TPH_LOC_CAP 0x200 /* in capability */ | ||
114 | -#define PCI_TPH_LOC_MSIX 0x400 /* in MSI-X */ | ||
115 | -#define PCI_TPH_CAP_ST_MASK 0x07FF0000 /* ST table mask */ | ||
116 | -#define PCI_TPH_CAP_ST_SHIFT 16 /* ST table shift */ | ||
117 | -#define PCI_TPH_BASE_SIZEOF 0xc /* size with no ST table */ | ||
118 | +#define PCI_TPH_CAP_ST_NS 0x00000001 /* No ST Mode Supported */ | ||
119 | +#define PCI_TPH_CAP_ST_IV 0x00000002 /* Interrupt Vector Mode Supported */ | ||
120 | +#define PCI_TPH_CAP_ST_DS 0x00000004 /* Device Specific Mode Supported */ | ||
121 | +#define PCI_TPH_CAP_EXT_TPH 0x00000100 /* Ext TPH Requester Supported */ | ||
122 | +#define PCI_TPH_CAP_LOC_MASK 0x00000600 /* ST Table Location */ | ||
123 | +#define PCI_TPH_LOC_NONE 0x00000000 /* Not present */ | ||
124 | +#define PCI_TPH_LOC_CAP 0x00000200 /* In capability */ | ||
125 | +#define PCI_TPH_LOC_MSIX 0x00000400 /* In MSI-X */ | ||
126 | +#define PCI_TPH_CAP_ST_MASK 0x07FF0000 /* ST Table Size */ | ||
127 | +#define PCI_TPH_CAP_ST_SHIFT 16 /* ST Table Size shift */ | ||
128 | +#define PCI_TPH_BASE_SIZEOF 0xc /* Size with no ST table */ | ||
129 | + | ||
130 | +#define PCI_TPH_CTRL 8 /* control register */ | ||
131 | +#define PCI_TPH_CTRL_MODE_SEL_MASK 0x00000007 /* ST Mode Select */ | ||
132 | +#define PCI_TPH_ST_NS_MODE 0x0 /* No ST Mode */ | ||
133 | +#define PCI_TPH_ST_IV_MODE 0x1 /* Interrupt Vector Mode */ | ||
134 | +#define PCI_TPH_ST_DS_MODE 0x2 /* Device Specific Mode */ | ||
135 | +#define PCI_TPH_CTRL_REQ_EN_MASK 0x00000300 /* TPH Requester Enable */ | ||
136 | +#define PCI_TPH_REQ_DISABLE 0x0 /* No TPH requests allowed */ | ||
137 | +#define PCI_TPH_REQ_TPH_ONLY 0x1 /* TPH only requests allowed */ | ||
138 | +#define PCI_TPH_REQ_EXT_TPH 0x3 /* Extended TPH requests allowed */ | ||
139 | |||
140 | /* Downstream Port Containment */ | ||
141 | #define PCI_EXP_DPC_CAP 0x04 /* DPC Capability */ | ||
142 | diff --git a/include/standard-headers/linux/virtio_crypto.h b/include/standard-headers/linux/virtio_crypto.h | ||
143 | index XXXXXXX..XXXXXXX 100644 | ||
144 | --- a/include/standard-headers/linux/virtio_crypto.h | ||
145 | +++ b/include/standard-headers/linux/virtio_crypto.h | ||
146 | @@ -XXX,XX +XXX,XX @@ struct virtio_crypto_op_header { | ||
147 | VIRTIO_CRYPTO_OPCODE(VIRTIO_CRYPTO_SERVICE_AKCIPHER, 0x00) | ||
148 | #define VIRTIO_CRYPTO_AKCIPHER_DECRYPT \ | ||
149 | VIRTIO_CRYPTO_OPCODE(VIRTIO_CRYPTO_SERVICE_AKCIPHER, 0x01) | ||
150 | + /* akcipher sign/verify opcodes are deprecated */ | ||
151 | #define VIRTIO_CRYPTO_AKCIPHER_SIGN \ | ||
152 | VIRTIO_CRYPTO_OPCODE(VIRTIO_CRYPTO_SERVICE_AKCIPHER, 0x02) | ||
153 | #define VIRTIO_CRYPTO_AKCIPHER_VERIFY \ | ||
154 | diff --git a/include/standard-headers/linux/virtio_pci.h b/include/standard-headers/linux/virtio_pci.h | ||
155 | index XXXXXXX..XXXXXXX 100644 | ||
156 | --- a/include/standard-headers/linux/virtio_pci.h | ||
157 | +++ b/include/standard-headers/linux/virtio_pci.h | ||
158 | @@ -XXX,XX +XXX,XX @@ | ||
159 | #define _LINUX_VIRTIO_PCI_H | ||
160 | |||
161 | #include "standard-headers/linux/types.h" | ||
162 | +#include "standard-headers/linux/kernel.h" | ||
163 | |||
164 | #ifndef VIRTIO_PCI_NO_LEGACY | ||
165 | |||
166 | @@ -XXX,XX +XXX,XX @@ struct virtio_pci_cfg_cap { | ||
167 | #define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_READ 0x5 | ||
168 | #define VIRTIO_ADMIN_CMD_LEGACY_NOTIFY_INFO 0x6 | ||
169 | |||
170 | +/* Device parts access commands. */ | ||
171 | +#define VIRTIO_ADMIN_CMD_CAP_ID_LIST_QUERY 0x7 | ||
172 | +#define VIRTIO_ADMIN_CMD_DEVICE_CAP_GET 0x8 | ||
173 | +#define VIRTIO_ADMIN_CMD_DRIVER_CAP_SET 0x9 | ||
174 | +#define VIRTIO_ADMIN_CMD_RESOURCE_OBJ_CREATE 0xa | ||
175 | +#define VIRTIO_ADMIN_CMD_RESOURCE_OBJ_DESTROY 0xd | ||
176 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_GET 0xe | ||
177 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_GET 0xf | ||
178 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_SET 0x10 | ||
179 | +#define VIRTIO_ADMIN_CMD_DEV_MODE_SET 0x11 | ||
180 | + | ||
181 | struct virtio_admin_cmd_hdr { | ||
182 | uint16_t opcode; | ||
183 | /* | ||
184 | @@ -XXX,XX +XXX,XX @@ struct virtio_admin_cmd_notify_info_result { | ||
185 | struct virtio_admin_cmd_notify_info_data entries[VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO]; | ||
186 | }; | ||
187 | |||
188 | +#define VIRTIO_DEV_PARTS_CAP 0x0000 | ||
189 | + | ||
190 | +struct virtio_dev_parts_cap { | ||
191 | + uint8_t get_parts_resource_objects_limit; | ||
192 | + uint8_t set_parts_resource_objects_limit; | ||
193 | +}; | ||
194 | + | ||
195 | +#define MAX_CAP_ID __KERNEL_DIV_ROUND_UP(VIRTIO_DEV_PARTS_CAP + 1, 64) | ||
196 | + | ||
197 | +struct virtio_admin_cmd_query_cap_id_result { | ||
198 | + uint64_t supported_caps[MAX_CAP_ID]; | ||
199 | +}; | ||
200 | + | ||
201 | +struct virtio_admin_cmd_cap_get_data { | ||
202 | + uint16_t id; | ||
203 | + uint8_t reserved[6]; | ||
204 | +}; | ||
205 | + | ||
206 | +struct virtio_admin_cmd_cap_set_data { | ||
207 | + uint16_t id; | ||
208 | + uint8_t reserved[6]; | ||
209 | + uint8_t cap_specific_data[]; | ||
210 | +}; | ||
211 | + | ||
212 | +struct virtio_admin_cmd_resource_obj_cmd_hdr { | ||
213 | + uint16_t type; | ||
214 | + uint8_t reserved[2]; | ||
215 | + uint32_t id; /* Indicates unique resource object id per resource object type */ | ||
216 | +}; | ||
217 | + | ||
218 | +struct virtio_admin_cmd_resource_obj_create_data { | ||
219 | + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | ||
220 | + uint64_t flags; | ||
221 | + uint8_t resource_obj_specific_data[]; | ||
222 | +}; | ||
223 | + | ||
224 | +#define VIRTIO_RESOURCE_OBJ_DEV_PARTS 0 | ||
225 | + | ||
226 | +#define VIRTIO_RESOURCE_OBJ_DEV_PARTS_TYPE_GET 0 | ||
227 | +#define VIRTIO_RESOURCE_OBJ_DEV_PARTS_TYPE_SET 1 | ||
228 | + | ||
229 | +struct virtio_resource_obj_dev_parts { | ||
230 | + uint8_t type; | ||
231 | + uint8_t reserved[7]; | ||
232 | +}; | ||
233 | + | ||
234 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_TYPE_SIZE 0 | ||
235 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_TYPE_COUNT 1 | ||
236 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_METADATA_TYPE_LIST 2 | ||
237 | + | ||
238 | +struct virtio_admin_cmd_dev_parts_metadata_data { | ||
239 | + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | ||
240 | + uint8_t type; | ||
241 | + uint8_t reserved[7]; | ||
242 | +}; | ||
243 | + | ||
244 | +#define VIRTIO_DEV_PART_F_OPTIONAL 0 | ||
245 | + | ||
246 | +struct virtio_dev_part_hdr { | ||
247 | + uint16_t part_type; | ||
248 | + uint8_t flags; | ||
249 | + uint8_t reserved; | ||
250 | + union { | ||
251 | + struct { | ||
252 | + uint32_t offset; | ||
253 | + uint32_t reserved; | ||
254 | + } pci_common_cfg; | ||
255 | + struct { | ||
256 | + uint16_t index; | ||
257 | + uint8_t reserved[6]; | ||
258 | + } vq_index; | ||
259 | + } selector; | ||
260 | + uint32_t length; | ||
261 | +}; | ||
262 | + | ||
263 | +struct virtio_dev_part { | ||
264 | + struct virtio_dev_part_hdr hdr; | ||
265 | + uint8_t value[]; | ||
266 | +}; | ||
267 | + | ||
268 | +struct virtio_admin_cmd_dev_parts_metadata_result { | ||
269 | + union { | ||
270 | + struct { | ||
271 | + uint32_t size; | ||
272 | + uint32_t reserved; | ||
273 | + } parts_size; | ||
274 | + struct { | ||
275 | + uint32_t count; | ||
276 | + uint32_t reserved; | ||
277 | + } hdr_list_count; | ||
278 | + struct { | ||
279 | + uint32_t count; | ||
280 | + uint32_t reserved; | ||
281 | + struct virtio_dev_part_hdr hdrs[]; | ||
282 | + } hdr_list; | ||
283 | + }; | ||
284 | +}; | ||
285 | + | ||
286 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_GET_TYPE_SELECTED 0 | ||
287 | +#define VIRTIO_ADMIN_CMD_DEV_PARTS_GET_TYPE_ALL 1 | ||
288 | + | ||
289 | +struct virtio_admin_cmd_dev_parts_get_data { | ||
290 | + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | ||
291 | + uint8_t type; | ||
292 | + uint8_t reserved[7]; | ||
293 | + struct virtio_dev_part_hdr hdr_list[]; | ||
294 | +}; | ||
295 | + | ||
296 | +struct virtio_admin_cmd_dev_parts_set_data { | ||
297 | + struct virtio_admin_cmd_resource_obj_cmd_hdr hdr; | ||
298 | + struct virtio_dev_part parts[]; | ||
299 | +}; | ||
300 | + | ||
301 | +#define VIRTIO_ADMIN_CMD_DEV_MODE_F_STOPPED 0 | ||
302 | + | ||
303 | +struct virtio_admin_cmd_dev_mode_set_data { | ||
304 | + uint8_t flags; | ||
305 | +}; | ||
306 | + | ||
307 | #endif | ||
308 | diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h | ||
309 | index XXXXXXX..XXXXXXX 100644 | ||
310 | --- a/linux-headers/asm-arm64/kvm.h | ||
311 | +++ b/linux-headers/asm-arm64/kvm.h | ||
312 | @@ -XXX,XX +XXX,XX @@ enum { | ||
313 | */ | ||
314 | #define KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 (1ULL << 0) | ||
315 | |||
316 | +/* | ||
317 | + * Shutdown caused by a PSCI v1.3 SYSTEM_OFF2 call. | ||
318 | + * Valid only when the system event has a type of KVM_SYSTEM_EVENT_SHUTDOWN. | ||
319 | + */ | ||
320 | +#define KVM_SYSTEM_EVENT_SHUTDOWN_FLAG_PSCI_OFF2 (1ULL << 0) | ||
321 | + | ||
322 | /* run->fail_entry.hardware_entry_failure_reason codes. */ | ||
323 | #define KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED (1ULL << 0) | ||
324 | |||
325 | diff --git a/linux-headers/asm-arm64/unistd_64.h b/linux-headers/asm-arm64/unistd_64.h | ||
326 | index XXXXXXX..XXXXXXX 100644 | ||
327 | --- a/linux-headers/asm-arm64/unistd_64.h | ||
328 | +++ b/linux-headers/asm-arm64/unistd_64.h | ||
329 | @@ -XXX,XX +XXX,XX @@ | ||
330 | #define __NR_lsm_set_self_attr 460 | ||
331 | #define __NR_lsm_list_modules 461 | ||
332 | #define __NR_mseal 462 | ||
333 | +#define __NR_setxattrat 463 | ||
334 | +#define __NR_getxattrat 464 | ||
335 | +#define __NR_listxattrat 465 | ||
336 | +#define __NR_removexattrat 466 | ||
337 | |||
338 | |||
339 | #endif /* _ASM_UNISTD_64_H */ | ||
340 | diff --git a/linux-headers/asm-generic/mman-common.h b/linux-headers/asm-generic/mman-common.h | ||
341 | index XXXXXXX..XXXXXXX 100644 | ||
342 | --- a/linux-headers/asm-generic/mman-common.h | ||
343 | +++ b/linux-headers/asm-generic/mman-common.h | ||
344 | @@ -XXX,XX +XXX,XX @@ | ||
345 | |||
346 | #define MADV_COLLAPSE 25 /* Synchronous hugepage collapse */ | ||
347 | |||
348 | +#define MADV_GUARD_INSTALL 102 /* fatal signal on access to range */ | ||
349 | +#define MADV_GUARD_REMOVE 103 /* unguard range */ | ||
350 | + | ||
351 | /* compatibility flags */ | ||
352 | #define MAP_FILE 0 | ||
353 | |||
354 | diff --git a/linux-headers/asm-generic/mman.h b/linux-headers/asm-generic/mman.h | ||
355 | index XXXXXXX..XXXXXXX 100644 | ||
356 | --- a/linux-headers/asm-generic/mman.h | ||
357 | +++ b/linux-headers/asm-generic/mman.h | ||
358 | @@ -XXX,XX +XXX,XX @@ | ||
359 | #define MCL_FUTURE 2 /* lock all future mappings */ | ||
360 | #define MCL_ONFAULT 4 /* lock all pages that are faulted in */ | ||
361 | |||
362 | +#define SHADOW_STACK_SET_TOKEN (1ULL << 0) /* Set up a restore token in the shadow stack */ | ||
363 | +#define SHADOW_STACK_SET_MARKER (1ULL << 1) /* Set up a top of stack marker in the shadow stack */ | ||
364 | + | ||
365 | + | ||
366 | #endif /* __ASM_GENERIC_MMAN_H */ | ||
367 | diff --git a/linux-headers/asm-generic/unistd.h b/linux-headers/asm-generic/unistd.h | ||
368 | index XXXXXXX..XXXXXXX 100644 | ||
369 | --- a/linux-headers/asm-generic/unistd.h | ||
370 | +++ b/linux-headers/asm-generic/unistd.h | ||
371 | @@ -XXX,XX +XXX,XX @@ __SYSCALL(__NR_lsm_list_modules, sys_lsm_list_modules) | ||
372 | #define __NR_mseal 462 | ||
373 | __SYSCALL(__NR_mseal, sys_mseal) | ||
374 | |||
375 | +#define __NR_setxattrat 463 | ||
376 | +__SYSCALL(__NR_setxattrat, sys_setxattrat) | ||
377 | +#define __NR_getxattrat 464 | ||
378 | +__SYSCALL(__NR_getxattrat, sys_getxattrat) | ||
379 | +#define __NR_listxattrat 465 | ||
380 | +__SYSCALL(__NR_listxattrat, sys_listxattrat) | ||
381 | +#define __NR_removexattrat 466 | ||
382 | +__SYSCALL(__NR_removexattrat, sys_removexattrat) | ||
383 | + | ||
384 | #undef __NR_syscalls | ||
385 | -#define __NR_syscalls 463 | ||
386 | +#define __NR_syscalls 467 | ||
387 | |||
388 | /* | ||
389 | * 32 bit systems traditionally used different | ||
390 | diff --git a/linux-headers/asm-loongarch/kvm.h b/linux-headers/asm-loongarch/kvm.h | ||
391 | index XXXXXXX..XXXXXXX 100644 | ||
392 | --- a/linux-headers/asm-loongarch/kvm.h | ||
393 | +++ b/linux-headers/asm-loongarch/kvm.h | ||
394 | @@ -XXX,XX +XXX,XX @@ | ||
395 | |||
396 | #include <linux/types.h> | ||
397 | |||
398 | +#define __KVM_HAVE_IRQ_LINE | ||
399 | + | ||
400 | /* | ||
401 | * KVM LoongArch specific structures and definitions. | ||
402 | * | ||
403 | @@ -XXX,XX +XXX,XX @@ struct kvm_iocsr_entry { | ||
404 | #define KVM_IRQCHIP_NUM_PINS 64 | ||
405 | #define KVM_MAX_CORES 256 | ||
406 | |||
407 | +#define KVM_DEV_LOONGARCH_IPI_GRP_REGS 0x40000001 | ||
408 | + | ||
409 | +#define KVM_DEV_LOONGARCH_EXTIOI_GRP_REGS 0x40000002 | ||
410 | + | ||
411 | +#define KVM_DEV_LOONGARCH_EXTIOI_GRP_SW_STATUS 0x40000003 | ||
412 | +#define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_NUM_CPU 0x0 | ||
413 | +#define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_FEATURE 0x1 | ||
414 | +#define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_STATE 0x2 | ||
415 | + | ||
416 | +#define KVM_DEV_LOONGARCH_EXTIOI_GRP_CTRL 0x40000004 | ||
417 | +#define KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_NUM_CPU 0x0 | ||
418 | +#define KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_FEATURE 0x1 | ||
419 | +#define KVM_DEV_LOONGARCH_EXTIOI_CTRL_LOAD_FINISHED 0x3 | ||
420 | + | ||
421 | +#define KVM_DEV_LOONGARCH_PCH_PIC_GRP_REGS 0x40000005 | ||
422 | +#define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL 0x40000006 | ||
423 | +#define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT 0 | ||
424 | + | ||
425 | #endif /* __UAPI_ASM_LOONGARCH_KVM_H */ | ||
426 | diff --git a/linux-headers/asm-loongarch/unistd_64.h b/linux-headers/asm-loongarch/unistd_64.h | ||
427 | index XXXXXXX..XXXXXXX 100644 | ||
428 | --- a/linux-headers/asm-loongarch/unistd_64.h | ||
429 | +++ b/linux-headers/asm-loongarch/unistd_64.h | ||
430 | @@ -XXX,XX +XXX,XX @@ | ||
431 | #define __NR_lsm_set_self_attr 460 | ||
432 | #define __NR_lsm_list_modules 461 | ||
433 | #define __NR_mseal 462 | ||
434 | +#define __NR_setxattrat 463 | ||
435 | +#define __NR_getxattrat 464 | ||
436 | +#define __NR_listxattrat 465 | ||
437 | +#define __NR_removexattrat 466 | ||
438 | |||
439 | |||
440 | #endif /* _ASM_UNISTD_64_H */ | ||
441 | diff --git a/linux-headers/asm-mips/mman.h b/linux-headers/asm-mips/mman.h | ||
442 | index XXXXXXX..XXXXXXX 100644 | ||
443 | --- a/linux-headers/asm-mips/mman.h | ||
444 | +++ b/linux-headers/asm-mips/mman.h | ||
445 | @@ -XXX,XX +XXX,XX @@ | ||
446 | |||
447 | #define MADV_COLLAPSE 25 /* Synchronous hugepage collapse */ | ||
448 | |||
449 | +#define MADV_GUARD_INSTALL 102 /* fatal signal on access to range */ | ||
450 | +#define MADV_GUARD_REMOVE 103 /* unguard range */ | ||
451 | + | ||
452 | /* compatibility flags */ | ||
453 | #define MAP_FILE 0 | ||
454 | |||
455 | diff --git a/linux-headers/asm-mips/unistd_n32.h b/linux-headers/asm-mips/unistd_n32.h | ||
456 | index XXXXXXX..XXXXXXX 100644 | ||
457 | --- a/linux-headers/asm-mips/unistd_n32.h | ||
458 | +++ b/linux-headers/asm-mips/unistd_n32.h | ||
459 | @@ -XXX,XX +XXX,XX @@ | ||
460 | #define __NR_lsm_set_self_attr (__NR_Linux + 460) | ||
461 | #define __NR_lsm_list_modules (__NR_Linux + 461) | ||
462 | #define __NR_mseal (__NR_Linux + 462) | ||
463 | +#define __NR_setxattrat (__NR_Linux + 463) | ||
464 | +#define __NR_getxattrat (__NR_Linux + 464) | ||
465 | +#define __NR_listxattrat (__NR_Linux + 465) | ||
466 | +#define __NR_removexattrat (__NR_Linux + 466) | ||
467 | |||
468 | #endif /* _ASM_UNISTD_N32_H */ | ||
469 | diff --git a/linux-headers/asm-mips/unistd_n64.h b/linux-headers/asm-mips/unistd_n64.h | ||
470 | index XXXXXXX..XXXXXXX 100644 | ||
471 | --- a/linux-headers/asm-mips/unistd_n64.h | ||
472 | +++ b/linux-headers/asm-mips/unistd_n64.h | ||
473 | @@ -XXX,XX +XXX,XX @@ | ||
474 | #define __NR_lsm_set_self_attr (__NR_Linux + 460) | ||
475 | #define __NR_lsm_list_modules (__NR_Linux + 461) | ||
476 | #define __NR_mseal (__NR_Linux + 462) | ||
477 | +#define __NR_setxattrat (__NR_Linux + 463) | ||
478 | +#define __NR_getxattrat (__NR_Linux + 464) | ||
479 | +#define __NR_listxattrat (__NR_Linux + 465) | ||
480 | +#define __NR_removexattrat (__NR_Linux + 466) | ||
481 | |||
482 | #endif /* _ASM_UNISTD_N64_H */ | ||
483 | diff --git a/linux-headers/asm-mips/unistd_o32.h b/linux-headers/asm-mips/unistd_o32.h | ||
484 | index XXXXXXX..XXXXXXX 100644 | ||
485 | --- a/linux-headers/asm-mips/unistd_o32.h | ||
486 | +++ b/linux-headers/asm-mips/unistd_o32.h | ||
487 | @@ -XXX,XX +XXX,XX @@ | ||
488 | #define __NR_lsm_set_self_attr (__NR_Linux + 460) | ||
489 | #define __NR_lsm_list_modules (__NR_Linux + 461) | ||
490 | #define __NR_mseal (__NR_Linux + 462) | ||
491 | +#define __NR_setxattrat (__NR_Linux + 463) | ||
492 | +#define __NR_getxattrat (__NR_Linux + 464) | ||
493 | +#define __NR_listxattrat (__NR_Linux + 465) | ||
494 | +#define __NR_removexattrat (__NR_Linux + 466) | ||
495 | |||
496 | #endif /* _ASM_UNISTD_O32_H */ | ||
497 | diff --git a/linux-headers/asm-powerpc/unistd_32.h b/linux-headers/asm-powerpc/unistd_32.h | ||
498 | index XXXXXXX..XXXXXXX 100644 | ||
499 | --- a/linux-headers/asm-powerpc/unistd_32.h | ||
500 | +++ b/linux-headers/asm-powerpc/unistd_32.h | ||
501 | @@ -XXX,XX +XXX,XX @@ | ||
502 | #define __NR_lsm_set_self_attr 460 | ||
503 | #define __NR_lsm_list_modules 461 | ||
504 | #define __NR_mseal 462 | ||
505 | +#define __NR_setxattrat 463 | ||
506 | +#define __NR_getxattrat 464 | ||
507 | +#define __NR_listxattrat 465 | ||
508 | +#define __NR_removexattrat 466 | ||
509 | |||
510 | |||
511 | #endif /* _ASM_UNISTD_32_H */ | ||
512 | diff --git a/linux-headers/asm-powerpc/unistd_64.h b/linux-headers/asm-powerpc/unistd_64.h | ||
513 | index XXXXXXX..XXXXXXX 100644 | ||
514 | --- a/linux-headers/asm-powerpc/unistd_64.h | ||
515 | +++ b/linux-headers/asm-powerpc/unistd_64.h | ||
516 | @@ -XXX,XX +XXX,XX @@ | ||
517 | #define __NR_lsm_set_self_attr 460 | ||
518 | #define __NR_lsm_list_modules 461 | ||
519 | #define __NR_mseal 462 | ||
520 | +#define __NR_setxattrat 463 | ||
521 | +#define __NR_getxattrat 464 | ||
522 | +#define __NR_listxattrat 465 | ||
523 | +#define __NR_removexattrat 466 | ||
524 | |||
525 | |||
526 | #endif /* _ASM_UNISTD_64_H */ | ||
527 | diff --git a/linux-headers/asm-riscv/kvm.h b/linux-headers/asm-riscv/kvm.h | ||
528 | index XXXXXXX..XXXXXXX 100644 | ||
529 | --- a/linux-headers/asm-riscv/kvm.h | ||
530 | +++ b/linux-headers/asm-riscv/kvm.h | ||
531 | @@ -XXX,XX +XXX,XX @@ enum KVM_RISCV_ISA_EXT_ID { | ||
532 | KVM_RISCV_ISA_EXT_ZCF, | ||
533 | KVM_RISCV_ISA_EXT_ZCMOP, | ||
534 | KVM_RISCV_ISA_EXT_ZAWRS, | ||
535 | + KVM_RISCV_ISA_EXT_SMNPM, | ||
536 | + KVM_RISCV_ISA_EXT_SSNPM, | ||
537 | + KVM_RISCV_ISA_EXT_SVADE, | ||
538 | + KVM_RISCV_ISA_EXT_SVADU, | ||
539 | KVM_RISCV_ISA_EXT_MAX, | ||
540 | }; | ||
541 | |||
542 | diff --git a/linux-headers/asm-riscv/unistd_32.h b/linux-headers/asm-riscv/unistd_32.h | ||
543 | index XXXXXXX..XXXXXXX 100644 | ||
544 | --- a/linux-headers/asm-riscv/unistd_32.h | ||
545 | +++ b/linux-headers/asm-riscv/unistd_32.h | ||
546 | @@ -XXX,XX +XXX,XX @@ | ||
547 | #define __NR_lsm_set_self_attr 460 | ||
548 | #define __NR_lsm_list_modules 461 | ||
549 | #define __NR_mseal 462 | ||
550 | +#define __NR_setxattrat 463 | ||
551 | +#define __NR_getxattrat 464 | ||
552 | +#define __NR_listxattrat 465 | ||
553 | +#define __NR_removexattrat 466 | ||
554 | |||
555 | |||
556 | #endif /* _ASM_UNISTD_32_H */ | ||
557 | diff --git a/linux-headers/asm-riscv/unistd_64.h b/linux-headers/asm-riscv/unistd_64.h | ||
558 | index XXXXXXX..XXXXXXX 100644 | ||
559 | --- a/linux-headers/asm-riscv/unistd_64.h | ||
560 | +++ b/linux-headers/asm-riscv/unistd_64.h | ||
561 | @@ -XXX,XX +XXX,XX @@ | ||
562 | #define __NR_lsm_set_self_attr 460 | ||
563 | #define __NR_lsm_list_modules 461 | ||
564 | #define __NR_mseal 462 | ||
565 | +#define __NR_setxattrat 463 | ||
566 | +#define __NR_getxattrat 464 | ||
567 | +#define __NR_listxattrat 465 | ||
568 | +#define __NR_removexattrat 466 | ||
569 | |||
570 | |||
571 | #endif /* _ASM_UNISTD_64_H */ | ||
572 | diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h | ||
573 | index XXXXXXX..XXXXXXX 100644 | ||
574 | --- a/linux-headers/asm-s390/kvm.h | ||
575 | +++ b/linux-headers/asm-s390/kvm.h | ||
576 | @@ -XXX,XX +XXX,XX @@ struct kvm_s390_vm_cpu_subfunc { | ||
577 | __u8 kdsa[16]; /* with MSA9 */ | ||
578 | __u8 sortl[32]; /* with STFLE.150 */ | ||
579 | __u8 dfltcc[32]; /* with STFLE.151 */ | ||
580 | - __u8 reserved[1728]; | ||
581 | + __u8 pfcr[16]; /* with STFLE.201 */ | ||
582 | + __u8 reserved[1712]; | ||
583 | }; | ||
584 | |||
585 | #define KVM_S390_VM_CPU_PROCESSOR_UV_FEAT_GUEST 6 | ||
586 | diff --git a/linux-headers/asm-s390/unistd_32.h b/linux-headers/asm-s390/unistd_32.h | ||
587 | index XXXXXXX..XXXXXXX 100644 | ||
588 | --- a/linux-headers/asm-s390/unistd_32.h | ||
589 | +++ b/linux-headers/asm-s390/unistd_32.h | ||
590 | @@ -XXX,XX +XXX,XX @@ | ||
591 | #define __NR_lsm_set_self_attr 460 | ||
592 | #define __NR_lsm_list_modules 461 | ||
593 | #define __NR_mseal 462 | ||
594 | +#define __NR_setxattrat 463 | ||
595 | +#define __NR_getxattrat 464 | ||
596 | +#define __NR_listxattrat 465 | ||
597 | +#define __NR_removexattrat 466 | ||
598 | |||
599 | #endif /* _ASM_S390_UNISTD_32_H */ | ||
600 | diff --git a/linux-headers/asm-s390/unistd_64.h b/linux-headers/asm-s390/unistd_64.h | ||
601 | index XXXXXXX..XXXXXXX 100644 | ||
602 | --- a/linux-headers/asm-s390/unistd_64.h | ||
603 | +++ b/linux-headers/asm-s390/unistd_64.h | ||
604 | @@ -XXX,XX +XXX,XX @@ | ||
605 | #define __NR_lsm_set_self_attr 460 | ||
606 | #define __NR_lsm_list_modules 461 | ||
607 | #define __NR_mseal 462 | ||
608 | +#define __NR_setxattrat 463 | ||
609 | +#define __NR_getxattrat 464 | ||
610 | +#define __NR_listxattrat 465 | ||
611 | +#define __NR_removexattrat 466 | ||
612 | |||
613 | #endif /* _ASM_S390_UNISTD_64_H */ | ||
614 | diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h | ||
615 | index XXXXXXX..XXXXXXX 100644 | ||
616 | --- a/linux-headers/asm-x86/kvm.h | ||
617 | +++ b/linux-headers/asm-x86/kvm.h | ||
618 | @@ -XXX,XX +XXX,XX @@ struct kvm_sync_regs { | ||
619 | #define KVM_X86_QUIRK_FIX_HYPERCALL_INSN (1 << 5) | ||
620 | #define KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS (1 << 6) | ||
621 | #define KVM_X86_QUIRK_SLOT_ZAP_ALL (1 << 7) | ||
622 | +#define KVM_X86_QUIRK_STUFF_FEATURE_MSRS (1 << 8) | ||
623 | |||
624 | #define KVM_STATE_NESTED_FORMAT_VMX 0 | ||
625 | #define KVM_STATE_NESTED_FORMAT_SVM 1 | ||
626 | diff --git a/linux-headers/asm-x86/mman.h b/linux-headers/asm-x86/mman.h | ||
627 | index XXXXXXX..XXXXXXX 100644 | ||
628 | --- a/linux-headers/asm-x86/mman.h | ||
629 | +++ b/linux-headers/asm-x86/mman.h | ||
630 | @@ -XXX,XX +XXX,XX @@ | ||
631 | #define MAP_32BIT 0x40 /* only give out 32bit addresses */ | ||
632 | #define MAP_ABOVE4G 0x80 /* only map above 4GB */ | ||
633 | |||
634 | -/* Flags for map_shadow_stack(2) */ | ||
635 | -#define SHADOW_STACK_SET_TOKEN (1ULL << 0) /* Set up a restore token in the shadow stack */ | ||
636 | - | ||
637 | #include <asm-generic/mman.h> | ||
638 | |||
639 | #endif /* _ASM_X86_MMAN_H */ | ||
640 | diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h | ||
641 | index XXXXXXX..XXXXXXX 100644 | ||
642 | --- a/linux-headers/asm-x86/unistd_32.h | ||
643 | +++ b/linux-headers/asm-x86/unistd_32.h | ||
644 | @@ -XXX,XX +XXX,XX @@ | ||
645 | #define __NR_lsm_set_self_attr 460 | ||
646 | #define __NR_lsm_list_modules 461 | ||
647 | #define __NR_mseal 462 | ||
648 | +#define __NR_setxattrat 463 | ||
649 | +#define __NR_getxattrat 464 | ||
650 | +#define __NR_listxattrat 465 | ||
651 | +#define __NR_removexattrat 466 | ||
652 | |||
653 | |||
654 | #endif /* _ASM_UNISTD_32_H */ | ||
655 | diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h | ||
656 | index XXXXXXX..XXXXXXX 100644 | ||
657 | --- a/linux-headers/asm-x86/unistd_64.h | ||
658 | +++ b/linux-headers/asm-x86/unistd_64.h | ||
659 | @@ -XXX,XX +XXX,XX @@ | ||
660 | #define __NR_lsm_set_self_attr 460 | ||
661 | #define __NR_lsm_list_modules 461 | ||
662 | #define __NR_mseal 462 | ||
663 | +#define __NR_setxattrat 463 | ||
664 | +#define __NR_getxattrat 464 | ||
665 | +#define __NR_listxattrat 465 | ||
666 | +#define __NR_removexattrat 466 | ||
667 | |||
668 | |||
669 | #endif /* _ASM_UNISTD_64_H */ | ||
670 | diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h | ||
671 | index XXXXXXX..XXXXXXX 100644 | ||
672 | --- a/linux-headers/asm-x86/unistd_x32.h | ||
673 | +++ b/linux-headers/asm-x86/unistd_x32.h | ||
674 | @@ -XXX,XX +XXX,XX @@ | ||
675 | #define __NR_lsm_set_self_attr (__X32_SYSCALL_BIT + 460) | ||
676 | #define __NR_lsm_list_modules (__X32_SYSCALL_BIT + 461) | ||
677 | #define __NR_mseal (__X32_SYSCALL_BIT + 462) | ||
678 | +#define __NR_setxattrat (__X32_SYSCALL_BIT + 463) | ||
679 | +#define __NR_getxattrat (__X32_SYSCALL_BIT + 464) | ||
680 | +#define __NR_listxattrat (__X32_SYSCALL_BIT + 465) | ||
681 | +#define __NR_removexattrat (__X32_SYSCALL_BIT + 466) | ||
682 | #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) | ||
683 | #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) | ||
684 | #define __NR_ioctl (__X32_SYSCALL_BIT + 514) | ||
685 | diff --git a/linux-headers/linux/iommufd.h b/linux-headers/linux/iommufd.h | ||
686 | index XXXXXXX..XXXXXXX 100644 | ||
687 | --- a/linux-headers/linux/iommufd.h | ||
688 | +++ b/linux-headers/linux/iommufd.h | ||
689 | @@ -XXX,XX +XXX,XX @@ enum { | ||
690 | IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP = 0x8c, | ||
691 | IOMMUFD_CMD_HWPT_INVALIDATE = 0x8d, | ||
692 | IOMMUFD_CMD_FAULT_QUEUE_ALLOC = 0x8e, | ||
693 | + IOMMUFD_CMD_IOAS_MAP_FILE = 0x8f, | ||
694 | + IOMMUFD_CMD_VIOMMU_ALLOC = 0x90, | ||
695 | + IOMMUFD_CMD_VDEVICE_ALLOC = 0x91, | ||
696 | + IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92, | ||
697 | }; | ||
698 | |||
699 | /** | ||
700 | @@ -XXX,XX +XXX,XX @@ struct iommu_ioas_map { | ||
701 | }; | ||
702 | #define IOMMU_IOAS_MAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP) | ||
703 | |||
704 | +/** | ||
705 | + * struct iommu_ioas_map_file - ioctl(IOMMU_IOAS_MAP_FILE) | ||
706 | + * @size: sizeof(struct iommu_ioas_map_file) | ||
707 | + * @flags: same as for iommu_ioas_map | ||
708 | + * @ioas_id: same as for iommu_ioas_map | ||
709 | + * @fd: the memfd to map | ||
710 | + * @start: byte offset from start of file to map from | ||
711 | + * @length: same as for iommu_ioas_map | ||
712 | + * @iova: same as for iommu_ioas_map | ||
713 | + * | ||
714 | + * Set an IOVA mapping from a memfd file. All other arguments and semantics | ||
715 | + * match those of IOMMU_IOAS_MAP. | ||
716 | + */ | ||
717 | +struct iommu_ioas_map_file { | ||
718 | + __u32 size; | ||
719 | + __u32 flags; | ||
720 | + __u32 ioas_id; | ||
721 | + __s32 fd; | ||
722 | + __aligned_u64 start; | ||
723 | + __aligned_u64 length; | ||
724 | + __aligned_u64 iova; | ||
725 | +}; | ||
726 | +#define IOMMU_IOAS_MAP_FILE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP_FILE) | ||
727 | + | ||
728 | /** | ||
729 | * struct iommu_ioas_copy - ioctl(IOMMU_IOAS_COPY) | ||
730 | * @size: sizeof(struct iommu_ioas_copy) | ||
731 | @@ -XXX,XX +XXX,XX @@ struct iommu_vfio_ioas { | ||
732 | * enforced on device attachment | ||
733 | * @IOMMU_HWPT_FAULT_ID_VALID: The fault_id field of hwpt allocation data is | ||
734 | * valid. | ||
735 | + * @IOMMU_HWPT_ALLOC_PASID: Requests a domain that can be used with PASID. The | ||
736 | + * domain can be attached to any PASID on the device. | ||
737 | + * Any domain attached to the non-PASID part of the | ||
738 | + * device must also be flaged, otherwise attaching a | ||
739 | + * PASID will blocked. | ||
740 | + * If IOMMU does not support PASID it will return | ||
741 | + * error (-EOPNOTSUPP). | ||
742 | */ | ||
743 | enum iommufd_hwpt_alloc_flags { | ||
744 | IOMMU_HWPT_ALLOC_NEST_PARENT = 1 << 0, | ||
745 | IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 1 << 1, | ||
746 | IOMMU_HWPT_FAULT_ID_VALID = 1 << 2, | ||
747 | + IOMMU_HWPT_ALLOC_PASID = 1 << 3, | ||
748 | }; | ||
749 | |||
750 | /** | ||
751 | @@ -XXX,XX +XXX,XX @@ struct iommu_hwpt_vtd_s1 { | ||
752 | __u32 __reserved; | ||
753 | }; | ||
754 | |||
755 | +/** | ||
756 | + * struct iommu_hwpt_arm_smmuv3 - ARM SMMUv3 nested STE | ||
757 | + * (IOMMU_HWPT_DATA_ARM_SMMUV3) | ||
758 | + * | ||
759 | + * @ste: The first two double words of the user space Stream Table Entry for | ||
760 | + * the translation. Must be little-endian. | ||
761 | + * Allowed fields: (Refer to "5.2 Stream Table Entry" in SMMUv3 HW Spec) | ||
762 | + * - word-0: V, Cfg, S1Fmt, S1ContextPtr, S1CDMax | ||
763 | + * - word-1: EATS, S1DSS, S1CIR, S1COR, S1CSH, S1STALLD | ||
764 | + * | ||
765 | + * -EIO will be returned if @ste is not legal or contains any non-allowed field. | ||
766 | + * Cfg can be used to select a S1, Bypass or Abort configuration. A Bypass | ||
767 | + * nested domain will translate the same as the nesting parent. The S1 will | ||
768 | + * install a Context Descriptor Table pointing at userspace memory translated | ||
769 | + * by the nesting parent. | ||
770 | + */ | ||
771 | +struct iommu_hwpt_arm_smmuv3 { | ||
772 | + __aligned_le64 ste[2]; | ||
773 | +}; | ||
774 | + | ||
775 | /** | ||
776 | * enum iommu_hwpt_data_type - IOMMU HWPT Data Type | ||
777 | * @IOMMU_HWPT_DATA_NONE: no data | ||
778 | * @IOMMU_HWPT_DATA_VTD_S1: Intel VT-d stage-1 page table | ||
779 | + * @IOMMU_HWPT_DATA_ARM_SMMUV3: ARM SMMUv3 Context Descriptor Table | ||
780 | */ | ||
781 | enum iommu_hwpt_data_type { | ||
782 | IOMMU_HWPT_DATA_NONE = 0, | ||
783 | IOMMU_HWPT_DATA_VTD_S1 = 1, | ||
784 | + IOMMU_HWPT_DATA_ARM_SMMUV3 = 2, | ||
785 | }; | ||
786 | |||
787 | /** | ||
788 | @@ -XXX,XX +XXX,XX @@ enum iommu_hwpt_data_type { | ||
789 | * @size: sizeof(struct iommu_hwpt_alloc) | ||
790 | * @flags: Combination of enum iommufd_hwpt_alloc_flags | ||
791 | * @dev_id: The device to allocate this HWPT for | ||
792 | - * @pt_id: The IOAS or HWPT to connect this HWPT to | ||
793 | + * @pt_id: The IOAS or HWPT or vIOMMU to connect this HWPT to | ||
794 | * @out_hwpt_id: The ID of the new HWPT | ||
795 | * @__reserved: Must be 0 | ||
796 | * @data_type: One of enum iommu_hwpt_data_type | ||
797 | @@ -XXX,XX +XXX,XX @@ enum iommu_hwpt_data_type { | ||
798 | * IOMMU_HWPT_DATA_NONE. The HWPT can be allocated as a parent HWPT for a | ||
799 | * nesting configuration by passing IOMMU_HWPT_ALLOC_NEST_PARENT via @flags. | ||
800 | * | ||
801 | - * A user-managed nested HWPT will be created from a given parent HWPT via | ||
802 | - * @pt_id, in which the parent HWPT must be allocated previously via the | ||
803 | - * same ioctl from a given IOAS (@pt_id). In this case, the @data_type | ||
804 | - * must be set to a pre-defined type corresponding to an I/O page table | ||
805 | - * type supported by the underlying IOMMU hardware. | ||
806 | + * A user-managed nested HWPT will be created from a given vIOMMU (wrapping a | ||
807 | + * parent HWPT) or a parent HWPT via @pt_id, in which the parent HWPT must be | ||
808 | + * allocated previously via the same ioctl from a given IOAS (@pt_id). In this | ||
809 | + * case, the @data_type must be set to a pre-defined type corresponding to an | ||
810 | + * I/O page table type supported by the underlying IOMMU hardware. The device | ||
811 | + * via @dev_id and the vIOMMU via @pt_id must be associated to the same IOMMU | ||
812 | + * instance. | ||
813 | * | ||
814 | * If the @data_type is set to IOMMU_HWPT_DATA_NONE, @data_len and | ||
815 | * @data_uptr should be zero. Otherwise, both @data_len and @data_uptr | ||
816 | @@ -XXX,XX +XXX,XX @@ struct iommu_hw_info_vtd { | ||
817 | __aligned_u64 ecap_reg; | ||
818 | }; | ||
819 | |||
820 | +/** | ||
821 | + * struct iommu_hw_info_arm_smmuv3 - ARM SMMUv3 hardware information | ||
822 | + * (IOMMU_HW_INFO_TYPE_ARM_SMMUV3) | ||
823 | + * | ||
824 | + * @flags: Must be set to 0 | ||
825 | + * @__reserved: Must be 0 | ||
826 | + * @idr: Implemented features for ARM SMMU Non-secure programming interface | ||
827 | + * @iidr: Information about the implementation and implementer of ARM SMMU, | ||
828 | + * and architecture version supported | ||
829 | + * @aidr: ARM SMMU architecture version | ||
830 | + * | ||
831 | + * For the details of @idr, @iidr and @aidr, please refer to the chapters | ||
832 | + * from 6.3.1 to 6.3.6 in the SMMUv3 Spec. | ||
833 | + * | ||
834 | + * User space should read the underlying ARM SMMUv3 hardware information for | ||
835 | + * the list of supported features. | ||
836 | + * | ||
837 | + * Note that these values reflect the raw HW capability, without any insight if | ||
838 | + * any required kernel driver support is present. Bits may be set indicating the | ||
839 | + * HW has functionality that is lacking kernel software support, such as BTM. If | ||
840 | + * a VMM is using this information to construct emulated copies of these | ||
841 | + * registers it should only forward bits that it knows it can support. | ||
842 | + * | ||
843 | + * In future, presence of required kernel support will be indicated in flags. | ||
844 | + */ | ||
845 | +struct iommu_hw_info_arm_smmuv3 { | ||
846 | + __u32 flags; | ||
847 | + __u32 __reserved; | ||
848 | + __u32 idr[6]; | ||
849 | + __u32 iidr; | ||
850 | + __u32 aidr; | ||
851 | +}; | ||
852 | + | ||
853 | /** | ||
854 | * enum iommu_hw_info_type - IOMMU Hardware Info Types | ||
855 | * @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that do not report hardware | ||
856 | * info | ||
857 | * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type | ||
858 | + * @IOMMU_HW_INFO_TYPE_ARM_SMMUV3: ARM SMMUv3 iommu info type | ||
859 | */ | ||
860 | enum iommu_hw_info_type { | ||
861 | IOMMU_HW_INFO_TYPE_NONE = 0, | ||
862 | IOMMU_HW_INFO_TYPE_INTEL_VTD = 1, | ||
863 | + IOMMU_HW_INFO_TYPE_ARM_SMMUV3 = 2, | ||
864 | }; | ||
865 | |||
866 | /** | ||
867 | @@ -XXX,XX +XXX,XX @@ struct iommu_hwpt_get_dirty_bitmap { | ||
868 | * enum iommu_hwpt_invalidate_data_type - IOMMU HWPT Cache Invalidation | ||
869 | * Data Type | ||
870 | * @IOMMU_HWPT_INVALIDATE_DATA_VTD_S1: Invalidation data for VTD_S1 | ||
871 | + * @IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3: Invalidation data for ARM SMMUv3 | ||
872 | */ | ||
873 | enum iommu_hwpt_invalidate_data_type { | ||
874 | IOMMU_HWPT_INVALIDATE_DATA_VTD_S1 = 0, | ||
875 | + IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3 = 1, | ||
876 | }; | ||
877 | |||
878 | /** | ||
879 | @@ -XXX,XX +XXX,XX @@ struct iommu_hwpt_vtd_s1_invalidate { | ||
880 | __u32 __reserved; | ||
881 | }; | ||
882 | |||
883 | +/** | ||
884 | + * struct iommu_viommu_arm_smmuv3_invalidate - ARM SMMUv3 cahce invalidation | ||
885 | + * (IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3) | ||
886 | + * @cmd: 128-bit cache invalidation command that runs in SMMU CMDQ. | ||
887 | + * Must be little-endian. | ||
888 | + * | ||
889 | + * Supported command list only when passing in a vIOMMU via @hwpt_id: | ||
890 | + * CMDQ_OP_TLBI_NSNH_ALL | ||
891 | + * CMDQ_OP_TLBI_NH_VA | ||
892 | + * CMDQ_OP_TLBI_NH_VAA | ||
893 | + * CMDQ_OP_TLBI_NH_ALL | ||
894 | + * CMDQ_OP_TLBI_NH_ASID | ||
895 | + * CMDQ_OP_ATC_INV | ||
896 | + * CMDQ_OP_CFGI_CD | ||
897 | + * CMDQ_OP_CFGI_CD_ALL | ||
898 | + * | ||
899 | + * -EIO will be returned if the command is not supported. | ||
900 | + */ | ||
901 | +struct iommu_viommu_arm_smmuv3_invalidate { | ||
902 | + __aligned_le64 cmd[2]; | ||
903 | +}; | ||
904 | + | ||
905 | /** | ||
906 | * struct iommu_hwpt_invalidate - ioctl(IOMMU_HWPT_INVALIDATE) | ||
907 | * @size: sizeof(struct iommu_hwpt_invalidate) | ||
908 | - * @hwpt_id: ID of a nested HWPT for cache invalidation | ||
909 | + * @hwpt_id: ID of a nested HWPT or a vIOMMU, for cache invalidation | ||
910 | * @data_uptr: User pointer to an array of driver-specific cache invalidation | ||
911 | * data. | ||
912 | * @data_type: One of enum iommu_hwpt_invalidate_data_type, defining the data | ||
913 | @@ -XXX,XX +XXX,XX @@ struct iommu_hwpt_vtd_s1_invalidate { | ||
914 | * Output the number of requests successfully handled by kernel. | ||
915 | * @__reserved: Must be 0. | ||
916 | * | ||
917 | - * Invalidate the iommu cache for user-managed page table. Modifications on a | ||
918 | - * user-managed page table should be followed by this operation to sync cache. | ||
919 | + * Invalidate iommu cache for user-managed page table or vIOMMU. Modifications | ||
920 | + * on a user-managed page table should be followed by this operation, if a HWPT | ||
921 | + * is passed in via @hwpt_id. Other caches, such as device cache or descriptor | ||
922 | + * cache can be flushed if a vIOMMU is passed in via the @hwpt_id field. | ||
923 | + * | ||
924 | * Each ioctl can support one or more cache invalidation requests in the array | ||
925 | * that has a total size of @entry_len * @entry_num. | ||
926 | * | ||
927 | @@ -XXX,XX +XXX,XX @@ struct iommu_fault_alloc { | ||
928 | __u32 out_fault_fd; | ||
929 | }; | ||
930 | #define IOMMU_FAULT_QUEUE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_FAULT_QUEUE_ALLOC) | ||
931 | + | ||
932 | +/** | ||
933 | + * enum iommu_viommu_type - Virtual IOMMU Type | ||
934 | + * @IOMMU_VIOMMU_TYPE_DEFAULT: Reserved for future use | ||
935 | + * @IOMMU_VIOMMU_TYPE_ARM_SMMUV3: ARM SMMUv3 driver specific type | ||
936 | + */ | ||
937 | +enum iommu_viommu_type { | ||
938 | + IOMMU_VIOMMU_TYPE_DEFAULT = 0, | ||
939 | + IOMMU_VIOMMU_TYPE_ARM_SMMUV3 = 1, | ||
940 | +}; | ||
941 | + | ||
942 | +/** | ||
943 | + * struct iommu_viommu_alloc - ioctl(IOMMU_VIOMMU_ALLOC) | ||
944 | + * @size: sizeof(struct iommu_viommu_alloc) | ||
945 | + * @flags: Must be 0 | ||
946 | + * @type: Type of the virtual IOMMU. Must be defined in enum iommu_viommu_type | ||
947 | + * @dev_id: The device's physical IOMMU will be used to back the virtual IOMMU | ||
948 | + * @hwpt_id: ID of a nesting parent HWPT to associate to | ||
949 | + * @out_viommu_id: Output virtual IOMMU ID for the allocated object | ||
950 | + * | ||
951 | + * Allocate a virtual IOMMU object, representing the underlying physical IOMMU's | ||
952 | + * virtualization support that is a security-isolated slice of the real IOMMU HW | ||
953 | + * that is unique to a specific VM. Operations global to the IOMMU are connected | ||
954 | + * to the vIOMMU, such as: | ||
955 | + * - Security namespace for guest owned ID, e.g. guest-controlled cache tags | ||
956 | + * - Non-device-affiliated event reporting, e.g. invalidation queue errors | ||
957 | + * - Access to a sharable nesting parent pagetable across physical IOMMUs | ||
958 | + * - Virtualization of various platforms IDs, e.g. RIDs and others | ||
959 | + * - Delivery of paravirtualized invalidation | ||
960 | + * - Direct assigned invalidation queues | ||
961 | + * - Direct assigned interrupts | ||
962 | + */ | ||
963 | +struct iommu_viommu_alloc { | ||
964 | + __u32 size; | ||
965 | + __u32 flags; | ||
966 | + __u32 type; | ||
967 | + __u32 dev_id; | ||
968 | + __u32 hwpt_id; | ||
969 | + __u32 out_viommu_id; | ||
970 | +}; | ||
971 | +#define IOMMU_VIOMMU_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VIOMMU_ALLOC) | ||
972 | + | ||
973 | +/** | ||
974 | + * struct iommu_vdevice_alloc - ioctl(IOMMU_VDEVICE_ALLOC) | ||
975 | + * @size: sizeof(struct iommu_vdevice_alloc) | ||
976 | + * @viommu_id: vIOMMU ID to associate with the virtual device | ||
977 | + * @dev_id: The physical device to allocate a virtual instance on the vIOMMU | ||
978 | + * @out_vdevice_id: Object handle for the vDevice. Pass to IOMMU_DESTORY | ||
979 | + * @virt_id: Virtual device ID per vIOMMU, e.g. vSID of ARM SMMUv3, vDeviceID | ||
980 | + * of AMD IOMMU, and vRID of a nested Intel VT-d to a Context Table | ||
981 | + * | ||
982 | + * Allocate a virtual device instance (for a physical device) against a vIOMMU. | ||
983 | + * This instance holds the device's information (related to its vIOMMU) in a VM. | ||
984 | + */ | ||
985 | +struct iommu_vdevice_alloc { | ||
986 | + __u32 size; | ||
987 | + __u32 viommu_id; | ||
988 | + __u32 dev_id; | ||
989 | + __u32 out_vdevice_id; | ||
990 | + __aligned_u64 virt_id; | ||
991 | +}; | ||
992 | +#define IOMMU_VDEVICE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VDEVICE_ALLOC) | ||
993 | + | ||
994 | +/** | ||
995 | + * struct iommu_ioas_change_process - ioctl(VFIO_IOAS_CHANGE_PROCESS) | ||
996 | + * @size: sizeof(struct iommu_ioas_change_process) | ||
997 | + * @__reserved: Must be 0 | ||
998 | + * | ||
999 | + * This transfers pinned memory counts for every memory map in every IOAS | ||
1000 | + * in the context to the current process. This only supports maps created | ||
1001 | + * with IOMMU_IOAS_MAP_FILE, and returns EINVAL if other maps are present. | ||
1002 | + * If the ioctl returns a failure status, then nothing is changed. | ||
1003 | + * | ||
1004 | + * This API is useful for transferring operation of a device from one process | ||
1005 | + * to another, such as during userland live update. | ||
1006 | + */ | ||
1007 | +struct iommu_ioas_change_process { | ||
1008 | + __u32 size; | ||
1009 | + __u32 __reserved; | ||
1010 | +}; | ||
1011 | + | ||
1012 | +#define IOMMU_IOAS_CHANGE_PROCESS \ | ||
1013 | + _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_CHANGE_PROCESS) | ||
1014 | + | ||
1015 | #endif | ||
1016 | diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h | ||
1017 | index XXXXXXX..XXXXXXX 100644 | ||
1018 | --- a/linux-headers/linux/kvm.h | ||
1019 | +++ b/linux-headers/linux/kvm.h | ||
1020 | @@ -XXX,XX +XXX,XX @@ enum kvm_device_type { | ||
1021 | #define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME | ||
1022 | KVM_DEV_TYPE_RISCV_AIA, | ||
1023 | #define KVM_DEV_TYPE_RISCV_AIA KVM_DEV_TYPE_RISCV_AIA | ||
1024 | + KVM_DEV_TYPE_LOONGARCH_IPI, | ||
1025 | +#define KVM_DEV_TYPE_LOONGARCH_IPI KVM_DEV_TYPE_LOONGARCH_IPI | ||
1026 | + KVM_DEV_TYPE_LOONGARCH_EIOINTC, | ||
1027 | +#define KVM_DEV_TYPE_LOONGARCH_EIOINTC KVM_DEV_TYPE_LOONGARCH_EIOINTC | ||
1028 | + KVM_DEV_TYPE_LOONGARCH_PCHPIC, | ||
1029 | +#define KVM_DEV_TYPE_LOONGARCH_PCHPIC KVM_DEV_TYPE_LOONGARCH_PCHPIC | ||
1030 | + | ||
1031 | KVM_DEV_TYPE_MAX, | ||
1032 | + | ||
1033 | }; | ||
1034 | |||
1035 | struct kvm_vfio_spapr_tce { | ||
1036 | diff --git a/linux-headers/linux/psci.h b/linux-headers/linux/psci.h | ||
1037 | index XXXXXXX..XXXXXXX 100644 | ||
1038 | --- a/linux-headers/linux/psci.h | ||
1039 | +++ b/linux-headers/linux/psci.h | ||
1040 | @@ -XXX,XX +XXX,XX @@ | ||
1041 | #define PSCI_1_1_FN_SYSTEM_RESET2 PSCI_0_2_FN(18) | ||
1042 | #define PSCI_1_1_FN_MEM_PROTECT PSCI_0_2_FN(19) | ||
1043 | #define PSCI_1_1_FN_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN(20) | ||
1044 | +#define PSCI_1_3_FN_SYSTEM_OFF2 PSCI_0_2_FN(21) | ||
1045 | |||
1046 | #define PSCI_1_0_FN64_CPU_DEFAULT_SUSPEND PSCI_0_2_FN64(12) | ||
1047 | #define PSCI_1_0_FN64_NODE_HW_STATE PSCI_0_2_FN64(13) | ||
1048 | @@ -XXX,XX +XXX,XX @@ | ||
1049 | |||
1050 | #define PSCI_1_1_FN64_SYSTEM_RESET2 PSCI_0_2_FN64(18) | ||
1051 | #define PSCI_1_1_FN64_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN64(20) | ||
1052 | +#define PSCI_1_3_FN64_SYSTEM_OFF2 PSCI_0_2_FN64(21) | ||
1053 | |||
1054 | /* PSCI v0.2 power state encoding for CPU_SUSPEND function */ | ||
1055 | #define PSCI_0_2_POWER_STATE_ID_MASK 0xffff | ||
1056 | @@ -XXX,XX +XXX,XX @@ | ||
1057 | #define PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET 0 | ||
1058 | #define PSCI_1_1_RESET_TYPE_VENDOR_START 0x80000000U | ||
1059 | |||
1060 | +/* PSCI v1.3 hibernate type for SYSTEM_OFF2 */ | ||
1061 | +#define PSCI_1_3_OFF_TYPE_HIBERNATE_OFF BIT(0) | ||
1062 | + | ||
1063 | /* PSCI version decoding (independent of PSCI version) */ | ||
1064 | #define PSCI_VERSION_MAJOR_SHIFT 16 | ||
1065 | #define PSCI_VERSION_MINOR_MASK \ | ||
1066 | diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h | ||
1067 | index XXXXXXX..XXXXXXX 100644 | ||
1068 | --- a/linux-headers/linux/vfio.h | ||
1069 | +++ b/linux-headers/linux/vfio.h | ||
1070 | @@ -XXX,XX +XXX,XX @@ | ||
1071 | #define VFIO_EEH 5 | ||
1072 | |||
1073 | /* Two-stage IOMMU */ | ||
1074 | -#define VFIO_TYPE1_NESTING_IOMMU 6 /* Implies v2 */ | ||
1075 | +#define __VFIO_RESERVED_TYPE1_NESTING_IOMMU 6 /* Implies v2 */ | ||
1076 | |||
1077 | #define VFIO_SPAPR_TCE_v2_IOMMU 7 | ||
1078 | |||
1079 | -- | ||
1080 | 2.43.5 | diff view generated by jsdifflib |
1 | The Concurrent-functions facility introduces the new instruction | 1 | The Concurrent-functions facility introduces the new instruction |
---|---|---|---|
2 | Perform Functions with Concurrent Results (PFCR) with few subfunctions. | 2 | Perform Functions with Concurrent Results (PFCR) with few subfunctions. |
3 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
5 | --- | 5 | --- |
6 | linux-headers/asm-s390/kvm.h | 3 ++- | ||
7 | target/s390x/cpu_features.c | 2 ++ | 6 | target/s390x/cpu_features.c | 2 ++ |
8 | target/s390x/cpu_features.h | 1 + | 7 | target/s390x/cpu_features.h | 1 + |
9 | target/s390x/cpu_features_def.h.inc | 8 ++++++++ | 8 | target/s390x/cpu_features_def.h.inc | 8 ++++++++ |
10 | target/s390x/cpu_models.c | 5 +++++ | 9 | target/s390x/cpu_models.c | 5 +++++ |
11 | target/s390x/gen-features.c | 13 +++++++++++++ | 10 | target/s390x/gen-features.c | 13 +++++++++++++ |
12 | target/s390x/kvm/kvm.c | 6 ++++++ | 11 | target/s390x/kvm/kvm.c | 6 ++++++ |
13 | 7 files changed, 37 insertions(+), 1 deletion(-) | 12 | 6 files changed, 35 insertions(+) |
14 | 13 | ||
15 | diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h | ||
16 | index XXXXXXX..XXXXXXX 100644 | ||
17 | --- a/linux-headers/asm-s390/kvm.h | ||
18 | +++ b/linux-headers/asm-s390/kvm.h | ||
19 | @@ -XXX,XX +XXX,XX @@ struct kvm_s390_vm_cpu_subfunc { | ||
20 | __u8 kdsa[16]; /* with MSA9 */ | ||
21 | __u8 sortl[32]; /* with STFLE.150 */ | ||
22 | __u8 dfltcc[32]; /* with STFLE.151 */ | ||
23 | - __u8 reserved[1728]; | ||
24 | + __u8 pfcr[16]; /* with STFLE.201 */ | ||
25 | + __u8 reserved[1712]; | ||
26 | }; | ||
27 | |||
28 | #define KVM_S390_VM_CPU_PROCESSOR_UV_FEAT_GUEST 6 | ||
29 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c | 14 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c |
30 | index XXXXXXX..XXXXXXX 100644 | 15 | index XXXXXXX..XXXXXXX 100644 |
31 | --- a/target/s390x/cpu_features.c | 16 | --- a/target/s390x/cpu_features.c |
32 | +++ b/target/s390x/cpu_features.c | 17 | +++ b/target/s390x/cpu_features.c |
33 | @@ -XXX,XX +XXX,XX @@ void s390_fill_feat_block(const S390FeatBitmap features, S390FeatType type, | 18 | @@ -XXX,XX +XXX,XX @@ void s390_fill_feat_block(const S390FeatBitmap features, S390FeatType type, |
... | ... | diff view generated by jsdifflib |
1 | The Vector Enhancements facility 3 introduces new instructions and | 1 | The Vector Enhancements facility 3 introduces new instructions and |
---|---|---|---|
2 | extends support for doubleword/quadword elements. | 2 | extends support for doubleword/quadword elements. |
3 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
5 | --- | 5 | --- |
6 | target/s390x/cpu_features_def.h.inc | 1 + | 6 | target/s390x/cpu_features_def.h.inc | 1 + |
7 | target/s390x/cpu_models.c | 2 ++ | 7 | target/s390x/cpu_models.c | 2 ++ |
8 | 2 files changed, 3 insertions(+) | 8 | 2 files changed, 3 insertions(+) |
9 | 9 | ||
10 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 10 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
11 | index XXXXXXX..XXXXXXX 100644 | 11 | index XXXXXXX..XXXXXXX 100644 |
12 | --- a/target/s390x/cpu_features_def.h.inc | 12 | --- a/target/s390x/cpu_features_def.h.inc |
13 | +++ b/target/s390x/cpu_features_def.h.inc | 13 | +++ b/target/s390x/cpu_features_def.h.inc |
14 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility") | 14 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility") |
15 | DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") | 15 | DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") |
16 | DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility") | 16 | DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility") |
17 | DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1") | 17 | DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1") |
18 | +DEF_FEAT(VECTOR_ENH3, "vxeh3", STFL, 198, "Vector Enhancements facility 3") | 18 | +DEF_FEAT(VECTOR_ENH3, "vxeh3", STFL, 198, "Vector Enhancements facility 3") |
19 | DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility") | 19 | DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility") |
20 | 20 | ||
21 | /* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ | 21 | /* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ |
22 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c | 22 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c |
23 | index XXXXXXX..XXXXXXX 100644 | 23 | index XXXXXXX..XXXXXXX 100644 |
24 | --- a/target/s390x/cpu_models.c | 24 | --- a/target/s390x/cpu_models.c |
25 | +++ b/target/s390x/cpu_models.c | 25 | +++ b/target/s390x/cpu_models.c |
26 | @@ -XXX,XX +XXX,XX @@ static void check_consistency(const S390CPUModel *model) | 26 | @@ -XXX,XX +XXX,XX @@ static void check_consistency(const S390CPUModel *model) |
27 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL }, | 27 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL }, |
28 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH }, | 28 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH }, |
29 | { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR }, | 29 | { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR }, |
30 | + { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH }, | 30 | + { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH }, |
31 | + { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 }, | 31 | + { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 }, |
32 | { S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 }, | 32 | { S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 }, |
33 | { S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP }, | 33 | { S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP }, |
34 | { S390_FEAT_CMM_NT, S390_FEAT_CMM }, | 34 | { S390_FEAT_CMM_NT, S390_FEAT_CMM }, |
35 | -- | 35 | -- |
36 | 2.43.5 | 36 | 2.43.5 | diff view generated by jsdifflib |
1 | This facility introduces few new instructions. | 1 | This facility introduces few new instructions. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
4 | --- | 4 | --- |
5 | target/s390x/cpu_features_def.h.inc | 1 + | 5 | target/s390x/cpu_features_def.h.inc | 1 + |
6 | 1 file changed, 1 insertion(+) | 6 | 1 file changed, 1 insertion(+) |
7 | 7 | ||
8 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 8 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
9 | index XXXXXXX..XXXXXXX 100644 | 9 | index XXXXXXX..XXXXXXX 100644 |
10 | --- a/target/s390x/cpu_features_def.h.inc | 10 | --- a/target/s390x/cpu_features_def.h.inc |
11 | +++ b/target/s390x/cpu_features_def.h.inc | 11 | +++ b/target/s390x/cpu_features_def.h.inc |
12 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(EDAT_2, "edat2", STFL, 78, "Enhanced-DAT facility 2") | 12 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(EDAT_2, "edat2", STFL, 78, "Enhanced-DAT facility 2") |
13 | DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packed-conversion facility") | 13 | DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packed-conversion facility") |
14 | DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed") | 14 | DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed") |
15 | DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking") | 15 | DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking") |
16 | +DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4") | 16 | +DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4") |
17 | DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)") | 17 | DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)") |
18 | DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility") | 18 | DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility") |
19 | DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility") | 19 | DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility") |
20 | -- | 20 | -- |
21 | 2.43.5 | 21 | 2.43.5 | diff view generated by jsdifflib |
1 | This facility introduces new capabilities for the signed-pack-decimal | 1 | This facility introduces new capabilities for the signed-pack-decimal |
---|---|---|---|
2 | format. | 2 | format. |
3 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
5 | --- | 5 | --- |
6 | target/s390x/cpu_features_def.h.inc | 1 + | 6 | target/s390x/cpu_features_def.h.inc | 1 + |
7 | target/s390x/cpu_models.c | 1 + | 7 | target/s390x/cpu_models.c | 1 + |
8 | 2 files changed, 2 insertions(+) | 8 | 2 files changed, 2 insertions(+) |
9 | 9 | ||
10 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 10 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
11 | index XXXXXXX..XXXXXXX 100644 | 11 | index XXXXXXX..XXXXXXX 100644 |
12 | --- a/target/s390x/cpu_features_def.h.inc | 12 | --- a/target/s390x/cpu_features_def.h.inc |
13 | +++ b/target/s390x/cpu_features_def.h.inc | 13 | +++ b/target/s390x/cpu_features_def.h.inc |
14 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") | 14 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") |
15 | DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility") | 15 | DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility") |
16 | DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1") | 16 | DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1") |
17 | DEF_FEAT(VECTOR_ENH3, "vxeh3", STFL, 198, "Vector Enhancements facility 3") | 17 | DEF_FEAT(VECTOR_ENH3, "vxeh3", STFL, 198, "Vector Enhancements facility 3") |
18 | +DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH3, "vxpdeh3", STFL, 199, "Vector-Packed-Decimal-Enhancement facility 3") | 18 | +DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH3, "vxpdeh3", STFL, 199, "Vector-Packed-Decimal-Enhancement facility 3") |
19 | DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility") | 19 | DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility") |
20 | 20 | ||
21 | /* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ | 21 | /* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ |
22 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c | 22 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c |
23 | index XXXXXXX..XXXXXXX 100644 | 23 | index XXXXXXX..XXXXXXX 100644 |
24 | --- a/target/s390x/cpu_models.c | 24 | --- a/target/s390x/cpu_models.c |
25 | +++ b/target/s390x/cpu_models.c | 25 | +++ b/target/s390x/cpu_models.c |
26 | @@ -XXX,XX +XXX,XX @@ static void check_consistency(const S390CPUModel *model) | 26 | @@ -XXX,XX +XXX,XX @@ static void check_consistency(const S390CPUModel *model) |
27 | { S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR }, | 27 | { S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR }, |
28 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL }, | 28 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL }, |
29 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH }, | 29 | { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH }, |
30 | + { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2 }, | 30 | + { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2 }, |
31 | { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR }, | 31 | { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR }, |
32 | { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH }, | 32 | { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH }, |
33 | { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 }, | 33 | { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 }, |
34 | -- | 34 | -- |
35 | 2.43.5 | 35 | 2.43.5 | diff view generated by jsdifflib |
1 | This facility indicates reduced support for noncontrained | 1 | This facility indicates reduced support for noncontrained |
---|---|---|---|
2 | transactional-execution. | 2 | transactional-execution. |
3 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
5 | --- | 5 | --- |
6 | target/s390x/cpu_features_def.h.inc | 1 + | 6 | target/s390x/cpu_features_def.h.inc | 1 + |
7 | target/s390x/cpu_models.c | 1 + | 7 | target/s390x/cpu_models.c | 1 + |
8 | 2 files changed, 2 insertions(+) | 8 | 2 files changed, 2 insertions(+) |
9 | 9 | ||
10 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 10 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
11 | index XXXXXXX..XXXXXXX 100644 | 11 | index XXXXXXX..XXXXXXX 100644 |
12 | --- a/target/s390x/cpu_features_def.h.inc | 12 | --- a/target/s390x/cpu_features_def.h.inc |
13 | +++ b/target/s390x/cpu_features_def.h.inc | 13 | +++ b/target/s390x/cpu_features_def.h.inc |
14 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(MSA_EXT_9, "msa9-base", STFL, 155, "Message-security-assist-extension-9 | 14 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(MSA_EXT_9, "msa9-base", STFL, 155, "Message-security-assist-extension-9 |
15 | DEF_FEAT(ETOKEN, "etoken", STFL, 156, "Etoken facility") | 15 | DEF_FEAT(ETOKEN, "etoken", STFL, 156, "Etoken facility") |
16 | DEF_FEAT(UNPACK, "unpack", STFL, 161, "Unpack facility") | 16 | DEF_FEAT(UNPACK, "unpack", STFL, 161, "Unpack facility") |
17 | DEF_FEAT(NNPA, "nnpa", STFL, 165, "NNPA facility") | 17 | DEF_FEAT(NNPA, "nnpa", STFL, 165, "NNPA facility") |
18 | +DEF_FEAT(INEFF_NC_TX, "ineff_nc_tx", STFL, 170, "Ineffective-nonconstrained-transaction facility") | 18 | +DEF_FEAT(INEFF_NC_TX, "ineff_nc_tx", STFL, 170, "Ineffective-nonconstrained-transaction facility") |
19 | DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH2, "vxpdeh2", STFL, 192, "Vector-Packed-Decimal-Enhancement facility 2") | 19 | DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH2, "vxpdeh2", STFL, 192, "Vector-Packed-Decimal-Enhancement facility 2") |
20 | DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility") | 20 | DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility") |
21 | DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") | 21 | DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") |
22 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c | 22 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c |
23 | index XXXXXXX..XXXXXXX 100644 | 23 | index XXXXXXX..XXXXXXX 100644 |
24 | --- a/target/s390x/cpu_models.c | 24 | --- a/target/s390x/cpu_models.c |
25 | +++ b/target/s390x/cpu_models.c | 25 | +++ b/target/s390x/cpu_models.c |
26 | @@ -XXX,XX +XXX,XX @@ static void check_consistency(const S390CPUModel *model) | 26 | @@ -XXX,XX +XXX,XX @@ static void check_consistency(const S390CPUModel *model) |
27 | { S390_FEAT_PFCR_CSDSTG, S390_FEAT_CCF_BASE }, | 27 | { S390_FEAT_PFCR_CSDSTG, S390_FEAT_CCF_BASE }, |
28 | { S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE }, | 28 | { S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE }, |
29 | { S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE }, | 29 | { S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE }, |
30 | + { S390_FEAT_INEFF_NC_TX, S390_FEAT_TRANSACTIONAL_EXE }, | 30 | + { S390_FEAT_INEFF_NC_TX, S390_FEAT_TRANSACTIONAL_EXE }, |
31 | }; | 31 | }; |
32 | int i; | 32 | int i; |
33 | 33 | ||
34 | -- | 34 | -- |
35 | 2.43.5 | 35 | 2.43.5 | diff view generated by jsdifflib |
1 | The sequential instruction fetching facility provides few guarantees, | 1 | The sequential instruction fetching facility provides few guarantees, |
---|---|---|---|
2 | for example, to avoid stop machine calls on enabling/disabling kprobes. | 2 | for example, to avoid stop machine calls on enabling/disabling kprobes. |
3 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
5 | --- | 5 | --- |
6 | target/s390x/cpu_features_def.h.inc | 1 + | 6 | target/s390x/cpu_features_def.h.inc | 1 + |
7 | 1 file changed, 1 insertion(+) | 7 | 1 file changed, 1 insertion(+) |
8 | 8 | ||
9 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 9 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
10 | index XXXXXXX..XXXXXXX 100644 | 10 | index XXXXXXX..XXXXXXX 100644 |
11 | --- a/target/s390x/cpu_features_def.h.inc | 11 | --- a/target/s390x/cpu_features_def.h.inc |
12 | +++ b/target/s390x/cpu_features_def.h.inc | 12 | +++ b/target/s390x/cpu_features_def.h.inc |
13 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packe | 13 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packe |
14 | DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed") | 14 | DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed") |
15 | DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking") | 15 | DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking") |
16 | DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4") | 16 | DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4") |
17 | +DEF_FEAT(SIF, "sif", STFL, 85, "Sequential-instruction-fetching facility") | 17 | +DEF_FEAT(SIF, "sif", STFL, 85, "Sequential-instruction-fetching facility") |
18 | DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)") | 18 | DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)") |
19 | DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility") | 19 | DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility") |
20 | DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility") | 20 | DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility") |
21 | -- | 21 | -- |
22 | 2.43.5 | 22 | 2.43.5 | diff view generated by jsdifflib |
1 | The PLO functions 0, 4, 8, 12, 16, and 20 use 32-bit registers | 1 | The PLO functions 0, 4, 8, 12, 16, and 20 use 32-bit registers |
---|---|---|---|
2 | values. The plo-*gr variants use 64-bit instead and, thus, correct | 2 | values. The plo-*gr variants use 64-bit instead and, thus, correct |
3 | the wording. | 3 | the wording. |
4 | 4 | ||
5 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 5 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
6 | Reviewed-by: Janosch Frank <frankja@linux.ibm.com> | 6 | Reviewed-by: Janosch Frank <frankja@linux.ibm.com> |
7 | --- | 7 | --- |
8 | target/s390x/cpu_features_def.h.inc | 12 ++++++------ | 8 | target/s390x/cpu_features_def.h.inc | 12 ++++++------ |
9 | 1 file changed, 6 insertions(+), 6 deletions(-) | 9 | 1 file changed, 6 insertions(+), 6 deletions(-) |
10 | 10 | ||
11 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 11 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
12 | index XXXXXXX..XXXXXXX 100644 | 12 | index XXXXXXX..XXXXXXX 100644 |
13 | --- a/target/s390x/cpu_features_def.h.inc | 13 | --- a/target/s390x/cpu_features_def.h.inc |
14 | +++ b/target/s390x/cpu_features_def.h.inc | 14 | +++ b/target/s390x/cpu_features_def.h.inc |
15 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(AP, "ap", MISC, 0, "AP instructions installed") | 15 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(AP, "ap", MISC, 0, "AP instructions installed") |
16 | /* Features exposed via the PLO instruction. */ | 16 | /* Features exposed via the PLO instruction. */ |
17 | DEF_FEAT(PLO_CL, "plo-cl", PLO, 0, "PLO Compare and load (32 bit in general registers)") | 17 | DEF_FEAT(PLO_CL, "plo-cl", PLO, 0, "PLO Compare and load (32 bit in general registers)") |
18 | DEF_FEAT(PLO_CLG, "plo-clg", PLO, 1, "PLO Compare and load (64 bit in parameter list)") | 18 | DEF_FEAT(PLO_CLG, "plo-clg", PLO, 1, "PLO Compare and load (64 bit in parameter list)") |
19 | -DEF_FEAT(PLO_CLGR, "plo-clgr", PLO, 2, "PLO Compare and load (32 bit in general registers)") | 19 | -DEF_FEAT(PLO_CLGR, "plo-clgr", PLO, 2, "PLO Compare and load (32 bit in general registers)") |
20 | +DEF_FEAT(PLO_CLGR, "plo-clgr", PLO, 2, "PLO Compare and load (64 bit in general registers)") | 20 | +DEF_FEAT(PLO_CLGR, "plo-clgr", PLO, 2, "PLO Compare and load (64 bit in general registers)") |
21 | DEF_FEAT(PLO_CLX, "plo-clx", PLO, 3, "PLO Compare and load (128 bit in parameter list)") | 21 | DEF_FEAT(PLO_CLX, "plo-clx", PLO, 3, "PLO Compare and load (128 bit in parameter list)") |
22 | DEF_FEAT(PLO_CS, "plo-cs", PLO, 4, "PLO Compare and swap (32 bit in general registers)") | 22 | DEF_FEAT(PLO_CS, "plo-cs", PLO, 4, "PLO Compare and swap (32 bit in general registers)") |
23 | DEF_FEAT(PLO_CSG, "plo-csg", PLO, 5, "PLO Compare and swap (64 bit in parameter list)") | 23 | DEF_FEAT(PLO_CSG, "plo-csg", PLO, 5, "PLO Compare and swap (64 bit in parameter list)") |
24 | -DEF_FEAT(PLO_CSGR, "plo-csgr", PLO, 6, "PLO Compare and swap (32 bit in general registers)") | 24 | -DEF_FEAT(PLO_CSGR, "plo-csgr", PLO, 6, "PLO Compare and swap (32 bit in general registers)") |
25 | +DEF_FEAT(PLO_CSGR, "plo-csgr", PLO, 6, "PLO Compare and swap (64 bit in general registers)") | 25 | +DEF_FEAT(PLO_CSGR, "plo-csgr", PLO, 6, "PLO Compare and swap (64 bit in general registers)") |
26 | DEF_FEAT(PLO_CSX, "plo-csx", PLO, 7, "PLO Compare and swap (128 bit in parameter list)") | 26 | DEF_FEAT(PLO_CSX, "plo-csx", PLO, 7, "PLO Compare and swap (128 bit in parameter list)") |
27 | DEF_FEAT(PLO_DCS, "plo-dcs", PLO, 8, "PLO Double compare and swap (32 bit in general registers)") | 27 | DEF_FEAT(PLO_DCS, "plo-dcs", PLO, 8, "PLO Double compare and swap (32 bit in general registers)") |
28 | DEF_FEAT(PLO_DCSG, "plo-dcsg", PLO, 9, "PLO Double compare and swap (64 bit in parameter list)") | 28 | DEF_FEAT(PLO_DCSG, "plo-dcsg", PLO, 9, "PLO Double compare and swap (64 bit in parameter list)") |
29 | -DEF_FEAT(PLO_DCSGR, "plo-dcsgr", PLO, 10, "PLO Double compare and swap (32 bit in general registers)") | 29 | -DEF_FEAT(PLO_DCSGR, "plo-dcsgr", PLO, 10, "PLO Double compare and swap (32 bit in general registers)") |
30 | +DEF_FEAT(PLO_DCSGR, "plo-dcsgr", PLO, 10, "PLO Double compare and swap (64 bit in general registers)") | 30 | +DEF_FEAT(PLO_DCSGR, "plo-dcsgr", PLO, 10, "PLO Double compare and swap (64 bit in general registers)") |
31 | DEF_FEAT(PLO_DCSX, "plo-dcsx", PLO, 11, "PLO Double compare and swap (128 bit in parameter list)") | 31 | DEF_FEAT(PLO_DCSX, "plo-dcsx", PLO, 11, "PLO Double compare and swap (128 bit in parameter list)") |
32 | DEF_FEAT(PLO_CSST, "plo-csst", PLO, 12, "PLO Compare and swap and store (32 bit in general registers)") | 32 | DEF_FEAT(PLO_CSST, "plo-csst", PLO, 12, "PLO Compare and swap and store (32 bit in general registers)") |
33 | DEF_FEAT(PLO_CSSTG, "plo-csstg", PLO, 13, "PLO Compare and swap and store (64 bit in parameter list)") | 33 | DEF_FEAT(PLO_CSSTG, "plo-csstg", PLO, 13, "PLO Compare and swap and store (64 bit in parameter list)") |
34 | -DEF_FEAT(PLO_CSSTGR, "plo-csstgr", PLO, 14, "PLO Compare and swap and store (32 bit in general registers)") | 34 | -DEF_FEAT(PLO_CSSTGR, "plo-csstgr", PLO, 14, "PLO Compare and swap and store (32 bit in general registers)") |
35 | +DEF_FEAT(PLO_CSSTGR, "plo-csstgr", PLO, 14, "PLO Compare and swap and store (64 bit in general registers)") | 35 | +DEF_FEAT(PLO_CSSTGR, "plo-csstgr", PLO, 14, "PLO Compare and swap and store (64 bit in general registers)") |
36 | DEF_FEAT(PLO_CSSTX, "plo-csstx", PLO, 15, "PLO Compare and swap and store (128 bit in parameter list)") | 36 | DEF_FEAT(PLO_CSSTX, "plo-csstx", PLO, 15, "PLO Compare and swap and store (128 bit in parameter list)") |
37 | DEF_FEAT(PLO_CSDST, "plo-csdst", PLO, 16, "PLO Compare and swap and double store (32 bit in general registers)") | 37 | DEF_FEAT(PLO_CSDST, "plo-csdst", PLO, 16, "PLO Compare and swap and double store (32 bit in general registers)") |
38 | DEF_FEAT(PLO_CSDSTG, "plo-csdstg", PLO, 17, "PLO Compare and swap and double store (64 bit in parameter list)") | 38 | DEF_FEAT(PLO_CSDSTG, "plo-csdstg", PLO, 17, "PLO Compare and swap and double store (64 bit in parameter list)") |
39 | -DEF_FEAT(PLO_CSDSTGR, "plo-csdstgr", PLO, 18, "PLO Compare and swap and double store (32 bit in general registers)") | 39 | -DEF_FEAT(PLO_CSDSTGR, "plo-csdstgr", PLO, 18, "PLO Compare and swap and double store (32 bit in general registers)") |
40 | +DEF_FEAT(PLO_CSDSTGR, "plo-csdstgr", PLO, 18, "PLO Compare and swap and double store (64 bit in general registers)") | 40 | +DEF_FEAT(PLO_CSDSTGR, "plo-csdstgr", PLO, 18, "PLO Compare and swap and double store (64 bit in general registers)") |
41 | DEF_FEAT(PLO_CSDSTX, "plo-csdstx", PLO, 19, "PLO Compare and swap and double store (128 bit in parameter list)") | 41 | DEF_FEAT(PLO_CSDSTX, "plo-csdstx", PLO, 19, "PLO Compare and swap and double store (128 bit in parameter list)") |
42 | DEF_FEAT(PLO_CSTST, "plo-cstst", PLO, 20, "PLO Compare and swap and triple store (32 bit in general registers)") | 42 | DEF_FEAT(PLO_CSTST, "plo-cstst", PLO, 20, "PLO Compare and swap and triple store (32 bit in general registers)") |
43 | DEF_FEAT(PLO_CSTSTG, "plo-cststg", PLO, 21, "PLO Compare and swap and triple store (64 bit in parameter list)") | 43 | DEF_FEAT(PLO_CSTSTG, "plo-cststg", PLO, 21, "PLO Compare and swap and triple store (64 bit in parameter list)") |
44 | -DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (32 bit in general registers)") | 44 | -DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (32 bit in general registers)") |
45 | +DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (64 bit in general registers)") | 45 | +DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (64 bit in general registers)") |
46 | DEF_FEAT(PLO_CSTSTX, "plo-cststx", PLO, 23, "PLO Compare and swap and triple store (128 bit in parameter list)") | 46 | DEF_FEAT(PLO_CSTSTX, "plo-cststx", PLO, 23, "PLO Compare and swap and triple store (128 bit in parameter list)") |
47 | 47 | ||
48 | /* Features exposed via the PTFF instruction. */ | 48 | /* Features exposed via the PTFF instruction. */ |
49 | -- | 49 | -- |
50 | 2.43.5 | 50 | 2.43.5 | diff view generated by jsdifflib |
1 | The PLO-extension facility introduces numerous locking related | 1 | The PLO-extension facility introduces numerous locking related |
---|---|---|---|
2 | subfunctions. | 2 | subfunctions. |
3 | 3 | ||
4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 4 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
5 | Reviewed-by: Janosch Frank <frankja@linux.ibm.com> | 5 | Reviewed-by: Janosch Frank <frankja@linux.ibm.com> |
6 | --- | 6 | --- |
7 | target/s390x/cpu_features_def.h.inc | 39 +++++++++++++++++++++++++++ | 7 | target/s390x/cpu_features.c | 1 + |
8 | target/s390x/cpu_models.c | 38 ++++++++++++++++++++++++++ | 8 | target/s390x/cpu_features_def.h.inc | 39 +++++++++++++++++++++++++ |
9 | target/s390x/gen-features.c | 41 +++++++++++++++++++++++++++++ | 9 | target/s390x/cpu_models.c | 38 ++++++++++++++++++++++++ |
10 | 3 files changed, 118 insertions(+) | 10 | target/s390x/gen-features.c | 45 +++++++++++++++++++++++++++++ |
11 | 4 files changed, 123 insertions(+) | ||
11 | 12 | ||
13 | diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c | ||
14 | index XXXXXXX..XXXXXXX 100644 | ||
15 | --- a/target/s390x/cpu_features.c | ||
16 | +++ b/target/s390x/cpu_features.c | ||
17 | @@ -XXX,XX +XXX,XX @@ void s390_get_deprecated_features(S390FeatBitmap features) | ||
18 | /* indexed by feature group number for easy lookup */ | ||
19 | static S390FeatGroupDef s390_feature_groups[] = { | ||
20 | FEAT_GROUP_INIT("plo", PLO, "Perform-locked-operation facility"), | ||
21 | + FEAT_GROUP_INIT("plo_ext", PLO_EXT, "PLO-extension facility"), | ||
22 | FEAT_GROUP_INIT("tods", TOD_CLOCK_STEERING, "Tod-clock-steering facility"), | ||
23 | FEAT_GROUP_INIT("gen13ptff", GEN13_PTFF, "PTFF enhancements introduced with z13"), | ||
24 | FEAT_GROUP_INIT("gen17ptff", GEN17_PTFF, "PTFF enhancements introduced with gen17"), | ||
12 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc | 25 | diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc |
13 | index XXXXXXX..XXXXXXX 100644 | 26 | index XXXXXXX..XXXXXXX 100644 |
14 | --- a/target/s390x/cpu_features_def.h.inc | 27 | --- a/target/s390x/cpu_features_def.h.inc |
15 | +++ b/target/s390x/cpu_features_def.h.inc | 28 | +++ b/target/s390x/cpu_features_def.h.inc |
16 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking") | 29 | @@ -XXX,XX +XXX,XX @@ DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking") |
... | ... | ||
165 | + S390_FEAT_PLO_QSTO | 178 | + S390_FEAT_PLO_QSTO |
166 | + | 179 | + |
167 | #define S390_FEAT_GROUP_TOD_CLOCK_STEERING \ | 180 | #define S390_FEAT_GROUP_TOD_CLOCK_STEERING \ |
168 | S390_FEAT_TOD_CLOCK_STEERING, \ | 181 | S390_FEAT_TOD_CLOCK_STEERING, \ |
169 | S390_FEAT_PTFF_QTO, \ | 182 | S390_FEAT_PTFF_QTO, \ |
183 | @@ -XXX,XX +XXX,XX @@ | ||
184 | static uint16_t group_PLO[] = { | ||
185 | S390_FEAT_GROUP_PLO, | ||
186 | }; | ||
187 | +static uint16_t group_PLO_EXT[] = { | ||
188 | + S390_FEAT_GROUP_PLO_EXT, | ||
189 | +}; | ||
190 | static uint16_t group_TOD_CLOCK_STEERING[] = { | ||
191 | S390_FEAT_GROUP_TOD_CLOCK_STEERING, | ||
192 | }; | ||
193 | @@ -XXX,XX +XXX,XX @@ typedef struct { | ||
194 | *******************************/ | ||
195 | static FeatGroupDefSpec FeatGroupDef[] = { | ||
196 | FEAT_GROUP_INITIALIZER(PLO), | ||
197 | + FEAT_GROUP_INITIALIZER(PLO_EXT), | ||
198 | FEAT_GROUP_INITIALIZER(TOD_CLOCK_STEERING), | ||
199 | FEAT_GROUP_INITIALIZER(GEN13_PTFF), | ||
200 | FEAT_GROUP_INITIALIZER(GEN17_PTFF), | ||
170 | -- | 201 | -- |
171 | 2.43.5 | 202 | 2.43.5 | diff view generated by jsdifflib |
1 | This commit introduces the definition of the gen17a/gen17b CPU model. | 1 | This commit introduces the definition of the gen17a/gen17b CPU model. |
---|---|---|---|
2 | 2 | ||
3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> | 3 | Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
4 | --- | 4 | --- |
5 | target/s390x/cpu_models.c | 2 ++ | 5 | target/s390x/cpu_models.c | 2 ++ |
6 | target/s390x/gen-features.c | 33 +++++++++++++++++++++++++++++++++ | 6 | target/s390x/gen-features.c | 33 +++++++++++++++++++++++++++++++++ |
7 | 2 files changed, 35 insertions(+) | 7 | 2 files changed, 35 insertions(+) |
8 | 8 | ||
9 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c | 9 | diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c |
10 | index XXXXXXX..XXXXXXX 100644 | 10 | index XXXXXXX..XXXXXXX 100644 |
11 | --- a/target/s390x/cpu_models.c | 11 | --- a/target/s390x/cpu_models.c |
12 | +++ b/target/s390x/cpu_models.c | 12 | +++ b/target/s390x/cpu_models.c |
13 | @@ -XXX,XX +XXX,XX @@ static S390CPUDef s390_cpu_defs[] = { | 13 | @@ -XXX,XX +XXX,XX @@ static S390CPUDef s390_cpu_defs[] = { |
14 | CPUDEF_INIT(0x8562, 15, 1, 47, 0x08000000U, "gen15b", "IBM z15 T02 GA1"), | 14 | CPUDEF_INIT(0x8562, 15, 1, 47, 0x08000000U, "gen15b", "IBM z15 T02 GA1"), |
15 | CPUDEF_INIT(0x3931, 16, 1, 47, 0x08000000U, "gen16a", "IBM 3931 GA1"), | 15 | CPUDEF_INIT(0x3931, 16, 1, 47, 0x08000000U, "gen16a", "IBM 3931 GA1"), |
16 | CPUDEF_INIT(0x3932, 16, 1, 47, 0x08000000U, "gen16b", "IBM 3932 GA1"), | 16 | CPUDEF_INIT(0x3932, 16, 1, 47, 0x08000000U, "gen16b", "IBM 3932 GA1"), |
17 | + CPUDEF_INIT(0x9175, 17, 1, 47, 0x08000000U, "gen17a", "IBM 9175 GA1"), | 17 | + CPUDEF_INIT(0x9175, 17, 1, 47, 0x08000000U, "gen17a", "IBM 9175 GA1"), |
18 | + CPUDEF_INIT(0x9176, 17, 1, 47, 0x08000000U, "gen17b", "IBM 9176 GA1"), | 18 | + CPUDEF_INIT(0x9176, 17, 1, 47, 0x08000000U, "gen17b", "IBM 9176 GA1"), |
19 | }; | 19 | }; |
20 | 20 | ||
21 | #define QEMU_MAX_CPU_TYPE 0x8561 | 21 | #define QEMU_MAX_CPU_TYPE 0x8561 |
22 | diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c | 22 | diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c |
23 | index XXXXXXX..XXXXXXX 100644 | 23 | index XXXXXXX..XXXXXXX 100644 |
24 | --- a/target/s390x/gen-features.c | 24 | --- a/target/s390x/gen-features.c |
25 | +++ b/target/s390x/gen-features.c | 25 | +++ b/target/s390x/gen-features.c |
26 | @@ -XXX,XX +XXX,XX @@ static uint16_t base_GEN15_GA1[] = { | 26 | @@ -XXX,XX +XXX,XX @@ static uint16_t base_GEN15_GA1[] = { |
27 | 27 | ||
28 | #define base_GEN16_GA1 EmptyFeat | 28 | #define base_GEN16_GA1 EmptyFeat |
29 | 29 | ||
30 | +static uint16_t base_GEN17_GA1[] = { | 30 | +static uint16_t base_GEN17_GA1[] = { |
31 | + S390_FEAT_MISC_INSTRUCTION_EXT4, | 31 | + S390_FEAT_MISC_INSTRUCTION_EXT4, |
32 | + S390_FEAT_SIF, | 32 | + S390_FEAT_SIF, |
33 | + S390_FEAT_GROUP_MSA_EXT_12, | 33 | + S390_FEAT_GROUP_MSA_EXT_12, |
34 | + S390_FEAT_GROUP_PLO_EXT, | 34 | + S390_FEAT_GROUP_PLO_EXT, |
35 | +}; | 35 | +}; |
36 | + | 36 | + |
37 | /* Full features (in order of release) | 37 | /* Full features (in order of release) |
38 | * Automatically includes corresponding base features. | 38 | * Automatically includes corresponding base features. |
39 | * Full features are all features this hardware supports even if kvm/QEMU do not | 39 | * Full features are all features this hardware supports even if kvm/QEMU do not |
40 | @@ -XXX,XX +XXX,XX @@ static uint16_t full_GEN16_GA1[] = { | 40 | @@ -XXX,XX +XXX,XX @@ static uint16_t full_GEN16_GA1[] = { |
41 | S390_FEAT_UV_FEAT_AP_INTR, | 41 | S390_FEAT_UV_FEAT_AP_INTR, |
42 | }; | 42 | }; |
43 | 43 | ||
44 | +static uint16_t full_GEN17_GA1[] = { | 44 | +static uint16_t full_GEN17_GA1[] = { |
45 | + S390_FEAT_VECTOR_ENH3, | 45 | + S390_FEAT_VECTOR_ENH3, |
46 | + S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, | 46 | + S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, |
47 | + S390_FEAT_INEFF_NC_TX, | 47 | + S390_FEAT_INEFF_NC_TX, |
48 | + S390_FEAT_GROUP_GEN17_PTFF, | 48 | + S390_FEAT_GROUP_GEN17_PTFF, |
49 | + S390_FEAT_GROUP_MSA_EXT_10, | 49 | + S390_FEAT_GROUP_MSA_EXT_10, |
50 | + S390_FEAT_GROUP_MSA_EXT_10_PCKMO, | 50 | + S390_FEAT_GROUP_MSA_EXT_10_PCKMO, |
51 | + S390_FEAT_GROUP_MSA_EXT_11, | 51 | + S390_FEAT_GROUP_MSA_EXT_11, |
52 | + S390_FEAT_GROUP_MSA_EXT_11_PCKMO, | 52 | + S390_FEAT_GROUP_MSA_EXT_11_PCKMO, |
53 | + S390_FEAT_GROUP_MSA_EXT_13, | 53 | + S390_FEAT_GROUP_MSA_EXT_13, |
54 | + S390_FEAT_GROUP_MSA_EXT_13_PCKMO, | 54 | + S390_FEAT_GROUP_MSA_EXT_13_PCKMO, |
55 | + S390_FEAT_GROUP_CONCURRENT_FUNCTIONS, | 55 | + S390_FEAT_GROUP_CONCURRENT_FUNCTIONS, |
56 | +}; | 56 | +}; |
57 | + | 57 | + |
58 | 58 | ||
59 | /* Default features (in order of release) | 59 | /* Default features (in order of release) |
60 | * Automatically includes corresponding base features. | 60 | * Automatically includes corresponding base features. |
61 | @@ -XXX,XX +XXX,XX @@ static uint16_t default_GEN16_GA1[] = { | 61 | @@ -XXX,XX +XXX,XX @@ static uint16_t default_GEN16_GA1[] = { |
62 | S390_FEAT_PAIE, | 62 | S390_FEAT_PAIE, |
63 | }; | 63 | }; |
64 | 64 | ||
65 | +static uint16_t default_GEN17_GA1[] = { | 65 | +static uint16_t default_GEN17_GA1[] = { |
66 | + S390_FEAT_VECTOR_ENH3, | 66 | + S390_FEAT_VECTOR_ENH3, |
67 | + S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, | 67 | + S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, |
68 | + S390_FEAT_GROUP_MSA_EXT_10, | 68 | + S390_FEAT_GROUP_MSA_EXT_10, |
69 | + S390_FEAT_GROUP_MSA_EXT_10_PCKMO, | 69 | + S390_FEAT_GROUP_MSA_EXT_10_PCKMO, |
70 | + S390_FEAT_GROUP_MSA_EXT_11, | 70 | + S390_FEAT_GROUP_MSA_EXT_11, |
71 | + S390_FEAT_GROUP_MSA_EXT_11_PCKMO, | 71 | + S390_FEAT_GROUP_MSA_EXT_11_PCKMO, |
72 | + S390_FEAT_GROUP_MSA_EXT_13, | 72 | + S390_FEAT_GROUP_MSA_EXT_13, |
73 | + S390_FEAT_GROUP_MSA_EXT_13_PCKMO, | 73 | + S390_FEAT_GROUP_MSA_EXT_13_PCKMO, |
74 | +}; | 74 | +}; |
75 | + | 75 | + |
76 | /* QEMU (CPU model) features */ | 76 | /* QEMU (CPU model) features */ |
77 | 77 | ||
78 | static uint16_t qemu_V2_11[] = { | 78 | static uint16_t qemu_V2_11[] = { |
79 | @@ -XXX,XX +XXX,XX @@ static CpuFeatDefSpec CpuFeatDef[] = { | 79 | @@ -XXX,XX +XXX,XX @@ static CpuFeatDefSpec CpuFeatDef[] = { |
80 | CPU_FEAT_INITIALIZER(GEN14_GA2), | 80 | CPU_FEAT_INITIALIZER(GEN14_GA2), |
81 | CPU_FEAT_INITIALIZER(GEN15_GA1), | 81 | CPU_FEAT_INITIALIZER(GEN15_GA1), |
82 | CPU_FEAT_INITIALIZER(GEN16_GA1), | 82 | CPU_FEAT_INITIALIZER(GEN16_GA1), |
83 | + CPU_FEAT_INITIALIZER(GEN17_GA1), | 83 | + CPU_FEAT_INITIALIZER(GEN17_GA1), |
84 | }; | 84 | }; |
85 | 85 | ||
86 | #define FEAT_GROUP_INITIALIZER(_name) \ | 86 | #define FEAT_GROUP_INITIALIZER(_name) \ |
87 | -- | 87 | -- |
88 | 2.43.5 | 88 | 2.43.5 | diff view generated by jsdifflib |