You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge tag 'kvmarm-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM/arm64 updates for 6.5
- Eager page splitting optimization for dirty logging, optionally
allowing for a VM to avoid the cost of block splitting in the stage-2
fault path.
- Arm FF-A proxy for pKVM, allowing a pKVM host to safely interact with
services that live in the Secure world. pKVM intervenes on FF-A calls
to guarantee the host doesn't misuse memory donated to the hyp or a
pKVM guest.
- Support for running the split hypervisor with VHE enabled, known as
'hVHE' mode. This is extremely useful for testing the split
hypervisor on VHE-only systems, and paves the way for new use cases
that depend on having two TTBRs available at EL2.
- Generalized framework for configurable ID registers from userspace.
KVM/arm64 currently prevents arbitrary CPU feature set configuration
from userspace, but the intent is to relax this limitation and allow
userspace to select a feature set consistent with the CPU.
- Enable the use of Branch Target Identification (FEAT_BTI) in the
hypervisor.
- Use a separate set of pointer authentication keys for the hypervisor
when running in protected mode, as the host is untrusted at runtime.
- Ensure timer IRQs are consistently released in the init failure
paths.
- Avoid trapping CTR_EL0 on systems with Enhanced Virtualization Traps
(FEAT_EVT), as it is a register commonly read from userspace.
- Erratum workaround for the upcoming AmpereOne part, which has broken
hardware A/D state management.
As a consequence of the hVHE series reworking the arm64 software
features framework, the for-next/module-alloc branch from the arm64 tree
comes along for the ride.
Copy file name to clipboardExpand all lines: arch/arm64/Kconfig
+22-25Lines changed: 22 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -207,6 +207,7 @@ config ARM64
207
207
select HAVE_IOREMAP_PROT
208
208
select HAVE_IRQ_TIME_ACCOUNTING
209
209
select HAVE_KVM
210
+
select HAVE_MOD_ARCH_SPECIFIC
210
211
select HAVE_NMI
211
212
select HAVE_PERF_EVENTS
212
213
select HAVE_PERF_REGS
@@ -406,6 +407,25 @@ menu "Kernel Features"
406
407
407
408
menu "ARM errata workarounds via the alternatives framework"
408
409
410
+
config AMPERE_ERRATUM_AC03_CPU_38
411
+
bool "AmpereOne: AC03_CPU_38: Certain bits in the Virtualization Translation Control Register and Translation Control Registers do not follow RES0 semantics"
412
+
default y
413
+
help
414
+
This option adds an alternative code sequence to work around Ampere
415
+
erratum AC03_CPU_38 on AmpereOne.
416
+
417
+
The affected design reports FEAT_HAFDBS as not implemented in
418
+
ID_AA64MMFR1_EL1.HAFDBS, but (V)TCR_ELx.{HA,HD} are not RES0
419
+
as required by the architecture. The unadvertised HAFDBS
420
+
implementation suffers from an additional erratum where hardware
421
+
A/D updates can occur after a PTE has been marked invalid.
422
+
423
+
The workaround forces KVM to explicitly set VTCR_EL2.HA to 0,
424
+
which avoids enabling unadvertised hardware Access Flag management
425
+
at stage-2.
426
+
427
+
If unsure, say Y.
428
+
409
429
config ARM64_WORKAROUND_CLEAN_CACHE
410
430
bool
411
431
@@ -577,7 +597,6 @@ config ARM64_ERRATUM_845719
577
597
config ARM64_ERRATUM_843419
578
598
bool "Cortex-A53: 843419: A load or store might access an incorrect address"
579
599
default y
580
-
select ARM64_MODULE_PLTS if MODULES
581
600
help
582
601
This option links the kernel with '--fix-cortex-a53-843419' and
583
602
enables PLT support to replace certain ADRP instructions, which can
@@ -2107,26 +2126,6 @@ config ARM64_SME
2107
2126
register state capable of holding two dimensional matrix tiles to
2108
2127
enable various matrix operations.
2109
2128
2110
-
config ARM64_MODULE_PLTS
2111
-
bool "Use PLTs to allow module memory to spill over into vmalloc area"
2112
-
depends on MODULES
2113
-
select HAVE_MOD_ARCH_SPECIFIC
2114
-
help
2115
-
Allocate PLTs when loading modules so that jumps and calls whose
2116
-
targets are too far away for their relative offsets to be encoded
2117
-
in the instructions themselves can be bounced via veneers in the
2118
-
module's PLT. This allows modules to be allocated in the generic
2119
-
vmalloc area after the dedicated module memory area has been
2120
-
exhausted.
2121
-
2122
-
When running with address space randomization (KASLR), the module
2123
-
region itself may be too far away for ordinary relative jumps and
2124
-
calls, and so in that case, module PLTs are required and cannot be
2125
-
disabled.
2126
-
2127
-
Specific errata workaround(s) might also force module PLTs to be
2128
-
enabled (ARM64_ERRATUM_843419).
2129
-
2130
2129
config ARM64_PSEUDO_NMI
2131
2130
bool "Support for NMI-like interrupts"
2132
2131
select ARM_GIC_V3
@@ -2167,7 +2166,6 @@ config RELOCATABLE
2167
2166
2168
2167
config RANDOMIZE_BASE
2169
2168
bool "Randomize the address of the kernel image"
2170
-
select ARM64_MODULE_PLTS if MODULES
2171
2169
select RELOCATABLE
2172
2170
help
2173
2171
Randomizes the virtual address at which the kernel image is
0 commit comments