nvme: optimise io_uring passthrough completion
[linux-block.git] / arch / powerpc / platforms / Kconfig.cputype
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
af1725d2
CL
2config PPC32
3 bool
4 default y if !PPC64
5
a0ae9c7c
AB
6config PPC64
7 bool "64-bit kernel"
78989f0a 8 select ZLIB_DEFLATE
a0ae9c7c
AB
9 help
10 This option selects whether a 32-bit or a 64-bit kernel
11 will be built.
12
13menu "Processor support"
14choice
15 prompt "Processor Type"
16 depends on PPC32
a0ae9c7c 17 help
b9fd305d 18 There are five families of 32 bit PowerPC chips supported.
f0ed73f3 19 The most common ones are the desktop and server CPUs (603,
b9fd305d 20 604, 740, 750, 74xx) CPUs from Freescale and IBM, with their
e177edcd 21 embedded 512x/52xx/82xx/83xx/86xx counterparts.
39c8bf2b 22 The other embedded parts, namely 4xx, 8xx and e500
b9fd305d
AB
23 (85xx) each form a family of their own that is not compatible
24 with the others.
25
26 If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
27
a6a50d84 28config PPC_BOOK3S_32
f0ed73f3 29 bool "512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx"
7d68c891 30 imply PPC_FPU
be34fff0 31 select PPC_HAVE_PMU_SUPPORT
db972a37 32 select HAVE_ARCH_VMAP_STACK
a0ae9c7c 33
a0ae9c7c
AB
34config PPC_85xx
35 bool "Freescale 85xx"
688de017 36 select PPC_E500
a0ae9c7c 37
a0ae9c7c
AB
38config PPC_8xx
39 bool "Freescale 8xx"
855f9a8e 40 select ARCH_SUPPORTS_HUGETLBFS
a0ae9c7c 41 select FSL_SOC
13dac4e3 42 select PPC_KUEP
99b22916 43 select HAVE_ARCH_VMAP_STACK
34536d78 44 select HUGETLBFS
a0ae9c7c
AB
45
46config 40x
47 bool "AMCC 40x"
48 select PPC_DCR_NATIVE
9dae8afd 49 select PPC_UDBG_16550
93173ce2 50 select 4xx_SOC
eb01d42a 51 select HAVE_PCI
fcf9bb6d 52 select PPC_KUEP if PPC_KUAP
a0ae9c7c
AB
53
54config 44x
e7f75ad0 55 bool "AMCC 44x, 46x or 47x"
a0ae9c7c 56 select PPC_DCR_NATIVE
1d5499b5 57 select PPC_UDBG_16550
93173ce2 58 select 4xx_SOC
eb01d42a 59 select HAVE_PCI
4ee7084e 60 select PHYS_64BIT
ee263160 61 select PPC_KUEP
a0ae9c7c 62
a0ae9c7c
AB
63endchoice
64
44e9754d
CL
65config PPC_BOOK3S_603
66 bool "Support for 603 SW loaded TLB"
67 depends on PPC_BOOK3S_32
68 default y
69 help
70 Provide support for processors based on the 603 cores. Those
71 processors don't have a HASH MMU and provide SW TLB loading.
72
73config PPC_BOOK3S_604
74 bool "Support for 604+ HASH MMU" if PPC_BOOK3S_603
75 depends on PPC_BOOK3S_32
76 default y
77 help
78 Provide support for processors not based on the 603 cores.
79 Those processors have a HASH MMU.
80
2d27cfd3
BH
81choice
82 prompt "Processor Type"
5b7c3c91 83 depends on PPC64
2d27cfd3
BH
84 help
85 There are two families of 64 bit PowerPC chips supported.
86 The most common ones are the desktop and server CPUs
471d7ff8 87 (POWER5, 970, POWER5+, POWER6, POWER7, POWER8, POWER9 ...)
2d27cfd3
BH
88
89 The other are the "embedded" processors compliant with the
90 "Book 3E" variant of the architecture
91
92config PPC_BOOK3S_64
93 bool "Server processors"
5b7c3c91 94 select PPC_FPU
5adfd346 95 select PPC_HAVE_PMU_SUPPORT
ab624762 96 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
1e866974 97 select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
310d2e83 98 select ARCH_ENABLE_SPLIT_PMD_PTLOCK
a0820ff3 99 select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
855f9a8e 100 select ARCH_SUPPORTS_HUGETLBFS
c34a51ce 101 select ARCH_SUPPORTS_NUMA_BALANCING
feac00aa
AK
102 select HAVE_MOVE_PMD
103 select HAVE_MOVE_PUD
527518f1 104 select IRQ_WORK
c2857374 105 select PPC_64S_HASH_MMU if !PPC_RADIX_MMU
41b7a347 106 select KASAN_VMALLOC if KASAN
5b7c3c91 107
2d27cfd3
BH
108config PPC_BOOK3E_64
109 bool "Embedded processors"
688de017 110 select PPC_E500
0069f3d1 111 select PPC_E500MC
2d27cfd3 112 select PPC_FPU # Make it a choice ?
1ece355b 113 select PPC_SMP_MUXED_IPI
440bc685 114 select PPC_DOORBELL
63703f37 115 select ZONE_DMA
2d27cfd3
BH
116
117endchoice
118
d23c6fb4
AB
119choice
120 prompt "CPU selection"
d23c6fb4
AB
121 help
122 This will create a kernel which is optimised for a particular CPU.
123 The resulting kernel may not run on other CPUs, so use this with care.
124
125 If unsure, select Generic.
126
45f7091a 127config POWERPC64_CPU
7fd123e5 128 bool "Generic (POWER5 and PowerPC 970 and above)"
d6b551b8
CL
129 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
130 select PPC_64S_HASH_MMU
d23c6fb4 131
45f7091a 132config POWERPC64_CPU
a73657ea 133 bool "Generic (POWER8 and above)"
d6b551b8 134 depends on PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN
a73657ea 135 select ARCH_HAS_FAST_MULTIPLIER
c2857374 136 select PPC_64S_HASH_MMU
b86cf14f 137 select PPC_HAS_LBARX_LHARX
a73657ea 138
446cda1b 139config POWERPC_CPU
0e00a8c9 140 bool "Generic 32 bits powerpc"
2255411d 141 depends on PPC_BOOK3S_32
0e00a8c9 142
d23c6fb4
AB
143config CELL_CPU
144 bool "Cell Broadband Engine"
686245be 145 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
4b10306e 146 depends on !CC_IS_CLANG
c2857374 147 select PPC_64S_HASH_MMU
d23c6fb4 148
7fd123e5
NP
149config PPC_970_CPU
150 bool "PowerPC 970 (including PowerPC G5)"
686245be 151 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
c2857374 152 select PPC_64S_HASH_MMU
d23c6fb4
AB
153
154config POWER6_CPU
155 bool "POWER6"
686245be 156 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
c2857374 157 select PPC_64S_HASH_MMU
d23c6fb4
AB
158
159config POWER7_CPU
160 bool "POWER7"
01718ba6 161 depends on PPC_BOOK3S_64
423216ed 162 select ARCH_HAS_FAST_MULTIPLIER
c2857374 163 select PPC_64S_HASH_MMU
b86cf14f 164 select PPC_HAS_LBARX_LHARX
01718ba6 165
ff2e466a
AB
166config POWER8_CPU
167 bool "POWER8"
168 depends on PPC_BOOK3S_64
423216ed 169 select ARCH_HAS_FAST_MULTIPLIER
c2857374 170 select PPC_64S_HASH_MMU
b86cf14f 171 select PPC_HAS_LBARX_LHARX
01718ba6 172
4b7e5532
NP
173config POWER9_CPU
174 bool "POWER9"
175 depends on PPC_BOOK3S_64
176 select ARCH_HAS_FAST_MULTIPLIER
b86cf14f 177 select PPC_HAS_LBARX_LHARX
4b7e5532 178
4b2a9315
NP
179config POWER10_CPU
180 bool "POWER10"
181 depends on PPC_BOOK3S_64
182 select ARCH_HAS_FAST_MULTIPLIER
dc5dac74 183 select PPC_HAVE_PREFIXED_SUPPORT
7e3a68be 184 select PPC_HAVE_PCREL_SUPPORT
4b2a9315 185
01718ba6
SW
186config E5500_CPU
187 bool "Freescale e5500"
688de017 188 depends on PPC64 && PPC_E500
01718ba6
SW
189
190config E6500_CPU
191 bool "Freescale e6500"
688de017 192 depends on PPC64 && PPC_E500
4b10306e 193 depends on !CC_IS_CLANG
b86cf14f 194 select PPC_HAS_LBARX_LHARX
d23c6fb4 195
ff27d920
CL
196config 405_CPU
197 bool "40x family"
198 depends on 40x
4b10306e 199 depends on !CC_IS_CLANG
ff27d920 200
2255411d
CL
201config 440_CPU
202 bool "440 (44x family)"
203 depends on 44x
204
205config 464_CPU
206 bool "464 (44x family)"
207 depends on 44x
4b10306e 208 depends on !CC_IS_CLANG
2255411d
CL
209
210config 476_CPU
211 bool "476 (47x family)"
212 depends on PPC_47x
4b10306e 213 depends on !CC_IS_CLANG
2255411d 214
0e00a8c9
CL
215config 860_CPU
216 bool "8xx family"
217 depends on PPC_8xx
4b10306e 218 depends on !CC_IS_CLANG
0e00a8c9 219
d6690b1a
CL
220config E300C2_CPU
221 bool "e300c2 (832x)"
222 depends on PPC_BOOK3S_32
4b10306e 223 depends on !CC_IS_CLANG
d6690b1a
CL
224
225config E300C3_CPU
226 bool "e300c3 (831x)"
227 depends on PPC_BOOK3S_32
4b10306e 228 depends on !CC_IS_CLANG
d6690b1a 229
9bd10b64
MM
230config G4_CPU
231 bool "G4 (74xx)"
232 depends on PPC_BOOK3S_32
233 select ALTIVEC
234
446cda1b
CL
235config E500_CPU
236 bool "e500 (8540)"
237 depends on PPC_85xx && !PPC_E500MC
238
239config E500MC_CPU
240 bool "e500mc"
241 depends on PPC_85xx && PPC_E500MC
242
243config TOOLCHAIN_DEFAULT_CPU
244 bool "Rely on the toolchain's implicit default CPU"
446cda1b 245
d23c6fb4
AB
246endchoice
247
cc62d20c
CL
248config TARGET_CPU_BOOL
249 bool
45f7091a 250 default !TOOLCHAIN_DEFAULT_CPU
cc62d20c
CL
251
252config TARGET_CPU
253 string
254 depends on TARGET_CPU_BOOL
255 default "cell" if CELL_CPU
7fd123e5 256 default "970" if PPC_970_CPU
cc62d20c
CL
257 default "power6" if POWER6_CPU
258 default "power7" if POWER7_CPU
259 default "power8" if POWER8_CPU
260 default "power9" if POWER9_CPU
4b2a9315 261 default "power10" if POWER10_CPU
77e82fa1 262 default "e5500" if E5500_CPU
45f7091a
CL
263 default "e6500" if E6500_CPU
264 default "power4" if POWERPC64_CPU && !CPU_LITTLE_ENDIAN
265 default "power8" if POWERPC64_CPU && CPU_LITTLE_ENDIAN
ff27d920 266 default "405" if 405_CPU
2255411d
CL
267 default "440" if 440_CPU
268 default "464" if 464_CPU
269 default "476" if 476_CPU
0e00a8c9 270 default "860" if 860_CPU
d6690b1a
CL
271 default "e300c2" if E300C2_CPU
272 default "e300c3" if E300C3_CPU
9bd10b64 273 default "G4" if G4_CPU
446cda1b
CL
274 default "8540" if E500_CPU
275 default "e500mc" if E500MC_CPU
276 default "powerpc" if POWERPC_CPU
cc62d20c 277
48c93112
BH
278config PPC_BOOK3S
279 def_bool y
280 depends on PPC_BOOK3S_32 || PPC_BOOK3S_64
28794d34 281
688de017 282config PPC_E500
39aef685 283 select FSL_EMB_PERFMON
a0ae9c7c 284 bool
3e731858
CL
285 select ARCH_SUPPORTS_HUGETLBFS if PHYS_64BIT || PPC64
286 select PPC_SMP_MUXED_IPI
287 select PPC_DOORBELL
288 select PPC_KUEP
a0ae9c7c 289
3dfa8773
KG
290config PPC_E500MC
291 bool "e500mc Support"
292 select PPC_FPU
555eae97 293 select COMMON_CLK
688de017 294 depends on PPC_E500
9653018b
SW
295 help
296 This must be enabled for running on e500mc (and derivatives
297 such as e5500/e6500), and must be disabled for running on
298 e500v1 or e500v2.
3dfa8773 299
b6254ced
CL
300config PPC_FPU_REGS
301 bool
302
a0ae9c7c 303config PPC_FPU
7d68c891 304 bool "Support for Floating Point Unit (FPU)" if PPC_MPC832x
a0ae9c7c 305 default y if PPC64
b6254ced 306 select PPC_FPU_REGS
7d68c891
CL
307 help
308 This must be enabled to support the Floating Point Unit
309 Most 6xx have an FPU but e300c2 core (mpc832x) don't have
310 an FPU, so when building an embedded kernel for that target
311 you can disable FPU support.
312
313 If unsure say Y.
a0ae9c7c 314
5753c082
KG
315config FSL_EMB_PERFMON
316 bool "Freescale Embedded Perfmon"
688de017 317 depends on PPC_E500 || PPC_83xx
5753c082
KG
318 help
319 This is the Performance Monitor support found on the e500 core
320 and some e300 cores (c3 and c4). Select this only if your
321 core supports the Embedded Performance Monitor APU
322
a1110654
SW
323config FSL_EMB_PERF_EVENT
324 bool
325 depends on FSL_EMB_PERFMON && PERF_EVENTS && !PPC_PERF_CTRS
326 default y
327
328config FSL_EMB_PERF_EVENT_E500
329 bool
688de017 330 depends on FSL_EMB_PERF_EVENT && PPC_E500
a1110654
SW
331 default y
332
a0ae9c7c
AB
333config 4xx
334 bool
335 depends on 40x || 44x
336 default y
337
338config BOOKE
339 bool
73d11498 340 depends on PPC_E500 || 44x
a0ae9c7c
AB
341 default y
342
047a6fd4
CL
343config BOOKE_OR_40x
344 bool
345 depends on BOOKE || 40x
346 default y
347
a0ae9c7c
AB
348config PTE_64BIT
349 bool
688de017 350 depends on 44x || PPC_E500 || PPC_86xx
4ee7084e 351 default y if PHYS_64BIT
a0ae9c7c
AB
352
353config PHYS_64BIT
688de017
CL
354 bool 'Large physical address support' if PPC_E500 || PPC_86xx
355 depends on (44x || PPC_E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx
d4a451d5 356 select PHYS_ADDR_T_64BIT
a7f7f624 357 help
a0ae9c7c 358 This option enables kernel support for larger than 32-bit physical
4ee7084e
BB
359 addresses. This feature may not be available on all cores.
360
361 If you have more than 3.5GB of RAM or so, you also need to enable
362 SWIOTLB under Kernel Options for this to work. The actual number
363 is platform-dependent.
a0ae9c7c
AB
364
365 If in doubt, say N here.
366
367config ALTIVEC
368 bool "AltiVec Support"
d6b551b8 369 depends on PPC_BOOK3S || (PPC_E500MC && PPC64 && !E5500_CPU)
38958633 370 select PPC_FPU
a7f7f624 371 help
a0ae9c7c
AB
372 This option enables kernel support for the Altivec extensions to the
373 PowerPC processor. The kernel currently supports saving and restoring
374 altivec registers, and turning on the 'altivec enable' bit so user
375 processes can execute altivec instructions.
376
377 This option is only usefully if you have a processor that supports
378 altivec (G4, otherwise known as 74xx series), but does not have
379 any affect on a non-altivec cpu (it does, however add code to the
380 kernel).
381
382 If in doubt, say Y here.
383
96d5b52c
MN
384config VSX
385 bool "VSX Support"
804ece07 386 depends on PPC_BOOK3S_64 && ALTIVEC && PPC_FPU
a7f7f624 387 help
96d5b52c
MN
388
389 This option enables kernel support for the Vector Scaler extensions
390 to the PowerPC processor. The kernel currently supports saving and
391 restoring VSX registers, and turning on the 'VSX enable' bit so user
392 processes can execute VSX instructions.
393
394 This option is only useful if you have a processor that supports
395 VSX (P7 and above), but does not have any affect on a non-VSX
396 CPUs (it does, however add code to the kernel).
397
398 If in doubt, say Y here.
399
3477e71d
MC
400config SPE_POSSIBLE
401 def_bool y
688de017 402 depends on PPC_E500 && !PPC_E500MC
3477e71d 403
a0ae9c7c
AB
404config SPE
405 bool "SPE Support"
3477e71d 406 depends on SPE_POSSIBLE
a0ae9c7c 407 default y
a7f7f624 408 help
a0ae9c7c
AB
409 This option enables kernel support for the Signal Processing
410 Extensions (SPE) to the PowerPC processor. The kernel currently
411 supports saving and restoring SPE registers, and turning on the
412 'spe enable' bit so user processes can execute SPE instructions.
413
414 This option is only useful if you have a processor that supports
415 SPE (e500, otherwise known as 85xx series), but does not have any
416 effect on a non-spe cpu (it does, however add code to the kernel).
417
418 If in doubt, say Y here.
419
c2857374
NP
420config PPC_64S_HASH_MMU
421 bool "Hash MMU Support"
422 depends on PPC_BOOK3S_64
c2857374
NP
423 default y
424 help
425 Enable support for the Power ISA Hash style MMU. This is implemented
426 by all IBM Power and other 64-bit Book3S CPUs before ISA v3.0. The
427 OpenPOWER ISA does not mandate the hash MMU and some CPUs do not
428 implement it (e.g., Microwatt).
429
430 Note that POWER9 PowerVM platforms only support the hash
431 MMU. From POWER10 radix is also supported by PowerVM.
432
433 If you're unsure, say Y.
434
566ca99a
AK
435config PPC_RADIX_MMU
436 bool "Radix MMU Support"
57caddae 437 depends on PPC_BOOK3S_64
4eb0716e 438 select ARCH_HAS_GIGANTIC_PAGE
566ca99a
AK
439 default y
440 help
441 Enable support for the Power ISA 3.0 Radix style MMU. Currently this
442 is only implemented by IBM Power9 CPUs, if you don't have one of them
443 you can probably disable this.
444
1fd6c022 445config PPC_RADIX_MMU_DEFAULT
c2857374
NP
446 bool "Default to using the Radix MMU when possible" if PPC_64S_HASH_MMU
447 depends on PPC_BOOK3S_64
1fd6c022
ME
448 depends on PPC_RADIX_MMU
449 default y
450 help
451 When the hardware supports the Radix MMU, default to using it unless
452 "disable_radix[=yes]" is specified on the kernel command line.
453
454 If this option is disabled, the Hash MMU will be used by default,
455 unless "disable_radix=no" is specified on the kernel command line.
456
457 If you're unsure, say Y.
458
dc5dac74
NP
459config PPC_KERNEL_PREFIXED
460 depends on PPC_HAVE_PREFIXED_SUPPORT
461 depends on CC_HAS_PREFIXED
462 default n
463 bool "Build Kernel with Prefixed Instructions"
464 help
465 POWER10 and later CPUs support prefixed instructions, 8 byte
466 instructions that include large immediate, pc relative addressing,
467 and various floating point, vector, MMA.
468
469 This option builds the kernel with prefixed instructions, and
470 allows a pc relative addressing option to be selected.
471
472 Kernel support for prefixed instructions in applications and guests
473 is not affected by this option.
474
7e3a68be
NP
475config PPC_KERNEL_PCREL
476 depends on PPC_HAVE_PCREL_SUPPORT
477 depends on PPC_HAVE_PREFIXED_SUPPORT
478 depends on CC_HAS_PCREL
479 default n
480 select PPC_KERNEL_PREFIXED
481 bool "Build Kernel with PC-Relative addressing model"
482 help
483 POWER10 and later CPUs support pc relative addressing. Recent
484 compilers have support for an ELF ABI extension for a pc relative
485 ABI.
486
487 This option builds the kernel with the pc relative ABI model.
488
0fb1c25a 489config PPC_KUEP
fcf9bb6d 490 bool "Kernel Userspace Execution Prevention" if !40x
fcf9bb6d 491 default y if !40x
0fb1c25a
CL
492 help
493 Enable support for Kernel Userspace Execution Prevention (KUEP)
494
495 If you're unsure, say Y.
496
de78a9c4
CL
497config PPC_KUAP
498 bool "Kernel Userspace Access Protection"
9f5bd8f1 499 default y
de78a9c4
CL
500 help
501 Enable support for Kernel Userspace Access Protection (KUAP)
502
503 If you're unsure, say Y.
504
890274c2
ME
505config PPC_KUAP_DEBUG
506 bool "Extra debugging for Kernel Userspace Access Protection"
e3c02f25 507 depends on PPC_KUAP
890274c2
ME
508 help
509 Add extra debugging for Kernel Userspace Access Protection (KUAP)
510 If you're unsure, say N.
511
227ae625
AK
512config PPC_PKEY
513 def_bool y
514 depends on PPC_BOOK3S_64
515 depends on PPC_MEM_KEYS || PPC_KUAP || PPC_KUEP
516
f7fb506f 517
5e696617
BH
518config PPC_MMU_NOHASH
519 def_bool y
26598f28 520 depends on !PPC_BOOK3S
5e696617 521
105988c0 522config PPC_HAVE_PMU_SUPPORT
5f017a56 523 bool
105988c0 524
dc5dac74
NP
525config PPC_HAVE_PREFIXED_SUPPORT
526 bool
527
7e3a68be
NP
528config PPC_HAVE_PCREL_SUPPORT
529 bool
530
22697da3
KJ
531config PMU_SYSFS
532 bool "Create PMU SPRs sysfs file"
533 default n
534 help
535 This option enables sysfs file creation for PMU SPRs like MMCR* and PMC*.
536
105988c0 537config PPC_PERF_CTRS
5f017a56
KK
538 def_bool y
539 depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT
540 help
541 This enables the powerpc-specific perf_event back-end.
105988c0 542
ebbe9d7d
ME
543config FORCE_SMP
544 # Allow platforms to force SMP=y by selecting this
545 bool
ebbe9d7d
ME
546 select SMP
547
a0ae9c7c 548config SMP
772fd56d 549 depends on PPC_BOOK3S || PPC_E500 || PPC_47x
a978e139 550 select GENERIC_IRQ_MIGRATION
ebbe9d7d 551 bool "Symmetric multi-processing support" if !FORCE_SMP
a7f7f624 552 help
a0ae9c7c
AB
553 This enables support for systems with more than one CPU. If you have
554 a system with only one CPU, say N. If you have a system with more
555 than one CPU, say Y. Note that the kernel does not currently
556 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
557 since they have inadequate hardware support for multiprocessor
558 operation.
559
560 If you say N here, the kernel will run on single and multiprocessor
561 machines, but will use only one CPU of a multiprocessor machine. If
562 you say Y here, the kernel will run on single-processor machines.
563 On a single-processor machine, the kernel will run faster if you say
564 N here.
565
566 If you don't know what to do here, say N.
567
568config NR_CPUS
c176c3d5
CL
569 int "Maximum number of CPUs (2-8192)" if SMP
570 range 2 8192 if SMP
571 default "1" if !SMP
a0ae9c7c
AB
572 default "32" if PPC64
573 default "4"
574
575config NOT_COHERENT_CACHE
576 bool
39c8bf2b 577 depends on 4xx || PPC_8xx || PPC_MPC512x || \
92863569 578 GAMECUBE_COMMON || AMIGAONE
f2902a2f 579 select ARCH_HAS_DMA_PREP_COHERENT
461db2bd
CH
580 select ARCH_HAS_SYNC_DMA_FOR_DEVICE
581 select ARCH_HAS_SYNC_DMA_FOR_CPU
f2902a2f 582 select DMA_DIRECT_REMAP
e7f75ad0 583 default n if PPC_47x
a0ae9c7c
AB
584 default y
585
f8eb77d6 586config CHECK_CACHE_COHERENCY
a0ae9c7c
AB
587 bool
588
440bc685
IM
589config PPC_DOORBELL
590 bool
440bc685 591
a0ae9c7c 592endmenu
7c105b63 593
e0d00591
ME
594config VDSO32
595 def_bool y
231b232d 596 depends on PPC32 || COMPAT
e0d00591
ME
597 help
598 This symbol controls whether we build the 32-bit VDSO. We obviously
599 want to do that if we're building a 32-bit kernel. If we're building
231b232d
ME
600 a 64-bit kernel then we only want a 32-bit VDSO if we're also enabling
601 COMPAT.
e0d00591 602
962bc221
AB
603choice
604 prompt "Endianness selection"
605 default CPU_BIG_ENDIAN
7c105b63
AB
606 help
607 This option selects whether a big endian or little endian kernel will
608 be built.
609
962bc221
AB
610config CPU_BIG_ENDIAN
611 bool "Build big endian kernel"
612 help
613 Build a big endian kernel.
614
615 If unsure, select this option.
616
617config CPU_LITTLE_ENDIAN
618 bool "Build little endian kernel"
d4d4add9 619 depends on PPC_BOOK3S_64
147c0516 620 select PPC64_BOOT_WRAPPER
962bc221
AB
621 help
622 Build a little endian kernel.
623
7c105b63
AB
624 Note that if cross compiling a little endian kernel,
625 CROSS_COMPILE must point to a toolchain capable of targeting
626 little endian powerpc.
962bc221
AB
627
628endchoice
147c0516 629
661aa880 630config PPC64_ELF_ABI_V1
5017b459 631 def_bool PPC64 && (CPU_BIG_ENDIAN && !PPC64_BIG_ENDIAN_ELF_ABI_V2)
661aa880
CL
632
633config PPC64_ELF_ABI_V2
5017b459 634 def_bool PPC64 && !PPC64_ELF_ABI_V1
661aa880 635
147c0516
CLG
636config PPC64_BOOT_WRAPPER
637 def_bool n
638 depends on CPU_LITTLE_ENDIAN