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 150config TUNE_CELL 151 bool "Optimize for Cell Broadband Engine" 152 depends on PPC64 && PPC_BOOK3S 153 help 154 Cause the compiler to optimize for the PPE of the Cell Broadband 155 Engine. This will make the code run considerably faster on Cell 156 but somewhat slower on other machines. This option only changes 157 the scheduling of instructions, not the selection of instructions 158 itself, so the resulting kernel will keep running on all other 159 machines. 160 161# this is temp to handle compat with arch=ppc 162config 8xx 163 bool 164 165config E500 166 select FSL_EMB_PERFMON 167 select PPC_FSL_BOOK3E 168 bool 169 170config PPC_E500MC 171 bool "e500mc Support" 172 select PPC_FPU 173 select COMMON_CLK 174 depends on E500 175 help 176 This must be enabled for running on e500mc (and derivatives 177 such as e5500/e6500), and must be disabled for running on 178 e500v1 or e500v2. 179 180config PPC_FPU 181 bool 182 default y if PPC64 183 184config FSL_EMB_PERFMON 185 bool "Freescale Embedded Perfmon" 186 depends on E500 || PPC_83xx 187 help 188 This is the Performance Monitor support found on the e500 core 189 and some e300 cores (c3 and c4). Select this only if your 190 core supports the Embedded Performance Monitor APU 191 192config FSL_EMB_PERF_EVENT 193 bool 194 depends on FSL_EMB_PERFMON && PERF_EVENTS && !PPC_PERF_CTRS 195 default y 196 197config FSL_EMB_PERF_EVENT_E500 198 bool 199 depends on FSL_EMB_PERF_EVENT && E500 200 default y 201 202config 4xx 203 bool 204 depends on 40x || 44x 205 default y 206 207config BOOKE 208 bool 209 depends on E200 || E500 || 44x || PPC_BOOK3E 210 default y 211 212config FSL_BOOKE 213 bool 214 depends on (E200 || E500) && PPC32 215 default y 216 217# this is for common code between PPC32 & PPC64 FSL BOOKE 218config PPC_FSL_BOOK3E 219 bool 220 select FSL_EMB_PERFMON 221 select PPC_SMP_MUXED_IPI 222 select SYS_SUPPORTS_HUGETLBFS if PHYS_64BIT || PPC64 223 select PPC_DOORBELL 224 default y if FSL_BOOKE 225 226config PTE_64BIT 227 bool 228 depends on 44x || E500 || PPC_86xx 229 default y if PHYS_64BIT 230 231config PHYS_64BIT 232 bool 'Large physical address support' if E500 || PPC_86xx 233 depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx 234 ---help--- 235 This option enables kernel support for larger than 32-bit physical 236 addresses. This feature may not be available on all cores. 237 238 If you have more than 3.5GB of RAM or so, you also need to enable 239 SWIOTLB under Kernel Options for this to work. The actual number 240 is platform-dependent. 241 242 If in doubt, say N here. 243 244config ALTIVEC 245 bool "AltiVec Support" 246 depends on 6xx || PPC_BOOK3S_64 || (PPC_E500MC && PPC64) 247 ---help--- 248 This option enables kernel support for the Altivec extensions to the 249 PowerPC processor. The kernel currently supports saving and restoring 250 altivec registers, and turning on the 'altivec enable' bit so user 251 processes can execute altivec instructions. 252 253 This option is only usefully if you have a processor that supports 254 altivec (G4, otherwise known as 74xx series), but does not have 255 any affect on a non-altivec cpu (it does, however add code to the 256 kernel). 257 258 If in doubt, say Y here. 259 260config VSX 261 bool "VSX Support" 262 depends on PPC_BOOK3S_64 && ALTIVEC && PPC_FPU 263 ---help--- 264 265 This option enables kernel support for the Vector Scaler extensions 266 to the PowerPC processor. The kernel currently supports saving and 267 restoring VSX registers, and turning on the 'VSX enable' bit so user 268 processes can execute VSX instructions. 269 270 This option is only useful if you have a processor that supports 271 VSX (P7 and above), but does not have any affect on a non-VSX 272 CPUs (it does, however add code to the kernel). 273 274 If in doubt, say Y here. 275 276config PPC_ICSWX 277 bool "Support for PowerPC icswx coprocessor instruction" 278 depends on PPC_BOOK3S_64 279 default n 280 ---help--- 281 282 This option enables kernel support for the PowerPC Initiate 283 Coprocessor Store Word (icswx) coprocessor instruction on POWER7 284 or newer processors. 285 286 This option is only useful if you have a processor that supports 287 the icswx coprocessor instruction. It does not have any effect 288 on processors without the icswx coprocessor instruction. 289 290 This option slightly increases kernel memory usage. 291 292 If in doubt, say N here. 293 294config PPC_ICSWX_PID 295 bool "icswx requires direct PID management" 296 depends on PPC_ICSWX 297 default y 298 ---help--- 299 The PID register in server is used explicitly for ICSWX. In 300 embedded systems PID management is done by the system. 301 302config PPC_ICSWX_USE_SIGILL 303 bool "Should a bad CT cause a SIGILL?" 304 depends on PPC_ICSWX 305 default n 306 ---help--- 307 Should a bad CT used for "non-record form ICSWX" cause an 308 illegal instruction signal or should it be silent as 309 architected. 310 311 If in doubt, say N here. 312 313config SPE_POSSIBLE 314 def_bool y 315 depends on E200 || (E500 && !PPC_E500MC) 316 317config SPE 318 bool "SPE Support" 319 depends on SPE_POSSIBLE 320 default y 321 ---help--- 322 This option enables kernel support for the Signal Processing 323 Extensions (SPE) to the PowerPC processor. The kernel currently 324 supports saving and restoring SPE registers, and turning on the 325 'spe enable' bit so user processes can execute SPE instructions. 326 327 This option is only useful if you have a processor that supports 328 SPE (e500, otherwise known as 85xx series), but does not have any 329 effect on a non-spe cpu (it does, however add code to the kernel). 330 331 If in doubt, say Y here. 332 333config PPC_STD_MMU 334 def_bool y 335 depends on PPC_BOOK3S 336 337config PPC_STD_MMU_32 338 def_bool y 339 depends on PPC_STD_MMU && PPC32 340 341config PPC_STD_MMU_64 342 def_bool y 343 depends on PPC_STD_MMU && PPC64 344 345config PPC_MMU_NOHASH 346 def_bool y 347 depends on !PPC_STD_MMU 348 349config PPC_BOOK3E_MMU 350 def_bool y 351 depends on FSL_BOOKE || PPC_BOOK3E 352 353config PPC_MM_SLICES 354 bool 355 default y if (!PPC_FSL_BOOK3E && PPC64 && HUGETLB_PAGE) || (PPC_STD_MMU_64 && PPC_64K_PAGES) 356 default n 357 358config PPC_HAVE_PMU_SUPPORT 359 bool 360 361config PPC_PERF_CTRS 362 def_bool y 363 depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT 364 help 365 This enables the powerpc-specific perf_event back-end. 366 367config SMP 368 depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE || PPC_47x 369 bool "Symmetric multi-processing support" 370 ---help--- 371 This enables support for systems with more than one CPU. If you have 372 a system with only one CPU, say N. If you have a system with more 373 than one CPU, say Y. Note that the kernel does not currently 374 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors 375 since they have inadequate hardware support for multiprocessor 376 operation. 377 378 If you say N here, the kernel will run on single and multiprocessor 379 machines, but will use only one CPU of a multiprocessor machine. If 380 you say Y here, the kernel will run on single-processor machines. 381 On a single-processor machine, the kernel will run faster if you say 382 N here. 383 384 If you don't know what to do here, say N. 385 386config NR_CPUS 387 int "Maximum number of CPUs (2-8192)" 388 range 2 8192 389 depends on SMP 390 default "32" if PPC64 391 default "4" 392 393config NOT_COHERENT_CACHE 394 bool 395 depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON 396 default n if PPC_47x 397 default y 398 399config CHECK_CACHE_COHERENCY 400 bool 401 402config PPC_DOORBELL 403 bool 404 default n 405 406endmenu 407 408choice 409 prompt "Endianness selection" 410 default CPU_BIG_ENDIAN 411 help 412 This option selects whether a big endian or little endian kernel will 413 be built. 414 415config CPU_BIG_ENDIAN 416 bool "Build big endian kernel" 417 help 418 Build a big endian kernel. 419 420 If unsure, select this option. 421 422config CPU_LITTLE_ENDIAN 423 bool "Build little endian kernel" 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