Skip to content

Commit 2605e80

Browse files
committed
Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 updates from Catalin Marinas: "Notable features are user-space support for the memcpy/memset instructions and the permission indirection extension. - Support for the Armv8.9 Permission Indirection Extensions. While this feature doesn't add new functionality, it enables future support for Guarded Control Stacks (GCS) and Permission Overlays - User-space support for the Armv8.8 memcpy/memset instructions - arm64 perf: support the HiSilicon SoC uncore PMU, Arm CMN sysfs identifier, support for the NXP i.MX9 SoC DDRC PMU, fixes and cleanups - Removal of superfluous ISBs on context switch (following retrospective architecture tightening) - Decode the ISS2 register during faults for additional information to help with debugging - KPTI clean-up/simplification of the trampoline exit code - Addressing several -Wmissing-prototype warnings - Kselftest improvements for signal handling and ptrace - Fix TPIDR2_EL0 restoring on sigreturn - Clean-up, robustness improvements of the module allocation code - More sysreg conversions to the automatic register/bitfields generation - CPU capabilities handling cleanup - Arm documentation updates: ACPI, ptdump" * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (124 commits) kselftest/arm64: Add a test case for TPIDR2 restore arm64/signal: Restore TPIDR2 register rather than memory state arm64: alternatives: make clean_dcache_range_nopatch() noinstr-safe Documentation/arm64: Add ptdump documentation arm64: hibernate: remove WARN_ON in save_processor_state kselftest/arm64: Log signal code and address for unexpected signals docs: perf: Fix warning from 'make htmldocs' in hisi-pmu.rst arm64/fpsimd: Exit streaming mode when flushing tasks docs: perf: Add new description for HiSilicon UC PMU drivers/perf: hisi: Add support for HiSilicon UC PMU driver drivers/perf: hisi: Add support for HiSilicon H60PA and PAv3 PMU driver perf: arm_cspmu: Add missing MODULE_DEVICE_TABLE perf/arm-cmn: Add sysfs identifier perf/arm-cmn: Revamp model detection perf/arm_dmc620: Add cpumask arm64: mm: fix VA-range sanity check arm64/mm: remove now-superfluous ISBs from TTBR writes Documentation/arm64: Update ACPI tables from BBR Documentation/arm64: Update references in arm-acpi Documentation/arm64: Update ARM and arch reference ...
2 parents 2b603cd + abc1712 commit 2605e80

File tree

120 files changed

+3429
-786
lines changed

Some content is hidden

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

120 files changed

+3429
-786
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,9 @@
429429
arm64.nosme [ARM64] Unconditionally disable Scalable Matrix
430430
Extension support
431431

432+
arm64.nomops [ARM64] Unconditionally disable Memory Copy and Memory
433+
Set instructions support
434+
432435
ataflop= [HW,M68k]
433436

434437
atarimouse= [HW,MOUSE] Atari Mouse

Documentation/admin-guide/perf/hisi-pmu.rst

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ Example usage of perf::
5656
For HiSilicon uncore PMU v2 whose identifier is 0x30, the topology is the same
5757
as PMU v1, but some new functions are added to the hardware.
5858

59-
(a) L3C PMU supports filtering by core/thread within the cluster which can be
59+
1. L3C PMU supports filtering by core/thread within the cluster which can be
6060
specified as a bitmap::
6161

6262
$# perf stat -a -e hisi_sccl3_l3c0/config=0x02,tt_core=0x3/ sleep 5
6363

6464
This will only count the operations from core/thread 0 and 1 in this cluster.
6565

66-
(b) Tracetag allow the user to chose to count only read, write or atomic
66+
2. Tracetag allow the user to chose to count only read, write or atomic
6767
operations via the tt_req parameeter in perf. The default value counts all
6868
operations. tt_req is 3bits, 3'b100 represents read operations, 3'b101
6969
represents write operations, 3'b110 represents atomic store operations and
@@ -73,30 +73,42 @@ represents write operations, 3'b110 represents atomic store operations and
7373

7474
This will only count the read operations in this cluster.
7575

