diff options
Diffstat (limited to 'arch/arm64/Kconfig')
-rw-r--r-- | arch/arm64/Kconfig | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 839f48c26ef0..f3b584be76d7 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
@@ -1,7 +1,6 @@ | |||
1 | config ARM64 | 1 | config ARM64 |
2 | def_bool y | 2 | def_bool y |
3 | select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE | 3 | select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE |
4 | select ARCH_HAS_OPP | ||
5 | select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST | 4 | select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST |
6 | select ARCH_USE_CMPXCHG_LOCKREF | 5 | select ARCH_USE_CMPXCHG_LOCKREF |
7 | select ARCH_SUPPORTS_ATOMIC_RMW | 6 | select ARCH_SUPPORTS_ATOMIC_RMW |
@@ -11,6 +10,8 @@ config ARM64 | |||
11 | select ARM_AMBA | 10 | select ARM_AMBA |
12 | select ARM_ARCH_TIMER | 11 | select ARM_ARCH_TIMER |
13 | select ARM_GIC | 12 | select ARM_GIC |
13 | select AUDIT_ARCH_COMPAT_GENERIC | ||
14 | select ARM_GIC_V3 | ||
14 | select BUILDTIME_EXTABLE_SORT | 15 | select BUILDTIME_EXTABLE_SORT |
15 | select CLONE_BACKWARDS | 16 | select CLONE_BACKWARDS |
16 | select COMMON_CLK | 17 | select COMMON_CLK |
@@ -29,10 +30,12 @@ config ARM64 | |||
29 | select GENERIC_STRNLEN_USER | 30 | select GENERIC_STRNLEN_USER |
30 | select GENERIC_TIME_VSYSCALL | 31 | select GENERIC_TIME_VSYSCALL |
31 | select HARDIRQS_SW_RESEND | 32 | select HARDIRQS_SW_RESEND |
33 | select HAVE_ARCH_AUDITSYSCALL | ||
32 | select HAVE_ARCH_JUMP_LABEL | 34 | select HAVE_ARCH_JUMP_LABEL |
33 | select HAVE_ARCH_KGDB | 35 | select HAVE_ARCH_KGDB |
34 | select HAVE_ARCH_TRACEHOOK | 36 | select HAVE_ARCH_TRACEHOOK |
35 | select HAVE_C_RECORDMCOUNT | 37 | select HAVE_C_RECORDMCOUNT |
38 | select HAVE_CC_STACKPROTECTOR | ||
36 | select HAVE_DEBUG_BUGVERBOSE | 39 | select HAVE_DEBUG_BUGVERBOSE |
37 | select HAVE_DEBUG_KMEMLEAK | 40 | select HAVE_DEBUG_KMEMLEAK |
38 | select HAVE_DMA_API_DEBUG | 41 | select HAVE_DMA_API_DEBUG |
@@ -63,6 +66,7 @@ config ARM64 | |||
63 | select RTC_LIB | 66 | select RTC_LIB |
64 | select SPARSE_IRQ | 67 | select SPARSE_IRQ |
65 | select SYSCTL_EXCEPTION_TRACE | 68 | select SYSCTL_EXCEPTION_TRACE |
69 | select HAVE_CONTEXT_TRACKING | ||
66 | help | 70 | help |
67 | ARM 64-bit (AArch64) Linux support. | 71 | ARM 64-bit (AArch64) Linux support. |
68 | 72 | ||
@@ -155,14 +159,63 @@ endmenu | |||
155 | 159 | ||
156 | menu "Kernel Features" | 160 | menu "Kernel Features" |
157 | 161 | ||
162 | choice | ||
163 | prompt "Page size" | ||
164 | default ARM64_4K_PAGES | ||
165 | help | ||
166 | Page size (translation granule) configuration. | ||
167 | |||
168 | config ARM64_4K_PAGES | ||
169 | bool "4KB" | ||
170 | help | ||
171 | This feature enables 4KB pages support. | ||
172 | |||
158 | config ARM64_64K_PAGES | 173 | config ARM64_64K_PAGES |
159 | bool "Enable 64KB pages support" | 174 | bool "64KB" |
160 | help | 175 | help |
161 | This feature enables 64KB pages support (4KB by default) | 176 | This feature enables 64KB pages support (4KB by default) |
162 | allowing only two levels of page tables and faster TLB | 177 | allowing only two levels of page tables and faster TLB |
163 | look-up. AArch32 emulation is not available when this feature | 178 | look-up. AArch32 emulation is not available when this feature |
164 | is enabled. | 179 | is enabled. |
165 | 180 | ||
181 | endchoice | ||
182 | |||
183 | choice | ||
184 | prompt "Virtual address space size" | ||
185 | default ARM64_VA_BITS_39 if ARM64_4K_PAGES | ||
186 | default ARM64_VA_BITS_42 if ARM64_64K_PAGES | ||
187 | help | ||
188 | Allows choosing one of multiple possible virtual address | ||
189 | space sizes. The level of translation table is determined by | ||
190 | a combination of page size and virtual address space size. | ||
191 | |||
192 | config ARM64_VA_BITS_39 | ||
193 | bool "39-bit" | ||
194 | depends on ARM64_4K_PAGES | ||
195 | |||
196 | config ARM64_VA_BITS_42 | ||
197 | bool "42-bit" | ||
198 | depends on ARM64_64K_PAGES | ||
199 | |||
200 | config ARM64_VA_BITS_48 | ||
201 | bool "48-bit" | ||
202 | depends on BROKEN | ||
203 | |||
204 | endchoice | ||
205 | |||
206 | config ARM64_VA_BITS | ||
207 | int | ||
208 | default 39 if ARM64_VA_BITS_39 | ||
209 | default 42 if ARM64_VA_BITS_42 | ||
210 | default 48 if ARM64_VA_BITS_48 | ||
211 | |||
212 | config ARM64_PGTABLE_LEVELS | ||
213 | int | ||
214 | default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42 | ||
215 | default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48 | ||
216 | default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39 | ||
217 | default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48 | ||
218 | |||
166 | config CPU_BIG_ENDIAN | 219 | config CPU_BIG_ENDIAN |
167 | bool "Build big-endian kernel" | 220 | bool "Build big-endian kernel" |
168 | help | 221 | help |