Kconfig 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  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 GENERIC_LOCKBREAK
  41. bool
  42. default y
  43. depends on SMP && PREEMPT
  44. config ARCH_HAS_ILOG2_U32
  45. bool
  46. default y
  47. config ARCH_HAS_ILOG2_U64
  48. bool
  49. default y if 64BIT
  50. config GENERIC_HWEIGHT
  51. bool
  52. default y
  53. config GENERIC_CALIBRATE_DELAY
  54. bool
  55. default y
  56. config GENERIC_FIND_NEXT_BIT
  57. bool
  58. default y
  59. config ARCH_NO_VIRT_TO_BUS
  60. def_bool PPC64
  61. config PPC
  62. bool
  63. default y
  64. config EARLY_PRINTK
  65. bool
  66. default y
  67. config COMPAT
  68. bool
  69. default y if PPC64
  70. config SYSVIPC_COMPAT
  71. bool
  72. depends on COMPAT && SYSVIPC
  73. default y
  74. # All PPC32s use generic nvram driver through ppc_md
  75. config GENERIC_NVRAM
  76. bool
  77. default y if PPC32
  78. config SCHED_NO_NO_OMIT_FRAME_POINTER
  79. bool
  80. default y
  81. config ARCH_MAY_HAVE_PC_FDC
  82. bool
  83. default !PPC_PSERIES || PCI
  84. config PPC_OF
  85. def_bool y
  86. config OF
  87. def_bool y
  88. config PPC_UDBG_16550
  89. bool
  90. default n
  91. config GENERIC_TBSYNC
  92. bool
  93. default y if PPC32 && SMP
  94. default n
  95. config AUDIT_ARCH
  96. bool
  97. default y
  98. config GENERIC_BUG
  99. bool
  100. default y
  101. depends on BUG
  102. config SYS_SUPPORTS_APM_EMULATION
  103. default y if PMAC_APM_EMU
  104. bool
  105. config DEFAULT_UIMAGE
  106. bool
  107. help
  108. Used to allow a board to specify it wants a uImage built by default
  109. default n
  110. config PPC64_SWSUSP
  111. bool
  112. depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
  113. default y
  114. config PPC_DCR_NATIVE
  115. bool
  116. default n
  117. config PPC_DCR_MMIO
  118. bool
  119. default n
  120. config PPC_DCR
  121. bool
  122. depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
  123. default y
  124. config PPC_OF_PLATFORM_PCI
  125. bool
  126. depends on PPC64 # not supported on 32 bits yet
  127. default n
  128. source "init/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 SCHED_SMT
  272. bool "SMT (Hyperthreading) scheduler support"
  273. depends on PPC64 && SMP
  274. help
  275. SMT scheduler support improves the CPU scheduler's decision making
  276. when dealing with POWER5 cpus at a cost of slightly increased
  277. overhead in some places. If unsure say N here.
  278. config PROC_DEVICETREE
  279. bool "Support for device tree in /proc"
  280. depends on PROC_FS
  281. help
  282. This option adds a device-tree directory under /proc which contains
  283. an image of the device tree that the kernel copies from Open
  284. Firmware or other boot firmware. If unsure, say Y here.
  285. config CMDLINE_BOOL
  286. bool "Default bootloader kernel arguments"
  287. config CMDLINE
  288. string "Initial kernel command string"
  289. depends on CMDLINE_BOOL
  290. default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
  291. help
  292. On some platforms, there is currently no way for the boot loader to
  293. pass arguments to the kernel. For these platforms, you can supply
  294. some command-line options at build time by entering them here. In
  295. most cases you will need to specify the root device here.
  296. if !44x || BROKEN
  297. source kernel/power/Kconfig
  298. endif
  299. config SECCOMP
  300. bool "Enable seccomp to safely compute untrusted bytecode"
  301. depends on PROC_FS
  302. default y
  303. help
  304. This kernel feature is useful for number crunching applications
  305. that may need to compute untrusted bytecode during their
  306. execution. By using pipes or other transports made available to
  307. the process as file descriptors supporting the read/write
  308. syscalls, it's possible to isolate those applications in
  309. their own address space using seccomp. Once seccomp is
  310. enabled via /proc/<pid>/seccomp, it cannot be disabled
  311. and the task is only allowed to execute a few safe syscalls
  312. defined by each seccomp mode.
  313. If unsure, say Y. Only embedded should say N here.
  314. config WANT_DEVICE_TREE
  315. bool
  316. default n
  317. config DEVICE_TREE
  318. string "Static device tree source file"
  319. depends on WANT_DEVICE_TREE
  320. help
  321. This specifies the device tree source (.dts) file to be
  322. compiled and included when building the bootwrapper. If a
  323. relative filename is given, then it will be relative to
  324. arch/powerpc/boot/dts. If you are not using the bootwrapper,
  325. or do not need to build a dts into the bootwrapper, this
  326. field is ignored.
  327. For example, this is required when building a cuImage target
  328. for an older U-Boot, which cannot pass a device tree itself.
  329. Such a kernel will not work with a newer U-Boot that tries to
  330. pass a device tree (unless you tell it not to). If your U-Boot
  331. does not mention a device tree in "help bootm", then use the
  332. cuImage target and specify a device tree here. Otherwise, use
  333. the uImage target and leave this field blank.
  334. endmenu
  335. config ISA_DMA_API
  336. bool
  337. default y
  338. menu "Bus options"
  339. config ISA
  340. bool "Support for ISA-bus hardware"
  341. depends on PPC_PREP || PPC_CHRP
  342. select PPC_I8259
  343. help
  344. Find out whether you have ISA slots on your motherboard. ISA is the
  345. name of a bus system, i.e. the way the CPU talks to the other stuff
  346. inside your box. If you have an Apple machine, say N here; if you
  347. have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
  348. you have an embedded board, consult your board documentation.
  349. config ZONE_DMA
  350. bool
  351. default y
  352. config GENERIC_ISA_DMA
  353. bool
  354. depends on PPC64 || POWER4 || 6xx && !CPM2
  355. default y
  356. config PPC_INDIRECT_PCI
  357. bool
  358. depends on PCI
  359. default y if 40x || 44x
  360. default n
  361. config EISA
  362. bool
  363. config SBUS
  364. bool
  365. config FSL_SOC
  366. bool
  367. config FSL_PCI
  368. bool
  369. select PPC_INDIRECT_PCI
  370. # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
  371. config MCA
  372. bool
  373. config PCI
  374. bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
  375. || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
  376. || PPC_PS3
  377. default y if !40x && !CPM2 && !8xx && !PPC_83xx \
  378. && !PPC_85xx && !PPC_86xx
  379. default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
  380. default PCI_QSPAN if !4xx && !CPM2 && 8xx
  381. select ARCH_SUPPORTS_MSI
  382. help
  383. Find out whether your system includes a PCI bus. PCI is the name of
  384. a bus system, i.e. the way the CPU talks to the other stuff inside
  385. your box. If you say Y here, the kernel will include drivers and
  386. infrastructure code to support PCI bus devices.
  387. config PCI_DOMAINS
  388. def_bool PCI
  389. config PCI_SYSCALL
  390. def_bool PCI
  391. config PCI_QSPAN
  392. bool "QSpan PCI"
  393. depends on !4xx && !CPM2 && 8xx
  394. select PPC_I8259
  395. help
  396. Say Y here if you have a system based on a Motorola 8xx-series
  397. embedded processor with a QSPAN PCI interface, otherwise say N.
  398. config PCI_8260
  399. bool
  400. depends on PCI && 8260
  401. select PPC_INDIRECT_PCI
  402. default y
  403. config 8260_PCI9
  404. bool "Enable workaround for MPC826x erratum PCI 9"
  405. depends on PCI_8260 && !8272
  406. default y
  407. choice
  408. prompt "IDMA channel for PCI 9 workaround"
  409. depends on 8260_PCI9
  410. config 8260_PCI9_IDMA1
  411. bool "IDMA1"
  412. config 8260_PCI9_IDMA2
  413. bool "IDMA2"
  414. config 8260_PCI9_IDMA3
  415. bool "IDMA3"
  416. config 8260_PCI9_IDMA4
  417. bool "IDMA4"
  418. endchoice
  419. source "drivers/pci/pcie/Kconfig"
  420. source "drivers/pci/Kconfig"
  421. source "drivers/pcmcia/Kconfig"
  422. source "drivers/pci/hotplug/Kconfig"
  423. endmenu
  424. menu "Advanced setup"
  425. depends on PPC32
  426. config ADVANCED_OPTIONS
  427. bool "Prompt for advanced kernel configuration options"
  428. help
  429. This option will enable prompting for a variety of advanced kernel
  430. configuration options. These options can cause the kernel to not
  431. work if they are set incorrectly, but can be used to optimize certain
  432. aspects of kernel memory management.
  433. Unless you know what you are doing, say N here.
  434. comment "Default settings for advanced configuration options are used"
  435. depends on !ADVANCED_OPTIONS
  436. config HIGHMEM_START_BOOL
  437. bool "Set high memory pool address"
  438. depends on ADVANCED_OPTIONS && HIGHMEM
  439. help
  440. This option allows you to set the base address of the kernel virtual
  441. area used to map high memory pages. This can be useful in
  442. optimizing the layout of kernel virtual memory.
  443. Say N here unless you know what you are doing.
  444. config HIGHMEM_START
  445. hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
  446. default "0xfe000000"
  447. config LOWMEM_SIZE_BOOL
  448. bool "Set maximum low memory"
  449. depends on ADVANCED_OPTIONS
  450. help
  451. This option allows you to set the maximum amount of memory which
  452. will be used as "low memory", that is, memory which the kernel can
  453. access directly, without having to set up a kernel virtual mapping.
  454. This can be useful in optimizing the layout of kernel virtual
  455. memory.
  456. Say N here unless you know what you are doing.
  457. config LOWMEM_SIZE
  458. hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
  459. default "0x30000000"
  460. config KERNEL_START_BOOL
  461. bool "Set custom kernel base address"
  462. depends on ADVANCED_OPTIONS
  463. help
  464. This option allows you to set the kernel virtual address at which
  465. the kernel will map low memory (the kernel image will be linked at
  466. this address). This can be useful in optimizing the virtual memory
  467. layout of the system.
  468. Say N here unless you know what you are doing.
  469. config KERNEL_START
  470. hex "Virtual address of kernel base" if KERNEL_START_BOOL
  471. default "0xc0000000"
  472. config TASK_SIZE_BOOL
  473. bool "Set custom user task size"
  474. depends on ADVANCED_OPTIONS
  475. help
  476. This option allows you to set the amount of virtual address space
  477. allocated to user tasks. This can be useful in optimizing the
  478. virtual memory layout of the system.
  479. Say N here unless you know what you are doing.
  480. config TASK_SIZE
  481. hex "Size of user task space" if TASK_SIZE_BOOL
  482. default "0x80000000" if PPC_PREP || PPC_8xx
  483. default "0xc0000000"
  484. config CONSISTENT_START_BOOL
  485. bool "Set custom consistent memory pool address"
  486. depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
  487. help
  488. This option allows you to set the base virtual address
  489. of the consistent memory pool. This pool of virtual
  490. memory is used to make consistent memory allocations.
  491. config CONSISTENT_START
  492. hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
  493. default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
  494. default "0xff100000" if NOT_COHERENT_CACHE
  495. config CONSISTENT_SIZE_BOOL
  496. bool "Set custom consistent memory pool size"
  497. depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
  498. help
  499. This option allows you to set the size of the
  500. consistent memory pool. This pool of virtual memory
  501. is used to make consistent memory allocations.
  502. config CONSISTENT_SIZE
  503. hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
  504. default "0x00200000" if NOT_COHERENT_CACHE
  505. config BOOT_LOAD_BOOL
  506. bool "Set the boot link/load address"
  507. depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
  508. help
  509. This option allows you to set the initial load address of the zImage
  510. or zImage.initrd file. This can be useful if you are on a board
  511. which has a small amount of memory.
  512. Say N here unless you know what you are doing.
  513. config BOOT_LOAD
  514. hex "Link/load address for booting" if BOOT_LOAD_BOOL
  515. default "0x00400000" if 40x || 8xx || 8260
  516. default "0x01000000" if 44x
  517. default "0x00800000"
  518. config PIN_TLB
  519. bool "Pinned Kernel TLBs (860 ONLY)"
  520. depends on ADVANCED_OPTIONS && 8xx
  521. endmenu
  522. if PPC64
  523. config KERNEL_START
  524. hex
  525. default "0xc000000000000000"
  526. endif
  527. source "net/Kconfig"
  528. source "drivers/Kconfig"
  529. source "fs/Kconfig"
  530. # XXX source "arch/ppc/8xx_io/Kconfig"
  531. # XXX source "arch/ppc/8260_io/Kconfig"
  532. source "arch/powerpc/sysdev/qe_lib/Kconfig"
  533. source "lib/Kconfig"
  534. source "kernel/Kconfig.instrumentation"
  535. source "arch/powerpc/Kconfig.debug"
  536. source "security/Kconfig"
  537. config KEYS_COMPAT
  538. bool
  539. depends on COMPAT && KEYS
  540. default y
  541. source "crypto/Kconfig"
  542. config PPC_CLOCK
  543. bool
  544. default n
  545. config PPC_LIB_RHEAP
  546. bool