76-
(c) Datasrc allows the user to check where the data comes from. It is 5 bits.
76+
3. Datasrc allows the user to check where the data comes from. It is 5 bits.
7777
Some important codes are as follows:
78-
5'b00001: comes from L3C in this die;
79-
5'b01000: comes from L3C in the cross-die;
80-
5'b01001: comes from L3C which is in another socket;
81-
5'b01110: comes from the local DDR;
82-
5'b01111: comes from the cross-die DDR;
83-
5'b10000: comes from cross-socket DDR;
78+
79+
- 5'b00001: comes from L3C in this die;
80+
- 5'b01000: comes from L3C in the cross-die;
81+
- 5'b01001: comes from L3C which is in another socket;
82+
- 5'b01110: comes from the local DDR;
83+
- 5'b01111: comes from the cross-die DDR;
84+
- 5'b10000: comes from cross-socket DDR;
85+
8486
etc, it is mainly helpful to find that the data source is nearest from the CPU
8587
cores. If datasrc_cfg is used in the multi-chips, the datasrc_skt shall be
8688
configured in perf command::
8789

8890
$# perf stat -a -e hisi_sccl3_l3c0/config=0xb9,datasrc_cfg=0xE/,
8991
hisi_sccl3_l3c0/config=0xb9,datasrc_cfg=0xF/ sleep 5
9092

91-
(d)Some HiSilicon SoCs encapsulate multiple CPU and IO dies. Each CPU die
93+
4. Some HiSilicon SoCs encapsulate multiple CPU and IO dies. Each CPU die
9294
contains several Compute Clusters (CCLs). The I/O dies are called Super I/O
9395
clusters (SICL) containing multiple I/O clusters (ICLs). Each CCL/ICL in the
9496
SoC has a unique ID. Each ID is 11bits, include a 6-bit SCCL-ID and 5-bit
9597
CCL/ICL-ID. For I/O die, the ICL-ID is followed by:
96-
5'b00000: I/O_MGMT_ICL;
97-
5'b00001: Network_ICL;
98-
5'b00011: HAC_ICL;
99-
5'b10000: PCIe_ICL;
98+
99+
- 5'b00000: I/O_MGMT_ICL;
100+
- 5'b00001: Network_ICL;
101+
- 5'b00011: HAC_ICL;
102+
- 5'b10000: PCIe_ICL;
103+
104+
5. uring_channel: UC PMU events 0x47~0x59 supports filtering by tx request
105+
uring channel. It is 2 bits. Some important codes are as follows:
106+
107+
- 2'b11: count the events which sent to the uring_ext (MATA) channel;
108+
- 2'b01: is the same as 2'b11;
109+
- 2'b10: count the events which sent to the uring (non-MATA) channel;
110+
- 2'b00: default value, count the events which sent to the both uring and
111+
uring_ext channel;
100112

101113
Users could configure IDs to count data come from specific CCL/ICL, by setting
102114
srcid_cmd & srcid_msk, and data desitined for specific CCL/ICL by setting

Documentation/arm64/acpi_object_usage.rst

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,37 @@ For ACPI on arm64, tables also fall into the following categories:
1717

1818
- Recommended: BERT, EINJ, ERST, HEST, PCCT, SSDT
1919

20-
- Optional: BGRT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT, IBFT,
21-
IORT, MCHI, MPST, MSCT, NFIT, PMTT, RASF, SBST, SLIT, SPMI, SRAT,
22-
STAO, TCPA, TPM2, UEFI, XENV
20+
- Optional: AGDI, BGRT, CEDT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT,
21+
HMAT, IBFT, IORT, MCHI, MPAM, MPST, MSCT, NFIT, PMTT, PPTT, RASF, SBST,
22+
SDEI, SLIT, SPMI, SRAT, STAO, TCPA, TPM2, UEFI, XENV
2323

24-
- Not supported: BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT, MSDM, OEMx,
25-
PSDT, RSDT, SLIC, WAET, WDAT, WDRT, WPBT
24+
- Not supported: AEST, APMT, BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT,
25+
MSDM, OEMx, PDTT, PSDT, RAS2, RSDT, SLIC, WAET, WDAT, WDRT, WPBT
2626

