1source "init/Kconfig"
2
3source "kernel/Kconfig.freezer"
4
5menu "Processor type and features"
6
7config IA64
8	bool
9	select PCI if (!IA64_HP_SIM)
10	select ACPI if (!IA64_HP_SIM)
11	select PM if (!IA64_HP_SIM)
12	select ARCH_SUPPORTS_MSI
13	select HAVE_UNSTABLE_SCHED_CLOCK
14	select HAVE_IDE
15	select HAVE_OPROFILE
16	select HAVE_KPROBES
17	select HAVE_KRETPROBES
18	select HAVE_FTRACE_MCOUNT_RECORD
19	select HAVE_DYNAMIC_FTRACE if (!ITANIUM)
20	select HAVE_FUNCTION_TRACER
21	select HAVE_DMA_ATTRS
22	select HAVE_KVM
23	select HAVE_ARCH_TRACEHOOK
24	select HAVE_DMA_API_DEBUG
25	select HAVE_GENERIC_HARDIRQS
26	select GENERIC_IRQ_PROBE
27	select GENERIC_PENDING_IRQ if SMP
28	select IRQ_PER_CPU
29	select GENERIC_IRQ_SHOW
30	default y
31	help
32	  The Itanium Processor Family is Intel's 64-bit successor to
33	  the 32-bit X86 line.  The IA-64 Linux project has a home
34	  page at <http://www.linuxia64.org/> and a mailing list at
35	  <linux-ia64@vger.kernel.org>.
36
37config 64BIT
38	bool
39	select ATA_NONSTANDARD if ATA
40	default y
41
42config ZONE_DMA
43	def_bool y
44	depends on !IA64_SGI_SN2
45
46config QUICKLIST
47	bool
48	default y
49
50config MMU
51	bool
52	default y
53
54config ARCH_DMA_ADDR_T_64BIT
55	def_bool y
56
57config NEED_DMA_MAP_STATE
58	def_bool y
59
60config NEED_SG_DMA_LENGTH
61	def_bool y
62
63config SWIOTLB
64       bool
65
66config STACKTRACE_SUPPORT
67	def_bool y
68
69config GENERIC_LOCKBREAK
70	def_bool n
71
72config RWSEM_XCHGADD_ALGORITHM
73	bool
74	default y
75
76config HUGETLB_PAGE_SIZE_VARIABLE
77	bool
78	depends on HUGETLB_PAGE
79	default y
80
81config GENERIC_FIND_NEXT_BIT
82	bool
83	default y
84
85config GENERIC_CALIBRATE_DELAY
86	bool
87	default y
88
89config GENERIC_TIME_VSYSCALL
90	bool
91	default y
92
93config HAVE_SETUP_PER_CPU_AREA
94	def_bool y
95
96config DMI
97	bool
98	default y
99
100config EFI
101	bool
102	default y
103
104config GENERIC_IOMAP
105	bool
106	default y
107
108config SCHED_OMIT_FRAME_POINTER
109	bool
110	default y
111
112config IA64_UNCACHED_ALLOCATOR
113	bool
114	select GENERIC_ALLOCATOR
115
116config ARCH_USES_PG_UNCACHED
117	def_bool y
118	depends on IA64_UNCACHED_ALLOCATOR
119
120config AUDIT_ARCH
121	bool
122	default y
123
124menuconfig PARAVIRT_GUEST
125	bool "Paravirtualized guest support"
126	help
127	  Say Y here to get to see options related to running Linux under
128	  various hypervisors.  This option alone does not add any kernel code.
129
130	  If you say N, all options in this submenu will be skipped and disabled.
131
132if PARAVIRT_GUEST
133
134config PARAVIRT
135	bool "Enable paravirtualization code"
136	depends on PARAVIRT_GUEST
137	default y
138	bool
139	default y
140	help
141	  This changes the kernel so it can modify itself when it is run
142	  under a hypervisor, potentially improving performance significantly
143	  over full virtualization.  However, when run without a hypervisor
144	  the kernel is theoretically slower and slightly larger.
145
146
147source "arch/ia64/xen/Kconfig"
148
149endif
150
151choice
152	prompt "System type"
153	default IA64_GENERIC
154
155config IA64_GENERIC
156	bool "generic"
157	select NUMA
158	select ACPI_NUMA
159	select SWIOTLB
160	select PCI_MSI
161	select DMAR
162	help
163	  This selects the system type of your hardware.  A "generic" kernel
164	  will run on any supported IA-64 system.  However, if you configure
165	  a kernel for your specific system, it will be faster and smaller.
166
167	  generic		For any supported IA-64 system
168	  DIG-compliant		For DIG ("Developer's Interface Guide") compliant systems
169	  DIG+Intel+IOMMU	For DIG systems with Intel IOMMU
170	  HP-zx1/sx1000		For HP systems
171	  HP-zx1/sx1000+swiotlb	For HP systems with (broken) DMA-constrained devices.
172	  SGI-SN2		For SGI Altix systems
173	  SGI-UV		For SGI UV systems
174	  Ski-simulator		For the HP simulator <http://www.hpl.hp.com/research/linux/ski/>
175	  Xen-domU		For xen domU system
176
177	  If you don't know what to do, choose "generic".
178
179config IA64_DIG
180	bool "DIG-compliant"
181	select SWIOTLB
182
183config IA64_DIG_VTD
184	bool "DIG+Intel+IOMMU"
185	select DMAR
186	select PCI_MSI
187
188config IA64_HP_ZX1
189	bool "HP-zx1/sx1000"
190	help
191	  Build a kernel that runs on HP zx1 and sx1000 systems.  This adds
192	  support for the HP I/O MMU.
193
194config IA64_HP_ZX1_SWIOTLB
195	bool "HP-zx1/sx1000 with software I/O TLB"
196	select SWIOTLB
197	help
198	  Build a kernel that runs on HP zx1 and sx1000 systems even when they
199	  have broken PCI devices which cannot DMA to full 32 bits.  Apart
200	  from support for the HP I/O MMU, this includes support for the software
201	  I/O TLB, which allows supporting the broken devices at the expense of
202	  wasting some kernel memory (about 2MB by default).
203
204config IA64_SGI_SN2
205	bool "SGI-SN2"
206	select NUMA
207	select ACPI_NUMA
208	help
209	  Selecting this option will optimize the kernel for use on sn2 based
210	  systems, but the resulting kernel binary will not run on other
211	  types of ia64 systems.  If you have an SGI Altix system, it's safe
212	  to select this option.  If in doubt, select ia64 generic support
213	  instead.
214
215config IA64_SGI_UV
216	bool "SGI-UV"
217	select NUMA
218	select ACPI_NUMA
219	select SWIOTLB
220	help
221	  Selecting this option will optimize the kernel for use on UV based
222	  systems, but the resulting kernel binary will not run on other
223	  types of ia64 systems.  If you have an SGI UV system, it's safe
224	  to select this option.  If in doubt, select ia64 generic support
225	  instead.
226
227config IA64_HP_SIM
228	bool "Ski-simulator"
229	select SWIOTLB
230
231config IA64_XEN_GUEST
232	bool "Xen guest"
233	select SWIOTLB
234	depends on XEN
235	help
236	  Build a kernel that runs on Xen guest domain. At this moment only
237	  16KB page size in supported.
238
239endchoice
240
241choice
242	prompt "Processor type"
243	default ITANIUM
244
245config ITANIUM
246	bool "Itanium"
247	help
248	  Select your IA-64 processor type.  The default is Itanium.
249	  This choice is safe for all IA-64 systems, but may not perform
250	  optimally on systems with, say, Itanium 2 or newer processors.
251
252config MCKINLEY
253	bool "Itanium 2"
254	help
255	  Select this to configure for an Itanium 2 (McKinley) processor.
256
257endchoice
258
259choice
260	prompt "Kernel page size"
261	default IA64_PAGE_SIZE_16KB
262
263config IA64_PAGE_SIZE_4KB
264	bool "4KB"
265	help
266	  This lets you select the page size of the kernel.  For best IA-64
267	  performance, a page size of 8KB or 16KB is recommended.  For best
268	  IA-32 compatibility, a page size of 4KB should be selected (the vast
269	  majority of IA-32 binaries work perfectly fine with a larger page
270	  size).  For Itanium 2 or newer systems, a page size of 64KB can also
271	  be selected.
272
273	  4KB                For best IA-32 compatibility
274	  8KB                For best IA-64 performance
275	  16KB               For best IA-64 performance
276	  64KB               Requires Itanium 2 or newer processor.
277
278	  If you don't know what to do, choose 16KB.
279
280config IA64_PAGE_SIZE_8KB
281	bool "8KB"
282
283config IA64_PAGE_SIZE_16KB
284	bool "16KB"
285
286config IA64_PAGE_SIZE_64KB
287	depends on !ITANIUM
288	bool "64KB"
289
290endchoice
291
292choice
293	prompt "Page Table Levels"
294	default PGTABLE_3
295
296config PGTABLE_3
297	bool "3 Levels"
298
299config PGTABLE_4
300	depends on !IA64_PAGE_SIZE_64KB
301	bool "4 Levels"
302
303endchoice
304
305if IA64_HP_SIM
306config HZ
307	default 32
308endif
309
310if !IA64_HP_SIM
311source kernel/Kconfig.hz
312endif
313
314config IA64_BRL_EMU
315	bool
316	depends on ITANIUM
317	default y
318
319# align cache-sensitive data to 128 bytes
320config IA64_L1_CACHE_SHIFT
321	int
322	default "7" if MCKINLEY
323	default "6" if ITANIUM
324
325config IA64_CYCLONE
326	bool "Cyclone (EXA) Time Source support"
327	help
328	  Say Y here to enable support for IBM EXA Cyclone time source.
329	  If you're unsure, answer N.
330
331config IOSAPIC
332	bool
333	depends on !IA64_HP_SIM
334	default y
335
336config FORCE_MAX_ZONEORDER
337	int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
338	range 11 17  if !HUGETLB_PAGE
339	default "17" if HUGETLB_PAGE
340	default "11"
341
342config VIRT_CPU_ACCOUNTING
343	bool "Deterministic task and CPU time accounting"
344	default n
345	help
346	  Select this option to enable more accurate task and CPU time
347	  accounting.  This is done by reading a CPU counter on each
348	  kernel entry and exit and on transitions within the kernel
349	  between system, softirq and hardirq state, so there is a
350	  small performance impact.
351	  If in doubt, say N here.
352
353config SMP
354	bool "Symmetric multi-processing support"
355	select USE_GENERIC_SMP_HELPERS
356	help
357	  This enables support for systems with more than one CPU. If you have
358	  a system with only one CPU, say N.  If you have a system with more
359	  than one CPU, say Y.
360
361	  If you say N here, the kernel will run on single and multiprocessor
362	  systems, but will use only one CPU of a multiprocessor system.  If
363	  you say Y here, the kernel will run on many, but not all,
364	  single processor systems.  On a single processor system, the kernel
365	  will run faster if you say N here.
366
367	  See also the SMP-HOWTO available at
368	  <http://www.tldp.org/docs.html#howto>.
369
370	  If you don't know what to do here, say N.
371
372config NR_CPUS
373	int "Maximum number of CPUs (2-4096)"
374	range 2 4096
375	depends on SMP
376	default "4096"
377	help
378	  You should set this to the number of CPUs in your system, but
379	  keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
380	  only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
381	  than 64 will cause the use of a CPU mask array, causing a small
382	  performance hit.
383
384config HOTPLUG_CPU
385	bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
386	depends on SMP && EXPERIMENTAL
387	select HOTPLUG
388	default n
389	---help---
390	  Say Y here to experiment with turning CPUs off and on.  CPUs
391	  can be controlled through /sys/devices/system/cpu/cpu#.
392	  Say N if you want to disable CPU hotplug.
393
394config ARCH_ENABLE_MEMORY_HOTPLUG
395	def_bool y
396
397config ARCH_ENABLE_MEMORY_HOTREMOVE
398	def_bool y
399
400config SCHED_SMT
401	bool "SMT scheduler support"
402	depends on SMP
403	help
404	  Improves the CPU scheduler's decision making when dealing with
405	  Intel IA64 chips with MultiThreading at a cost of slightly increased
406	  overhead in some places. If unsure say N here.
407
408config PERMIT_BSP_REMOVE
409	bool "Support removal of Bootstrap Processor"
410	depends on HOTPLUG_CPU
411	default n
412	---help---
413	Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
414	support.
415
416config FORCE_CPEI_RETARGET
417	bool "Force assumption that CPEI can be re-targeted"
418	depends on PERMIT_BSP_REMOVE
419	default n
420	---help---
421	Say Y if you need to force the assumption that CPEI can be re-targeted to
422	any cpu in the system. This hint is available via ACPI 3.0 specifications.
423	Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
424	This option it useful to enable this feature on older BIOS's as well.
425	You can also enable this by using boot command line option force_cpei=1.
426
427source "kernel/Kconfig.preempt"
428
429source "mm/Kconfig"
430
431config ARCH_SELECT_MEMORY_MODEL
432	def_bool y
433
434config ARCH_DISCONTIGMEM_ENABLE
435	def_bool y
436	help
437	  Say Y to support efficient handling of discontiguous physical memory,
438	  for architectures which are either NUMA (Non-Uniform Memory Access)
439	  or have huge holes in the physical address space for other reasons.
440 	  See <file:Documentation/vm/numa> for more.
441
442config ARCH_FLATMEM_ENABLE
443	def_bool y
444
445config ARCH_SPARSEMEM_ENABLE
446	def_bool y
447	depends on ARCH_DISCONTIGMEM_ENABLE
448	select SPARSEMEM_VMEMMAP_ENABLE
449
450config ARCH_DISCONTIGMEM_DEFAULT
451	def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
452	depends on ARCH_DISCONTIGMEM_ENABLE
453
454config NUMA
455	bool "NUMA support"
456	depends on !IA64_HP_SIM && !FLATMEM
457	default y if IA64_SGI_SN2
458	select ACPI_NUMA if ACPI
459	help
460	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
461	  Access).  This option is for configuring high-end multiprocessor
462	  server systems.  If in doubt, say N.
463
464config NODES_SHIFT
465	int "Max num nodes shift(3-10)"
466	range 3 10
467	default "10"
468	depends on NEED_MULTIPLE_NODES
469	help
470	  This option specifies the maximum number of nodes in your SSI system.
471	  MAX_NUMNODES will be 2^(This value).
472	  If in doubt, use the default.
473
474config ARCH_POPULATES_NODE_MAP
475	def_bool y
476
477# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
478# VIRTUAL_MEM_MAP has been retained for historical reasons.
479config VIRTUAL_MEM_MAP
480	bool "Virtual mem map"
481	depends on !SPARSEMEM
482	default y if !IA64_HP_SIM
483	help
484	  Say Y to compile the kernel with support for a virtual mem map.
485	  This code also only takes effect if a memory hole of greater than
486	  1 Gb is found during boot.  You must turn this option on if you
487	  require the DISCONTIGMEM option for your machine. If you are
488	  unsure, say Y.
489
490config HOLES_IN_ZONE
491	bool
492	default y if VIRTUAL_MEM_MAP
493
494config HAVE_ARCH_EARLY_PFN_TO_NID
495	def_bool NUMA && SPARSEMEM
496
497config HAVE_ARCH_NODEDATA_EXTENSION
498	def_bool y
499	depends on NUMA
500
501config USE_PERCPU_NUMA_NODE_ID
502	def_bool y
503	depends on NUMA
504
505config HAVE_MEMORYLESS_NODES
506	def_bool NUMA
507
508config ARCH_PROC_KCORE_TEXT
509	def_bool y
510	depends on PROC_KCORE
511
512config IA64_MCA_RECOVERY
513	tristate "MCA recovery from errors other than TLB."
514
515config PERFMON
516	bool "Performance monitor support"
517	help
518	  Selects whether support for the IA-64 performance monitor hardware
519	  is included in the kernel.  This makes some kernel data-structures a
520	  little bigger and slows down execution a bit, but it is generally
521	  a good idea to turn this on.  If you're unsure, say Y.
522
523config IA64_PALINFO
524	tristate "/proc/pal support"
525	help
526	  If you say Y here, you are able to get PAL (Processor Abstraction
527	  Layer) information in /proc/pal.  This contains useful information
528	  about the processors in your systems, such as cache and TLB sizes
529	  and the PAL firmware version in use.
530
531	  To use this option, you have to ensure that the "/proc file system
532	  support" (CONFIG_PROC_FS) is enabled, too.
533
534config IA64_MC_ERR_INJECT
535	tristate "MC error injection support"
536	help
537	  Adds support for MC error injection. If enabled, the kernel
538	  will provide a sysfs interface for user applications to
539	  call MC error injection PAL procedures to inject various errors.
540	  This is a useful tool for MCA testing.
541
542	  If you're unsure, do not select this option.
543
544config SGI_SN
545	def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
546
547config IA64_ESI
548	bool "ESI (Extensible SAL Interface) support"
549	help
550	  If you say Y here, support is built into the kernel to
551	  make ESI calls.  ESI calls are used to support vendor-specific
552	  firmware extensions, such as the ability to inject memory-errors
553	  for test-purposes.  If you're unsure, say N.
554
555config IA64_HP_AML_NFW
556	bool "Support ACPI AML calls to native firmware"
557	help
558	  This driver installs a global ACPI Operation Region handler for
559	  region 0xA1.  AML methods can use this OpRegion to call arbitrary
560	  native firmware functions.  The driver installs the OpRegion
561	  handler if there is an HPQ5001 device or if the user supplies
562	  the "force" module parameter, e.g., with the "aml_nfw.force"
563	  kernel command line option.
564
565source "drivers/sn/Kconfig"
566
567config KEXEC
568	bool "kexec system call (EXPERIMENTAL)"
569	depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
570	help
571	  kexec is a system call that implements the ability to shutdown your
572	  current kernel, and to start another kernel.  It is like a reboot
573	  but it is independent of the system firmware.   And like a reboot
574	  you can start any kernel with it, not just Linux.
575
576	  The name comes from the similarity to the exec system call.
577
578	  It is an ongoing process to be certain the hardware in a machine
579	  is properly shutdown, so do not be surprised if this code does not
580	  initially work for you.  It may help to enable device hotplugging
581	  support.  As of this writing the exact hardware interface is
582	  strongly in flux, so no good recommendation can be made.
583
584config CRASH_DUMP
585	  bool "kernel crash dumps"
586	  depends on IA64_MCA_RECOVERY && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
587	  help
588	    Generate crash dump after being started by kexec.
589
590source "drivers/firmware/Kconfig"
591
592source "fs/Kconfig.binfmt"
593
594endmenu
595
596menu "Power management and ACPI options"
597
598source "kernel/power/Kconfig"
599
600source "drivers/acpi/Kconfig"
601
602if PM
603
604source "arch/ia64/kernel/cpufreq/Kconfig"
605
606endif
607
608endmenu
609
610if !IA64_HP_SIM
611
612menu "Bus options (PCI, PCMCIA)"
613
614config PCI
615	bool "PCI support"
616	help
617	  Real IA-64 machines all have PCI/PCI-X/PCI Express busses.  Say Y
618	  here unless you are using a simulator without PCI support.
619
620config PCI_DOMAINS
621	def_bool PCI
622
623config PCI_SYSCALL
624	def_bool PCI
625
626source "drivers/pci/pcie/Kconfig"
627
628source "drivers/pci/Kconfig"
629
630source "drivers/pci/hotplug/Kconfig"
631
632source "drivers/pcmcia/Kconfig"
633
634config DMAR
635        bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
636        depends on IA64_GENERIC && ACPI && EXPERIMENTAL
637	help
638	  DMA remapping (DMAR) devices support enables independent address
639	  translations for Direct Memory Access (DMA) from devices.
640	  These DMA remapping devices are reported via ACPI tables
641	  and include PCI device scope covered by these DMA
642	  remapping devices.
643
644config DMAR_DEFAULT_ON
645	def_bool y
646	prompt "Enable DMA Remapping Devices by default"
647	depends on DMAR
648	help
649	  Selecting this option will enable a DMAR device at boot time if
650	  one is found. If this option is not selected, DMAR support can
651	  be enabled by passing intel_iommu=on to the kernel. It is
652	  recommended you say N here while the DMAR code remains
653	  experimental.
654
655endmenu
656
657endif
658
659source "net/Kconfig"
660
661source "drivers/Kconfig"
662
663source "arch/ia64/hp/sim/Kconfig"
664
665config MSPEC
666	tristate "Memory special operations driver"
667	depends on IA64
668	select IA64_UNCACHED_ALLOCATOR
669	help
670	  If you have an ia64 and you want to enable memory special
671	  operations support (formerly known as fetchop), say Y here,
672	  otherwise say N.
673
674source "fs/Kconfig"
675
676source "arch/ia64/Kconfig.debug"
677
678source "security/Kconfig"
679
680source "crypto/Kconfig"
681
682source "arch/ia64/kvm/Kconfig"
683
684source "lib/Kconfig"
685
686config IOMMU_HELPER
687	def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
688
689config IOMMU_API
690	def_bool (DMAR)
691