Skip to content

Commit 143a625

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: - Initial support for the ARMv9 Scalable Matrix Extension (SME). SME takes the approach used for vectors in SVE and extends this to provide architectural support for matrix operations. No KVM support yet, SME is disabled in guests. - Support for crashkernel reservations above ZONE_DMA via the 'crashkernel=X,high' command line option. - btrfs search_ioctl() fix for live-lock with sub-page faults. - arm64 perf updates: support for the Hisilicon "CPA" PMU for monitoring coherent I/O traffic, support for Arm's CMN-650 and CMN-700 interconnect PMUs, minor driver fixes, kerneldoc cleanup. - Kselftest updates for SME, BTI, MTE. - Automatic generation of the system register macros from a 'sysreg' file describing the register bitfields. - Update the type of the function argument holding the ESR_ELx register value to unsigned long to match the architecture register size (originally 32-bit but extended since ARMv8.0). - stacktrace cleanups. - ftrace cleanups. - Miscellaneous updates, most notably: arm64-specific huge_ptep_get(), avoid executable mappings in kexec/hibernate code, drop TLB flushing from get_clear_flush() (and rename it to get_clear_contig()), ARCH_NR_GPIO bumped to 2048 for ARCH_APPLE. * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (145 commits) arm64/sysreg: Generate definitions for FAR_ELx arm64/sysreg: Generate definitions for DACR32_EL2 arm64/sysreg: Generate definitions for CSSELR_EL1 arm64/sysreg: Generate definitions for CPACR_ELx arm64/sysreg: Generate definitions for CONTEXTIDR_ELx arm64/sysreg: Generate definitions for CLIDR_EL1 arm64/sve: Move sve_free() into SVE code section arm64: Kconfig.platforms: Add comments arm64: Kconfig: Fix indentation and add comments arm64: mm: avoid writable executable mappings in kexec/hibernate code arm64: lds: move special code sections out of kernel exec segment arm64/hugetlb: Implement arm64 specific huge_ptep_get() arm64/hugetlb: Use ptep_get() to get the pte value of a huge page arm64: kdump: Do not allocate crash low memory if not needed arm64/sve: Generate ZCR definitions arm64/sme: Generate defintions for SVCR arm64/sme: Generate SMPRI_EL1 definitions arm64/sme: Automatically generate SMPRIMAP_EL2 definitions arm64/sme: Automatically generate SMIDR_EL1 defines arm64/sme: Automatically generate defines for SMCR ...
2 parents d6edf95 + 0616ea3 commit 143a625

File tree

154 files changed

+7542
-958
lines changed

Some content is hidden

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

154 files changed

+7542
-958
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@
813813
Documentation/admin-guide/kdump/kdump.rst for an example.
814814

815815
crashkernel=size[KMG],high
816-
[KNL, X86-64] range could be above 4G. Allow kernel
816+
[KNL, X86-64, ARM64] range could be above 4G. Allow kernel
817817
to allocate physical memory region from top, so could
818818
be above 4G if system have more than 4G ram installed.
819819
Otherwise memory region will be allocated below 4G, if
@@ -826,14 +826,20 @@
826826
that require some amount of low memory, e.g. swiotlb
827827
requires at least 64M+32K low memory, also enough extra
828828
low memory is needed to make sure DMA buffers for 32-bit
829-
devices won't run out. Kernel would try to allocate at
829+
devices won't run out. Kernel would try to allocate
830830
at least 256M below 4G automatically.
831-
This one let user to specify own low range under 4G
831+
This one lets the user specify own low range under 4G
832832
for second kernel instead.
833833
0: to disable low allocation.
834834
It will be ignored when crashkernel=X,high is not used
835835
or memory reserved is below 4G.
836836

837+
[KNL, ARM64] range in low memory.
838+
This one lets the user specify a low range in the
839+
DMA zone for the crash dump kernel.
840+
It will be ignored when crashkernel=X,high is not used
841+
or memory reserved is located in the DMA zones.
842+
837843
cryptomgr.notests
838844
[KNL] Disable crypto self-tests
839845

Documentation/arm64/booting.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,16 @@ Before jumping into the kernel, the following conditions must be met:
350350

351351
- SMCR_EL2.FA64 (bit 31) must be initialised to 0b1.
352352

353+
For CPUs with the Memory Tagging Extension feature (FEAT_MTE2):
354+
355+
- If EL3 is present:
356+
357+
- SCR_EL3.ATA (bit 26) must be initialised to 0b1.
358+
359+
- If the kernel is entered at EL1 and EL2 is present:
360+
361+
- HCR_EL2.ATA (bit 56) must be initialised to 0b1.
362+
353363
The requirements described above for CPU mode, caches, MMUs, architected
354364
timers, coherency and system registers apply to all CPUs. All CPUs must
355365
enter the kernel in the same exception level. Where the values documented

Documentation/arm64/elf_hwcaps.rst

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,39 @@ HWCAP2_MTE3
264264
Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0011, as described
265265
by Documentation/arm64/memory-tagging-extension.rst.
266266

267+
HWCAP2_SME
268+
269+
Functionality implied by ID_AA64PFR1_EL1.SME == 0b0001, as described
270+
by Documentation/arm64/sme.rst.
271+
272+
HWCAP2_SME_I16I64
273+
274+
Functionality implied by ID_AA64SMFR0_EL1.I16I64 == 0b1111.
275+
276+
HWCAP2_SME_F64F64
277+
278+
Functionality implied by ID_AA64SMFR0_EL1.F64F64 == 0b1.
279+
280+
HWCAP2_SME_I8I32
281+
282+
Functionality implied by ID_AA64SMFR0_EL1.I8I32 == 0b1111.
283+
284+
HWCAP2_SME_F16F32
285+
286+
Functionality implied by ID_AA64SMFR0_EL1.F16F32 == 0b1.
287+
288+
HWCAP2_SME_B16F32
289+
290+
Functionality implied by ID_AA64SMFR0_EL1.B16F32 == 0b1.
291+
292+
HWCAP2_SME_F32F32
293+
294+
Functionality implied by ID_AA64SMFR0_EL1.F32F32 == 0b1.
295+
296+
HWCAP2_SME_FA64
297+
298+
Functionality implied by ID_AA64SMFR0_EL1.FA64 == 0b1.
299+
267300
4. Unused AT_HWCAP bits
268301
-----------------------
269302

Documentation/arm64/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ARM64 Architecture
2121
perf
2222
pointer-authentication
2323
silicon-errata
24+
sme
2425
sve
2526
tagged-address-abi
2627
tagged-pointers

0 commit comments

Comments
 (0)