Skip to content

Commit f5bae92

Browse files
author
CKI KWF Bot
committed
Merge: arm64: Update core arm code
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-10/-/merge_requests/1400 JIRA: https://issues.redhat.com/browse/RHEL-101059 Arm core update through v6.17 and some fixes from v6.18 - CPU type updates - SVE updates - New system register definitions - kselftest updates - various fixes Signed-off-by: Mark Salter <msalter@redhat.com> Approved-by: Donald Dutile <ddutile@redhat.com> Approved-by: Gavin Shan <gshan@redhat.com> Approved-by: Mark Langsdorf <mlangsdo@redhat.com> Approved-by: Rafael Aquini <raquini@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: CKI GitLab Kmaint Pipeline Bot <26919896-cki-kmaint-pipeline-bot@users.noreply.gitlab.com>
2 parents c1118a0 + 4a26c23 commit f5bae92

File tree

162 files changed

+5672
-1809
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+5672
-1809
lines changed

Documentation/ABI/testing/sysfs-devices-system-cpu

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@ What: /sys/devices/system/cpu/cpuX/regs/
485485
/sys/devices/system/cpu/cpuX/regs/identification/
486486
/sys/devices/system/cpu/cpuX/regs/identification/midr_el1
487487
/sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
488+
/sys/devices/system/cpu/cpuX/regs/identification/aidr_el1
488489
/sys/devices/system/cpu/cpuX/regs/identification/smidr_el1
489490
Date: June 2016
490491
Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>

Documentation/arch/arm64/booting.rst

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ Before jumping into the kernel, the following conditions must be met:
234234

235235
- If the kernel is entered at EL1:
236236

237-
- ICC.SRE_EL2.Enable (bit 3) must be initialised to 0b1
237+
- ICC_SRE_EL2.Enable (bit 3) must be initialised to 0b1
238238
- ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b1.
239239

240240
- The DT or ACPI tables must describe a GICv3 interrupt controller.
@@ -388,6 +388,27 @@ Before jumping into the kernel, the following conditions must be met:
388388

389389
- SMCR_EL2.EZT0 (bit 30) must be initialised to 0b1.
390390

391+
For CPUs with the Branch Record Buffer Extension (FEAT_BRBE):
392+
393+
- If EL3 is present:
394+
395+
- MDCR_EL3.SBRBE (bits 33:32) must be initialised to 0b01 or 0b11.
396+
397+
- If the kernel is entered at EL1 and EL2 is present:
398+
399+
- BRBCR_EL2.CC (bit 3) must be initialised to 0b1.
400+
- BRBCR_EL2.MPRED (bit 4) must be initialised to 0b1.
401+
402+
- HDFGRTR_EL2.nBRBDATA (bit 61) must be initialised to 0b1.
403+
- HDFGRTR_EL2.nBRBCTL (bit 60) must be initialised to 0b1.
404+
- HDFGRTR_EL2.nBRBIDR (bit 59) must be initialised to 0b1.
405+
406+
- HDFGWTR_EL2.nBRBDATA (bit 61) must be initialised to 0b1.
407+
- HDFGWTR_EL2.nBRBCTL (bit 60) must be initialised to 0b1.
408+
409+
- HFGITR_EL2.nBRBIALL (bit 56) must be initialised to 0b1.
410+
- HFGITR_EL2.nBRBINJ (bit 55) must be initialised to 0b1.
411+
391412
For CPUs with the Performance Monitors Extension (FEAT_PMUv3p9):
392413

393414
- If EL3 is present:

Documentation/arch/arm64/cpu-feature-registers.rst

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,15 @@ there are some issues with their usage.
7272
process could be migrated to another CPU by the time it uses the
7373
register value, unless the CPU affinity is set. Hence, there is no
7474
guarantee that the value reflects the processor that it is
75-
currently executing on. The REVIDR is not exposed due to this
76-
constraint, as REVIDR makes sense only in conjunction with the
77-
MIDR. Alternately, MIDR_EL1 and REVIDR_EL1 are exposed via sysfs
78-
at::
75+
currently executing on. REVIDR and AIDR are not exposed due to this
76+
constraint, as these registers only make sense in conjunction with
77+
the MIDR. Alternately, MIDR_EL1, REVIDR_EL1, and AIDR_EL1 are exposed
78+
via sysfs at::
7979

8080
/sys/devices/system/cpu/cpu$ID/regs/identification/
81-
\- midr
82-
\- revidr
81+
\- midr_el1
82+
\- revidr_el1
83+
\- aidr_el1
8384

8485
3. Implementation
8586
--------------------

Documentation/arch/arm64/elf_hwcaps.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,16 @@ HWCAP2_SME_SF8DP4
435435
HWCAP2_POE
436436
Functionality implied by ID_AA64MMFR3_EL1.S1POE == 0b0001.
437437

438+
HWCAP3_MTE_FAR
439+
Functionality implied by ID_AA64PFR2_EL1.MTEFAR == 0b0001.
440+
441+
HWCAP3_MTE_STORE_ONLY
442+
Functionality implied by ID_AA64PFR2_EL1.MTESTOREONLY == 0b0001.
443+
444+
HWCAP3_LSFE
445+
Functionality implied by ID_AA64ISAR3_EL1.LSFE == 0b0001
446+
447+
438448
4. Unused AT_HWCAP bits
439449
-----------------------
440450

