1config PPC64 2 bool "64-bit kernel" 3 default n 4 select HAVE_VIRT_CPU_ACCOUNTING 5 select ZLIB_DEFLATE 6 help 7 This option selects whether a 32-bit or a 64-bit kernel 8 will be built. 9 10menu "Processor support" 11choice 12 prompt "Processor Type" 13 depends on PPC32 14 help 15 There are five families of 32 bit PowerPC chips supported. 16 The most common ones are the desktop and server CPUs (601, 603, 17 604, 740, 750, 74xx) CPUs from Freescale and IBM, with their 18 embedded 512x/52xx/82xx/83xx/86xx counterparts. 19 The other embedded parts, namely 4xx, 8xx, e200 (55xx) and e500 20 (85xx) each form a family of their own that is not compatible 21 with the others. 22 23 If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx. 24 25config PPC_BOOK3S_32 26 bool "512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx" 27 select PPC_FPU 28 29config PPC_85xx 30 bool "Freescale 85xx" 31 select E500 32 33config PPC_8xx 34 bool "Freescale 8xx" 35 select FSL_SOC 36 select 8xx 37 select PPC_LIB_RHEAP 38 39config 40x 40 bool "AMCC 40x" 41 select PPC_DCR_NATIVE 42 select PPC_UDBG_16550 43 select 4xx_SOC 44 select PPC_PCI_CHOICE 45 46config 44x 47 bool "AMCC 44x, 46x or 47x" 48 select PPC_DCR_NATIVE 49 select PPC_UDBG_16550 50 select 4xx_SOC 51 select PPC_PCI_CHOICE 52 select PHYS_64BIT 53 54config E200 55 bool "Freescale e200" 56 57endchoice 58 59choice 60 prompt "Processor Type" 61 depends on PPC64 62 help 63 There are two families of 64 bit PowerPC chips supported. 64 The most common ones are the desktop and server CPUs 65 (POWER4, POWER5, 970, POWER5+, POWER6, POWER7, POWER8 ...) 66 67 The other are the "embedded" processors compliant with the 68 "Book 3E" variant of the architecture 69 70config PPC_BOOK3S_64 71 bool "Server processors" 72 select PPC_FPU 73 select PPC_HAVE_PMU_SUPPORT 74 select SYS_SUPPORTS_HUGETLBFS 75 select HAVE_ARCH_TRANSPARENT_HUGEPAGE if PPC_64K_PAGES 76 select ARCH_SUPPORTS_NUMA_BALANCING 77 select IRQ_WORK 78 79config PPC_BOOK3E_64 80 bool "Embedded processors" 81 select PPC_FPU # Make it a choice ? 82 select PPC_SMP_MUXED_IPI 83 select PPC_DOORBELL 84 85endchoice 86 87choice 88 prompt "CPU selection" 89 depends on PPC64 90 default GENERIC_CPU 91 help 92 This will create a kernel which is optimised for a particular CPU. 93 The resulting kernel may not run on other CPUs, so use this with care. 94 95 If unsure, select Generic. 96 97config GENERIC_CPU 98 bool "Generic" 99 depends on !CPU_LITTLE_ENDIAN 100 101config CELL_CPU 102 bool "Cell Broadband Engine" 103 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN 104 105config POWER4_CPU 106 bool "POWER4" 107 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN 108 109config POWER5_CPU 110 bool "POWER5" 111 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN 112 113config POWER6_CPU 114 bool "POWER6" 115 depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN 116 117config POWER7_CPU 118 bool "POWER7" 119 depends on PPC_BOOK3S_64 120 select ARCH_HAS_FAST_MULTIPLIER 121 122config POWER8_CPU 123 bool "POWER8" 124 depends on PPC_BOOK3S_64 125 select ARCH_HAS_FAST_MULTIPLIER 126 127config E5500_CPU 128 bool "Freescale e5500" 129 depends on E500 130 131config E6500_CPU 132 bool "Freescale e6500" 133 depends on E500 134 135endchoice 136 137config PPC_BOOK3S 138 def_bool y 139 depends on PPC_BOOK3S_32 || PPC_BOOK3S_64 140 141config PPC_BOOK3E 142 def_bool y 143 depends on PPC_BOOK3E_64 144 145config 6xx 146 def_bool y 147 depends on PPC32 && PPC_BOOK3S 148 select PPC_HAVE_PMU_SUPPORT 149 150# this is temp to handle compat with arch=ppc 151config 8xx 152 bool 153 154config E500 155 select FSL_EMB_PERFMON 156 select PPC_FSL_BOOK3E 157 bool 158 159config PPC_E500MC 160 bool "e500mc Support" 161 select PPC_FPU 162 select COMMON_CLK 163 depends on E500 164 help 165 This must be enabled for running on e500mc (and derivatives 166 such as e5500/e6500), and must be disabled for running on 167 e500v1 or e500v2. 168 169config PPC_FPU 170 bool 171 default y if PPC64 172 173config FSL_EMB_PERFMON 174 bool "Freescale Embedded Perfmon" 175 depends on E500 || PPC_83xx 176 help 177 This is the Performance Monitor support found on the e500 core 178 and some e300 cores (c3 and c4). Select this only if your 179 core supports the Embedded Performance Monitor APU 180 181config FSL_EMB_PERF_EVENT 182 bool 183 depends on FSL_EMB_PERFMON && PERF_EVENTS && !PPC_PERF_CTRS 184 default y 185 186config FSL_EMB_PERF_EVENT_E500 187 bool 188 depends on FSL_EMB_PERF_EVENT && E500 189 default y 190 191config 4xx 192 bool 193 depends on 40x || 44x 194 default y 195 196config BOOKE 197 bool 198 depends on E200 || E500 || 44x || PPC_BOOK3E 199 default y 200 201config FSL_BOOKE 202 bool 203 depends on (E200 || E500) && PPC32 204 default y 205 206# this is for common code between PPC32 & PPC64 FSL BOOKE 207config PPC_FSL_BOOK3E 208 bool 209 select FSL_EMB_PERFMON 210 select PPC_SMP_MUXED_IPI 211 select SYS_SUPPORTS_HUGETLBFS if PHYS_64BIT || PPC64 212 select PPC_DOORBELL 213 default y if FSL_BOOKE 214 215config PTE_64BIT 216 bool 217 depends on 44x || E500 || PPC_86xx 218 default y if PHYS_64BIT 219 220config PHYS_64BIT 221 bool 'Large physical address support' if E500 || PPC_86xx 222 depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx 223 ---help--- 224 This option enables kernel support for larger than 32-bit physical 225 addresses. This feature may not be available on all cores. 226 227 If you have more than 3.5GB of RAM or so, you also need to enable 228 SWIOTLB under Kernel Options for this to work. The actual number 229 is platform-dependent. 230 231 If in doubt, say N here. 232 233config ALTIVEC 234 bool "AltiVec Support" 235 depends on 6xx || PPC_BOOK3S_64 || (PPC_E500MC && PPC64) 236 ---help--- 237 This option enables kernel support for the Altivec extensions to the 238 PowerPC processor. The kernel currently supports saving and restoring 239 altivec registers, and turning on the 'altivec enable' bit so user 240 processes can execute altivec instructions. 241 242 This option is only usefully if you have a processor that supports 243 altivec (G4, otherwise known as 74xx series), but does not have 244 any affect on a non-altivec cpu (it does, however add code to the 245 kernel). 246 247 If in doubt, say Y here. 248 249config VSX 250 bool "VSX Support" 251 depends on PPC_BOOK3S_64 && ALTIVEC && PPC_FPU 252 ---help--- 253 254 This option enables kernel support for the Vector Scaler extensions 255 to the PowerPC processor. The kernel currently supports saving and 256 restoring VSX registers, and turning on the 'VSX enable' bit so user 257 processes can execute VSX instructions. 258 259 This option is only useful if you have a processor that supports 260 VSX (P7 and above), but does not have any affect on a non-VSX 261 CPUs (it does, however add code to the kernel). 262 263 If in doubt, say Y here. 264 265config PPC_ICSWX 266 bool "Support for PowerPC icswx coprocessor instruction" 267 depends on PPC_BOOK3S_64 268 default n 269 ---help--- 270 271 This option enables kernel support for the PowerPC Initiate 272 Coprocessor Store Word (icswx) coprocessor instruction on POWER7 273 or newer processors. 274 275 This option is only useful if you have a processor that supports 276 the icswx coprocessor instruction. It does not have any effect 277 on processors without the icswx coprocessor instruction. 278 279 This option slightly increases kernel memory usage. 280 281 If in doubt, say N here. 282 283config PPC_ICSWX_PID 284 bool "icswx requires direct PID management" 285 depends on PPC_ICSWX 286 default y 287 ---help--- 288 The PID register in server is used explicitly for ICSWX. In 289 embedded systems PID management is done by the system. 290 291config PPC_ICSWX_USE_SIGILL 292 bool "Should a bad CT cause a SIGILL?" 293 depends on PPC_ICSWX 294 default n 295 ---help--- 296 Should a bad CT used for "non-record form ICSWX" cause an 297 illegal instruction signal or should it be silent as 298 architected. 299 300 If in doubt, say N here. 301 302config SPE_POSSIBLE 303 def_bool y 304 depends on E200 || (E500 && !PPC_E500MC) 305 306config SPE 307 bool "SPE Support" 308 depends on SPE_POSSIBLE 309 default y 310 ---help--- 311 This option enables kernel support for the Signal Processing 312 Extensions (SPE) to the PowerPC processor. The kernel currently 313 supports saving and restoring SPE registers, and turning on the 314 'spe enable' bit so user processes can execute SPE instructions. 315 316 This option is only useful if you have a processor that supports 317 SPE (e500, otherwise known as 85xx series), but does not have any 318 effect on a non-spe cpu (it does, however add code to the kernel). 319 320 If in doubt, say Y here. 321 322config PPC_STD_MMU 323 def_bool y 324 depends on PPC_BOOK3S 325 326config PPC_STD_MMU_32 327 def_bool y 328 depends on PPC_STD_MMU && PPC32 329 330config PPC_STD_MMU_64 331 def_bool y 332 depends on PPC_STD_MMU && PPC64 333 334config PPC_MMU_NOHASH 335 def_bool y 336 depends on !PPC_STD_MMU 337 338config PPC_BOOK3E_MMU 339 def_bool y 340 depends on FSL_BOOKE || PPC_BOOK3E 341 342config PPC_MM_SLICES 343 bool 344 default y if (!PPC_FSL_BOOK3E && PPC64 && HUGETLB_PAGE) || (PPC_STD_MMU_64 && PPC_64K_PAGES) 345 default n 346 347config PPC_HAVE_PMU_SUPPORT 348 bool 349 350config PPC_PERF_CTRS 351 def_bool y 352 depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT 353 help 354 This enables the powerpc-specific perf_event back-end. 355 356config SMP 357 depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE || PPC_47x 358 bool "Symmetric multi-processing support" 359 ---help--- 360 This enables support for systems with more than one CPU. If you have 361 a system with only one CPU, say N. If you have a system with more 362 than one CPU, say Y. Note that the kernel does not currently 363 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors 364 since they have inadequate hardware support for multiprocessor 365 operation. 366 367 If you say N here, the kernel will run on single and multiprocessor 368 machines, but will use only one CPU of a multiprocessor machine. If 369 you say Y here, the kernel will run on single-processor machines. 370 On a single-processor machine, the kernel will run faster if you say 371 N here. 372 373 If you don't know what to do here, say N. 374 375config NR_CPUS 376 int "Maximum number of CPUs (2-8192)" 377 range 2 8192 378 depends on SMP 379 default "32" if PPC64 380 default "4" 381 382config NOT_COHERENT_CACHE 383 bool 384 depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON 385 default n if PPC_47x 386 default y 387 388config CHECK_CACHE_COHERENCY 389 bool 390 391config PPC_DOORBELL 392 bool 393 default n 394 395endmenu 396 397config VDSO32 398 def_bool y 399 depends on PPC32 || CPU_BIG_ENDIAN 400 help 401 This symbol controls whether we build the 32-bit VDSO. We obviously 402 want to do that if we're building a 32-bit kernel. If we're building 403 a 64-bit kernel then we only want a 32-bit VDSO if we're building for 404 big endian. That is because the only little endian configuration we 405 support is ppc64le which is 64-bit only. 406 407choice 408 prompt "Endianness selection" 409 default CPU_BIG_ENDIAN 410 help 411 This option selects whether a big endian or little endian kernel will 412 be built. 413 414config CPU_BIG_ENDIAN 415 bool "Build big endian kernel" 416 help 417 Build a big endian kernel. 418 419 If unsure, select this option. 420 421config CPU_LITTLE_ENDIAN 422 bool "Build little endian kernel" 423 depends on PPC_BOOK3S_64 424 select PPC64_BOOT_WRAPPER 425 help 426 Build a little endian kernel. 427 428 Note that if cross compiling a little endian kernel, 429 CROSS_COMPILE must point to a toolchain capable of targeting 430 little endian powerpc. 431 432endchoice 433 434config PPC64_BOOT_WRAPPER 435 def_bool n 436 depends on CPU_LITTLE_ENDIAN 437