Kconfig 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. # For a description of the syntax of this configuration file,
  2. # see Documentation/kbuild/kconfig-language.txt.
  3. #
  4. mainmenu "Linux/PowerPC Kernel Configuration"
  5. source "arch/powerpc/platforms/Kconfig.cputype"
  6. config PPC32
  7. bool
  8. default y if !PPC64
  9. config 64BIT
  10. bool
  11. default y if PPC64
  12. config WORD_SIZE
  13. int
  14. default 64 if PPC64
  15. default 32 if !PPC64
  16. config PPC_MERGE
  17. def_bool y
  18. config MMU
  19. bool
  20. default y
  21. config GENERIC_CMOS_UPDATE
  22. def_bool y
  23. config GENERIC_TIME
  24. def_bool y
  25. config GENERIC_TIME_VSYSCALL
  26. def_bool y
  27. config GENERIC_CLOCKEVENTS
  28. def_bool y
  29. config GENERIC_HARDIRQS
  30. bool
  31. default y
  32. config IRQ_PER_CPU
  33. bool
  34. default y
  35. config RWSEM_GENERIC_SPINLOCK
  36. bool
  37. config RWSEM_XCHGADD_ALGORITHM
  38. bool
  39. default y
  40. config ARCH_HAS_ILOG2_U32
  41. bool
  42. default y
  43. config ARCH_HAS_ILOG2_U64
  44. bool
  45. default y if 64BIT
  46. config GENERIC_HWEIGHT
  47. bool
  48. default y
  49. config GENERIC_CALIBRATE_DELAY
  50. bool
  51. default y
  52. config GENERIC_FIND_NEXT_BIT
  53. bool
  54. default y
  55. config ARCH_NO_VIRT_TO_BUS
  56. def_bool PPC64
  57. config PPC
  58. bool
  59. default y
  60. config EARLY_PRINTK
  61. bool
  62. default y
  63. config COMPAT
  64. bool
  65. default y if PPC64
  66. config SYSVIPC_COMPAT
  67. bool
  68. depends on COMPAT && SYSVIPC
  69. default y
  70. # All PPC32s use generic nvram driver through ppc_md
  71. config GENERIC_NVRAM
  72. bool
  73. default y if PPC32
  74. config SCHED_NO_NO_OMIT_FRAME_POINTER
  75. bool
  76. default y
  77. config ARCH_MAY_HAVE_PC_FDC
  78. bool
  79. default !PPC_PSERIES || PCI
  80. config PPC_OF
  81. def_bool y
  82. config OF
  83. def_bool y
  84. config PPC_UDBG_16550
  85. bool
  86. default n
  87. config GENERIC_TBSYNC
  88. bool
  89. default y if PPC32 && SMP
  90. default n
  91. config AUDIT_ARCH
  92. bool
  93. default y
  94. config GENERIC_BUG
  95. bool
  96. default y
  97. depends on BUG
  98. config SYS_SUPPORTS_APM_EMULATION
  99. default y if PMAC_APM_EMU
  100. bool
  101. config DEFAULT_UIMAGE
  102. bool
  103. help
  104. Used to allow a board to specify it wants a uImage built by default
  105. default n
  106. config REDBOOT
  107. bool
  108. config PPC64_SWSUSP
  109. bool
  110. depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
  111. default y
  112. config PPC_DCR_NATIVE
  113. bool
  114. default n
  115. config PPC_DCR_MMIO
  116. bool
  117. default n
  118. config PPC_DCR
  119. bool
  120. depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
  121. default y
  122. config PPC_OF_PLATFORM_PCI
  123. bool
  124. depends on PCI
  125. depends on PPC64 # not supported on 32 bits yet
  126. default n
  127. source "init/Kconfig"
  128. source "arch/powerpc/sysdev/Kconfig"
  129. source "arch/powerpc/platforms/Kconfig"
  130. menu "Kernel options"
  131. config HIGHMEM
  132. bool "High memory support"
  133. depends on PPC32
  134. source kernel/time/Kconfig
  135. source kernel/Kconfig.hz
  136. source kernel/Kconfig.preempt
  137. source "fs/Kconfig.binfmt"
  138. # We optimistically allocate largepages from the VM, so make the limit
  139. # large enough (16MB). This badly named config option is actually
  140. # max order + 1
  141. config FORCE_MAX_ZONEORDER
  142. int
  143. depends on PPC64
  144. default "9" if PPC_64K_PAGES
  145. default "13"
  146. config HUGETLB_PAGE_SIZE_VARIABLE
  147. bool
  148. depends on HUGETLB_PAGE
  149. default y
  150. config MATH_EMULATION
  151. bool "Math emulation"
  152. depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
  153. ---help---
  154. Some PowerPC chips designed for embedded applications do not have
  155. a floating-point unit and therefore do not implement the
  156. floating-point instructions in the PowerPC instruction set. If you
  157. say Y here, the kernel will include code to emulate a floating-point
  158. unit, which will allow programs that use floating-point
  159. instructions to run.
  160. config 8XX_MINIMAL_FPEMU
  161. bool "Minimal math emulation for 8xx"
  162. depends on 8xx && !MATH_EMULATION
  163. help
  164. Older arch/ppc kernels still emulated a few floating point
  165. instructions such as load and store, even when full math
  166. emulation is disabled. Say "Y" here if you want to preserve
  167. this behavior.
  168. It is recommended that you build a soft-float userspace instead.
  169. config IOMMU_VMERGE
  170. bool "Enable IOMMU virtual merging"
  171. depends on PPC64
  172. default y
  173. help
  174. Cause IO segments sent to a device for DMA to be merged virtually
  175. by the IOMMU when they happen to have been allocated contiguously.
  176. This doesn't add pressure to the IOMMU allocator. However, some
  177. drivers don't support getting large merged segments coming back
  178. from *_map_sg().
  179. Most drivers don't have this problem; it is safe to say Y here.
  180. config HOTPLUG_CPU
  181. bool "Support for enabling/disabling CPUs"
  182. depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
  183. ---help---
  184. Say Y here to be able to disable and re-enable individual
  185. CPUs at runtime on SMP machines.
  186. Say N if you are unsure.
  187. config ARCH_ENABLE_MEMORY_HOTPLUG
  188. def_bool y
  189. config KEXEC
  190. bool "kexec system call (EXPERIMENTAL)"
  191. depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
  192. help
  193. kexec is a system call that implements the ability to shutdown your
  194. current kernel, and to start another kernel. It is like a reboot
  195. but it is independent of the system firmware. And like a reboot
  196. you can start any kernel with it, not just Linux.
  197. The name comes from the similarity to the exec system call.
  198. It is an ongoing process to be certain the hardware in a machine
  199. is properly shutdown, so do not be surprised if this code does not
  200. initially work for you. It may help to enable device hotplugging
  201. support. As of this writing the exact hardware interface is
  202. strongly in flux, so no good recommendation can be made.
  203. config CRASH_DUMP
  204. bool "Build a kdump crash kernel (EXPERIMENTAL)"
  205. depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
  206. help
  207. Build a kernel suitable for use as a kdump capture kernel.
  208. The kernel will be linked at a different address than normal, and
  209. so can only be used for Kdump.
  210. Don't change this unless you know what you are doing.
  211. config PPCBUG_NVRAM
  212. bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
  213. default y if PPC_PREP
  214. config IRQ_ALL_CPUS
  215. bool "Distribute interrupts on all CPUs by default"
  216. depends on SMP && !MV64360
  217. help
  218. This option gives the kernel permission to distribute IRQs across
  219. multiple CPUs. Saying N here will route all IRQs to the first
  220. CPU. Generally saying Y is safe, although some problems have been
  221. reported with SMP Power Macintoshes with this option enabled.
  222. config NUMA
  223. bool "NUMA support"
  224. depends on PPC64
  225. default y if SMP && PPC_PSERIES
  226. config NODES_SHIFT
  227. int
  228. default "4"
  229. depends on NEED_MULTIPLE_NODES
  230. config ARCH_SELECT_MEMORY_MODEL
  231. def_bool y
  232. depends on PPC64
  233. config ARCH_FLATMEM_ENABLE
  234. def_bool y
  235. depends on (PPC64 && !NUMA) || PPC32
  236. config ARCH_SPARSEMEM_ENABLE
  237. def_bool y
  238. depends on PPC64
  239. select SPARSEMEM_VMEMMAP_ENABLE
  240. config ARCH_SPARSEMEM_DEFAULT
  241. def_bool y
  242. depends on (SMP && PPC_PSERIES) || PPC_PS3
  243. config ARCH_POPULATES_NODE_MAP
  244. def_bool y
  245. source "mm/Kconfig"
  246. config ARCH_MEMORY_PROBE
  247. def_bool y
  248. depends on MEMORY_HOTPLUG
  249. # Some NUMA nodes have memory ranges that span
  250. # other nodes. Even though a pfn is valid and
  251. # between a node's start and end pfns, it may not
  252. # reside on that node. See memmap_init_zone()
  253. # for details.
  254. config NODES_SPAN_OTHER_NODES
  255. def_bool y
  256. depends on NEED_MULTIPLE_NODES
  257. config PPC_HAS_HASH_64K
  258. bool
  259. depends on PPC64
  260. default n
  261. config PPC_64K_PAGES
  262. bool "64k page size"
  263. depends on PPC64
  264. select PPC_HAS_HASH_64K
  265. help
  266. This option changes the kernel logical page size to 64k. On machines
  267. without processor support for 64k pages, the kernel will simulate
  268. them by loading each individual 4k page on demand transparently,
  269. while on hardware with such support, it will be used to map
  270. normal application pages.
  271. config PPC_SUBPAGE_PROT
  272. bool "Support setting protections for 4k subpages"
  273. depends on PPC_64K_PAGES
  274. help
  275. This option adds support for a system call to allow user programs
  276. to set access permissions (read/write, readonly, or no access)
  277. on the 4k subpages of each 64k page.
  278. config SCHED_SMT
  279. bool "SMT (Hyperthreading) scheduler support"
  280. depends on PPC64 && SMP
  281. help
  282. SMT scheduler support improves the CPU scheduler's decision making
  283. when dealing with POWER5 cpus at a cost of slightly increased
  284. overhead in some places. If unsure say N here.
  285. config PROC_DEVICETREE
  286. bool "Support for device tree in /proc"
  287. depends on PROC_FS
  288. help
  289. This option adds a device-tree directory under /proc which contains
  290. an image of the device tree that the kernel copies from Open
  291. Firmware or other boot firmware. If unsure, say Y here.
  292. config CMDLINE_BOOL
  293. bool "Default bootloader kernel arguments"
  294. config CMDLINE
  295. string "Initial kernel command string"
  296. depends on CMDLINE_BOOL
  297. default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
  298. help
  299. On some platforms, there is currently no way for the boot loader to
  300. pass arguments to the kernel. For these platforms, you can supply
  301. some command-line options at build time by entering them here. In
  302. most cases you will need to specify the root device here.
  303. if !44x || BROKEN
  304. source kernel/power/Kconfig
  305. endif
  306. config SECCOMP
  307. bool "Enable seccomp to safely compute untrusted bytecode"
  308. depends on PROC_FS
  309. default y
  310. help
  311. This kernel feature is useful for number crunching applications
  312. that may need to compute untrusted bytecode during their
  313. execution. By using pipes or other transports made available to
  314. the process as file descriptors supporting the read/write
  315. syscalls, it's possible to isolate those applications in
  316. their own address space using seccomp. Once seccomp is
  317. enabled via /proc/<pid>/seccomp, it cannot be disabled
  318. and the task is only allowed to execute a few safe syscalls
  319. defined by each seccomp mode.
  320. If unsure, say Y. Only embedded should say N here.
  321. config WANT_DEVICE_TREE
  322. bool
  323. default n
  324. config DEVICE_TREE
  325. string "Static device tree source file"
  326. depends on WANT_DEVICE_TREE
  327. help
  328. This specifies the device tree source (.dts) file to be
  329. compiled and included when building the bootwrapper. If a
  330. relative filename is given, then it will be relative to
  331. arch/powerpc/boot/dts. If you are not using the bootwrapper,
  332. or do not need to build a dts into the bootwrapper, this
  333. field is ignored.
  334. For example, this is required when building a cuImage target
  335. for an older U-Boot, which cannot pass a device tree itself.
  336. Such a kernel will not work with a newer U-Boot that tries to
  337. pass a device tree (unless you tell it not to). If your U-Boot
  338. does not mention a device tree in "help bootm", then use the
  339. cuImage target and specify a device tree here. Otherwise, use
  340. the uImage target and leave this field blank.
  341. endmenu
  342. config ISA_DMA_API
  343. bool
  344. default !PPC_ISERIES || PCI
  345. menu "Bus options"
  346. config ISA
  347. bool "Support for ISA-bus hardware"
  348. depends on PPC_PREP || PPC_CHRP
  349. select PPC_I8259
  350. help
  351. Find out whether you have ISA slots on your motherboard. ISA is the
  352. name of a bus system, i.e. the way the CPU talks to the other stuff
  353. inside your box. If you have an Apple machine, say N here; if you
  354. have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
  355. you have an embedded board, consult your board documentation.
  356. config ZONE_DMA
  357. bool
  358. default y
  359. config GENERIC_ISA_DMA
  360. bool
  361. depends on PPC64 || POWER4 || 6xx && !CPM2
  362. default y
  363. config PPC_INDIRECT_PCI
  364. bool
  365. depends on PCI
  366. default y if 40x || 44x
  367. default n
  368. config EISA
  369. bool
  370. config SBUS
  371. bool
  372. config FSL_SOC
  373. bool
  374. config FSL_PCI
  375. bool
  376. select PPC_INDIRECT_PCI
  377. # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
  378. config MCA
  379. bool
  380. config PCI
  381. bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
  382. || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
  383. || PPC_PS3 || 44x
  384. default y if !40x && !CPM2 && !8xx && !PPC_83xx \
  385. && !PPC_85xx && !PPC_86xx
  386. default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
  387. default PCI_QSPAN if !4xx && !CPM2 && 8xx
  388. select ARCH_SUPPORTS_MSI
  389. help
  390. Find out whether your system includes a PCI bus. PCI is the name of
  391. a bus system, i.e. the way the CPU talks to the other stuff inside
  392. your box. If you say Y here, the kernel will include drivers and
  393. infrastructure code to support PCI bus devices.
  394. config PCI_DOMAINS
  395. def_bool PCI
  396. config PCI_SYSCALL
  397. def_bool PCI
  398. config PCI_QSPAN
  399. bool "QSpan PCI"
  400. depends on !4xx && !CPM2 && 8xx
  401. select PPC_I8259
  402. help
  403. Say Y here if you have a system based on a Motorola 8xx-series
  404. embedded processor with a QSPAN PCI interface, otherwise say N.
  405. config PCI_8260
  406. bool
  407. depends on PCI && 8260
  408. select PPC_INDIRECT_PCI
  409. default y
  410. config 8260_PCI9
  411. bool "Enable workaround for MPC826x erratum PCI 9"
  412. depends on PCI_8260 && !8272
  413. default y
  414. choice
  415. prompt "IDMA channel for PCI 9 workaround"
  416. depends on 8260_PCI9
  417. config 8260_PCI9_IDMA1
  418. bool "IDMA1"
  419. config 8260_PCI9_IDMA2
  420. bool "IDMA2"
  421. config 8260_PCI9_IDMA3
  422. bool "IDMA3"
  423. config 8260_PCI9_IDMA4
  424. bool "IDMA4"
  425. endchoice
  426. source "drivers/pci/pcie/Kconfig"
  427. source "drivers/pci/Kconfig"
  428. source "drivers/pcmcia/Kconfig"
  429. source "drivers/pci/hotplug/Kconfig"
  430. endmenu
  431. menu "Advanced setup"
  432. depends on PPC32
  433. config ADVANCED_OPTIONS
  434. bool "Prompt for advanced kernel configuration options"
  435. help
  436. This option will enable prompting for a variety of advanced kernel
  437. configuration options. These options can cause the kernel to not
  438. work if they are set incorrectly, but can be used to optimize certain
  439. aspects of kernel memory management.
  440. Unless you know what you are doing, say N here.
  441. comment "Default settings for advanced configuration options are used"
  442. depends on !ADVANCED_OPTIONS
  443. config HIGHMEM_START_BOOL
  444. bool "Set high memory pool address"
  445. depends on ADVANCED_OPTIONS && HIGHMEM
  446. help
  447. This option allows you to set the base address of the kernel virtual
  448. area used to map high memory pages. This can be useful in
  449. optimizing the layout of kernel virtual memory.
  450. Say N here unless you know what you are doing.
  451. config HIGHMEM_START
  452. hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
  453. default "0xfe000000"
  454. config LOWMEM_SIZE_BOOL
  455. bool "Set maximum low memory"
  456. depends on ADVANCED_OPTIONS
  457. help
  458. This option allows you to set the maximum amount of memory which
  459. will be used as "low memory", that is, memory which the kernel can
  460. access directly, without having to set up a kernel virtual mapping.
  461. This can be useful in optimizing the layout of kernel virtual
  462. memory.
  463. Say N here unless you know what you are doing.
  464. config LOWMEM_SIZE
  465. hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
  466. default "0x30000000"
  467. config KERNEL_START_BOOL
  468. bool "Set custom kernel base address"
  469. depends on ADVANCED_OPTIONS
  470. help
  471. This option allows you to set the kernel virtual address at which
  472. the kernel will map low memory (the kernel image will be linked at
  473. this address). This can be useful in optimizing the virtual memory
  474. layout of the system.
  475. Say N here unless you know what you are doing.
  476. config KERNEL_START
  477. hex "Virtual address of kernel base" if KERNEL_START_BOOL
  478. default "0xc0000000"
  479. config TASK_SIZE_BOOL
  480. bool "Set custom user task size"
  481. depends on ADVANCED_OPTIONS
  482. help
  483. This option allows you to set the amount of virtual address space
  484. allocated to user tasks. This can be useful in optimizing the
  485. virtual memory layout of the system.
  486. Say N here unless you know what you are doing.
  487. config TASK_SIZE
  488. hex "Size of user task space" if TASK_SIZE_BOOL
  489. default "0x80000000" if PPC_PREP || PPC_8xx
  490. default "0xc0000000"
  491. config CONSISTENT_START_BOOL
  492. bool "Set custom consistent memory pool address"
  493. depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
  494. help
  495. This option allows you to set the base virtual address
  496. of the consistent memory pool. This pool of virtual
  497. memory is used to make consistent memory allocations.
  498. config CONSISTENT_START
  499. hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
  500. default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
  501. default "0xff100000" if NOT_COHERENT_CACHE
  502. config CONSISTENT_SIZE_BOOL
  503. bool "Set custom consistent memory pool size"
  504. depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
  505. help
  506. This option allows you to set the size of the
  507. consistent memory pool. This pool of virtual memory
  508. is used to make consistent memory allocations.
  509. config CONSISTENT_SIZE
  510. hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
  511. default "0x00200000" if NOT_COHERENT_CACHE
  512. config BOOT_LOAD_BOOL
  513. bool "Set the boot link/load address"
  514. depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
  515. help
  516. This option allows you to set the initial load address of the zImage
  517. or zImage.initrd file. This can be useful if you are on a board
  518. which has a small amount of memory.
  519. Say N here unless you know what you are doing.
  520. config BOOT_LOAD
  521. hex "Link/load address for booting" if BOOT_LOAD_BOOL
  522. default "0x00400000" if 40x || 8xx || 8260
  523. default "0x01000000" if 44x
  524. default "0x00800000"
  525. config PIN_TLB
  526. bool "Pinned Kernel TLBs (860 ONLY)"
  527. depends on ADVANCED_OPTIONS && 8xx
  528. endmenu
  529. if PPC64
  530. config KERNEL_START
  531. hex
  532. default "0xc000000000000000"
  533. endif
  534. source "net/Kconfig"
  535. source "drivers/Kconfig"
  536. source "fs/Kconfig"
  537. # XXX source "arch/ppc/8xx_io/Kconfig"
  538. # XXX source "arch/ppc/8260_io/Kconfig"
  539. source "arch/powerpc/sysdev/qe_lib/Kconfig"
  540. source "lib/Kconfig"
  541. source "kernel/Kconfig.instrumentation"
  542. source "arch/powerpc/Kconfig.debug"
  543. source "security/Kconfig"
  544. config KEYS_COMPAT
  545. bool
  546. depends on COMPAT && KEYS
  547. default y
  548. source "crypto/Kconfig"
  549. config PPC_CLOCK
  550. bool
  551. default n
  552. config PPC_LIB_RHEAP
  553. bool