Documentation/arch/arm64/sme.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ model features for SME is included in Appendix A.
6969
vectors from 0 to VL/8-1 stored in the same endianness invariant format as is
7070
used for SVE vectors.
7171

72-
* On thread creation TPIDR2_EL0 is preserved unless CLONE_SETTLS is specified,
73-
in which case it is set to 0.
72+
* On thread creation PSTATE.ZA and TPIDR2_EL0 are preserved unless CLONE_VM
73+
is specified, in which case PSTATE.ZA is set to 0 and TPIDR2_EL0 is set to 0.
7474

7575
2. Vector lengths
7676
------------------
@@ -115,7 +115,7 @@ be zeroed.
115115
5. Signal handling
116116
-------------------
117117

118-
* Signal handlers are invoked with streaming mode and ZA disabled.
118+
* Signal handlers are invoked with PSTATE.SM=0, PSTATE.ZA=0, and TPIDR2_EL0=0.
119119

120120
* A new signal frame record TPIDR2_MAGIC is added formatted as a struct
121121
tpidr2_context to allow access to TPIDR2_EL0 from signal handlers.
@@ -241,7 +241,7 @@ prctl(PR_SME_SET_VL, unsigned long arg)
241241
length, or calling PR_SME_SET_VL with the PR_SME_SET_VL_ONEXEC flag,
242242
does not constitute a change to the vector length for this purpose.
243243

244-
* Changing the vector length causes PSTATE.ZA and PSTATE.SM to be cleared.
244+
* Changing the vector length causes PSTATE.ZA to be cleared.
245245
Calling PR_SME_SET_VL with vl equal to the thread's current vector
246246
length, or calling PR_SME_SET_VL with the PR_SME_SET_VL_ONEXEC flag,
247247
does not constitute a change to the vector length for this purpose.

Documentation/arch/arm64/tagged-pointers.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,12 @@ that signal handlers in applications making use of tags cannot rely
6060
on the tag information for user virtual addresses being maintained
6161
in these fields unless the flag was set.
6262

63-
Due to architecture limitations, bits 63:60 of the fault address
64-
are not preserved in response to synchronous tag check faults
65-
(SEGV_MTESERR) even if SA_EXPOSE_TAGBITS was set. Applications should
66-
treat the values of these bits as undefined in order to accommodate
67-
future architecture revisions which may preserve the bits.
63+
If FEAT_MTE_TAGGED_FAR (Armv8.9) is supported, bits 63:60 of the fault address
64+
are preserved in response to synchronous tag check faults (SEGV_MTESERR)
65+
otherwise not preserved even if SA_EXPOSE_TAGBITS was set.
66+
Applications should interpret the values of these bits based on
67+
the support for the HWCAP3_MTE_FAR. If the support is not present,
68+
the values of these bits should be considered as undefined otherwise valid.
6869

6970
For signals raised in response to watchpoint debug exceptions, the
7071
tag information will be preserved regardless of the SA_EXPOSE_TAGBITS
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interrupt-controller/arm,gic-v5-iwb.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: ARM Generic Interrupt Controller, version 5 Interrupt Wire Bridge (IWB)
8+
9+
maintainers:
10+
- Lorenzo Pieralisi <lpieralisi@kernel.org>
11+
- Marc Zyngier <maz@kernel.org>
12+
13+
description: |
14+
The GICv5 architecture defines the guidelines to implement GICv5
15+
compliant interrupt controllers for AArch64 systems.
16+
17+
The GICv5 specification can be found at
18+
https://developer.arm.com/documentation/aes0070
19+
20+
GICv5 has zero or more Interrupt Wire Bridges (IWB) that are responsible
21+
for translating wire signals into interrupt messages to the GICv5 ITS.
22+
23+
allOf:
24+
- $ref: /schemas/interrupt-controller.yaml#
25+
26+
properties:
27+
compatible:
28+
const: arm,gic-v5-iwb
29+
30+
reg:
31+
items:
32+
- description: IWB control frame
33+
34+
"#address-cells":
35+
const: 0
36+
37+
"#interrupt-cells":
38+
description: |
39+
The 1st cell corresponds to the IWB wire.
40+
41+
The 2nd cell is the flags, encoded as follows:
42+
bits[3:0] trigger type and level flags.
43+
44+
1 = low-to-high edge triggered
45+
2 = high-to-low edge triggered
46+
4 = active high level-sensitive
47+
8 = active low level-sensitive
48+
49+
const: 2
50+
51+
interrupt-controller: true
52+
53+
msi-parent:
54+
maxItems: 1
55+
56+
required:
57+
- compatible
58+
- reg
59+
- "#interrupt-cells"
60+
- interrupt-controller
61+
- msi-parent
62+
63+
additionalProperties: false
64+
65+
examples:
66+
- |
67+
interrupt-controller@2f000000 {
68+
compatible = "arm,gic-v5-iwb";
69+
reg = <0x2f000000 0x10000>;
70+
71+
#address-cells = <0>;
72+
73+
#interrupt-cells = <2>;
74+
interrupt-controller;
75+
76+
msi-parent = <&its0 64>;
77+
};
78+
...

0 commit comments

Comments
 (0)