2727
====== ========================================================================
2828
Table Usage for ARMv8 Linux
2929
====== ========================================================================
30+
AEST Signature Reserved (signature == "AEST")
31+
32+
**Arm Error Source Table**
33+
34+
This table informs the OS of any error nodes in the system that are
35+
compliant with the Arm RAS architecture.
36+
37+
AGDI Signature Reserved (signature == "AGDI")
38+
39+
**Arm Generic diagnostic Dump and Reset Device Interface Table**
40+
41+
This table describes a non-maskable event, that is used by the platform
42+
firmware, to request the OS to generate a diagnostic dump and reset the device.
43+
44+
APMT Signature Reserved (signature == "APMT")
45+
46+
**Arm Performance Monitoring Table**
47+
48+
This table describes the properties of PMU support implmented by
49+
components in the system.
50+
3051
BERT Section 18.3 (signature == "BERT")
3152

3253
**Boot Error Record Table**
@@ -47,6 +68,13 @@ BGRT Section 5.2.22 (signature == "BGRT")
4768
Optional, not currently supported, with no real use-case for an
4869
ARM server.
4970

71+
CEDT Signature Reserved (signature == "CEDT")
72+
73+
**CXL Early Discovery Table**
74+
75+
This table allows the OS to discover any CXL Host Bridges and the Host
76+
Bridge registers.
77+
5078
CPEP Section 5.2.18 (signature == "CPEP")
5179

5280
**Corrected Platform Error Polling table**
@@ -184,6 +212,15 @@ HEST Section 18.3.2 (signature == "HEST")
184212
Must be supplied if RAS support is provided by the platform. It
185213
is recommended this table be supplied.
186214

215+
HMAT Section 5.2.28 (signature == "HMAT")
216+
217+
**Heterogeneous Memory Attribute Table**
218+
219+
This table describes the memory attributes, such as memory side cache
220+
attributes and bandwidth and latency details, related to Memory Proximity
221+
Domains. The OS uses this information to optimize the system memory
222+
configuration.
223+
187224
HPET Signature Reserved (signature == "HPET")
188225

189226
**High Precision Event timer Table**
@@ -241,6 +278,13 @@ MCHI Signature Reserved (signature == "MCHI")
241278

242279
Optional, not currently supported.
243280

281+
MPAM Signature Reserved (signature == "MPAM")
282+
283+
**Memory Partitioning And Monitoring table**
284+
285+
This table allows the OS to discover the MPAM controls implemented by
286+
the subsystems.
287+
244288
MPST Section 5.2.21 (signature == "MPST")
245289

246290
**Memory Power State Table**
@@ -281,18 +325,39 @@ PCCT Section 14.1 (signature == "PCCT)
281325
Recommend for use on arm64; use of PCC is recommended when using CPPC
282326
to control performance and power for platform processors.
283327

328+
PDTT Section 5.2.29 (signature == "PDTT")
329+
330+
**Platform Debug Trigger Table**
331+
332+
This table describes PCC channels used to gather debug logs of
333+
non-architectural features.
334+
335+
284336
PMTT Section 5.2.21.12 (signature == "PMTT")
285337

286338
**Platform Memory Topology Table**
287339

288340
Optional, not currently supported.
289341

342+
PPTT Section 5.2.30 (signature == "PPTT")
343+
344+
**Processor Properties Topology Table**
345+
346+
This table provides the processor and cache topology.
347+
290348
PSDT Section 5.2.11.3 (signature == "PSDT")
291349

292350
**Persistent System Description Table**
293351

294352
Obsolete table, will not be supported.
295353

354+
RAS2 Section 5.2.21 (signature == "RAS2")
355+
356+
**RAS Features 2 table**
357+
358+
This table provides interfaces for the RAS capabilities implemented in
359+
the platform.
360+
296361
RASF Section 5.2.20 (signature == "RASF")
297362

298363
**RAS Feature table**
@@ -318,6 +383,12 @@ SBST Section 5.2.14 (signature == "SBST")
318383

319384
Optional, not currently supported.
320385

386+
SDEI Signature Reserved (signature == "SDEI")
387+
388+
**Software Delegated Exception Interface table**
389+
390+
This table advertises the presence of the SDEI interface.
391+
321392
SLIC Signature Reserved (signature == "SLIC")
322393

323394
**Software LIcensing table**

0 commit comments

Comments
 (0)