1#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/config-language.txt.
4#
5mainmenu_name "Linux Kernel Configuration"
6
7define_bool CONFIG_X86 y
8define_bool CONFIG_SBUS n
9
10define_bool CONFIG_UID16 y
11
12mainmenu_option next_comment
13comment 'Code maturity level options'
14bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL
15endmenu
16
17mainmenu_option next_comment
18comment 'Loadable module support'
19bool 'Enable loadable module support' CONFIG_MODULES
20if [ "$CONFIG_MODULES" = "y" ]; then
21   bool '  Set version information on all module symbols' CONFIG_MODVERSIONS
22   bool '  Kernel module loader' CONFIG_KMOD
23fi
24endmenu
25
26mainmenu_option next_comment
27comment 'Processor type and features'
28choice 'Processor family' \
29	"386					CONFIG_M386 \
30	 486					CONFIG_M486 \
31	 586/K5/5x86/6x86/6x86MX		CONFIG_M586 \
32	 Pentium-Classic			CONFIG_M586TSC \
33	 Pentium-MMX				CONFIG_M586MMX \
34	 Pentium-Pro/Celeron/Pentium-II		CONFIG_M686 \
35	 Pentium-III/Celeron(Coppermine)	CONFIG_MPENTIUMIII \
36	 Pentium-4				CONFIG_MPENTIUM4 \
37	 K6/K6-II/K6-III			CONFIG_MK6 \
38	 Athlon/Duron/K7			CONFIG_MK7 \
39	 Opteron/Athlon64/Hammer/K8		CONFIG_MK8 \
40	 Elan					CONFIG_MELAN \
41	 Crusoe					CONFIG_MCRUSOE \
42	 Geode-GX/LX				CONFIG_MGEODE_LX \
43	 Winchip-C6				CONFIG_MWINCHIPC6 \
44	 Winchip-2				CONFIG_MWINCHIP2 \
45	 Winchip-2A/Winchip-3			CONFIG_MWINCHIP3D \
46	 CyrixIII/VIA-C3			CONFIG_MCYRIXIII \
47	 VIA-C3-2				CONFIG_MVIAC3_2" Pentium-Pro
48#
49# Define implied options from the CPU selection here
50#
51
52if [ "$CONFIG_M386" = "y" ]; then
53   define_bool CONFIG_X86_CMPXCHG n
54   define_bool CONFIG_X86_XADD n
55   define_int  CONFIG_X86_L1_CACHE_SHIFT 4
56   define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y
57   define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n
58   define_bool CONFIG_X86_PPRO_FENCE y
59   define_bool CONFIG_X86_F00F_WORKS_OK n
60   define_bool CONFIG_X86_HAS_TSC n
61else
62   define_bool CONFIG_X86_WP_WORKS_OK y
63   define_bool CONFIG_X86_INVLPG y
64   define_bool CONFIG_X86_CMPXCHG y
65   define_bool CONFIG_X86_XADD y
66   define_bool CONFIG_X86_BSWAP y
67   define_bool CONFIG_X86_POPAD_OK y
68   define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n
69   define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y
70fi
71if [ "$CONFIG_M486" = "y" ]; then
72   define_int  CONFIG_X86_L1_CACHE_SHIFT 4
73   define_bool CONFIG_X86_USE_STRING_486 y
74   define_bool CONFIG_X86_ALIGNMENT_16 y
75   define_bool CONFIG_X86_PPRO_FENCE y
76   define_bool CONFIG_X86_F00F_WORKS_OK n
77   define_bool CONFIG_X86_HAS_TSC n
78fi
79if [ "$CONFIG_M586" = "y" ]; then
80   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
81   define_bool CONFIG_X86_USE_STRING_486 y
82   define_bool CONFIG_X86_ALIGNMENT_16 y
83   define_bool CONFIG_X86_PPRO_FENCE y
84   define_bool CONFIG_X86_F00F_WORKS_OK n
85   define_bool CONFIG_X86_HAS_TSC n
86fi
87if [ "$CONFIG_M586TSC" = "y" ]; then
88   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
89   define_bool CONFIG_X86_USE_STRING_486 y
90   define_bool CONFIG_X86_ALIGNMENT_16 y
91   define_bool CONFIG_X86_HAS_TSC y
92   define_bool CONFIG_X86_PPRO_FENCE y
93   define_bool CONFIG_X86_F00F_WORKS_OK n
94fi
95if [ "$CONFIG_M586MMX" = "y" ]; then
96   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
97   define_bool CONFIG_X86_USE_STRING_486 y
98   define_bool CONFIG_X86_ALIGNMENT_16 y
99   define_bool CONFIG_X86_HAS_TSC y
100   define_bool CONFIG_X86_GOOD_APIC y
101   define_bool CONFIG_X86_PPRO_FENCE y
102   define_bool CONFIG_X86_F00F_WORKS_OK n
103fi
104if [ "$CONFIG_M686" = "y" ]; then
105   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
106   define_bool CONFIG_X86_HAS_TSC y
107   define_bool CONFIG_X86_GOOD_APIC y
108   bool 'PGE extensions (not for Cyrix/Transmeta)' CONFIG_X86_PGE
109   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
110   define_bool CONFIG_X86_PPRO_FENCE y
111   define_bool CONFIG_X86_F00F_WORKS_OK y
112fi
113if [ "$CONFIG_MPENTIUMIII" = "y" ]; then
114   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
115   define_bool CONFIG_X86_HAS_TSC y
116   define_bool CONFIG_X86_GOOD_APIC y
117   define_bool CONFIG_X86_PGE y
118   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
119   define_bool CONFIG_X86_F00F_WORKS_OK y
120fi
121if [ "$CONFIG_MPENTIUM4" = "y" ]; then
122   define_int  CONFIG_X86_L1_CACHE_SHIFT 7
123   define_bool CONFIG_X86_HAS_TSC y
124   define_bool CONFIG_X86_GOOD_APIC y
125   define_bool CONFIG_X86_PGE y
126   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
127   define_bool CONFIG_X86_F00F_WORKS_OK y
128fi
129if [ "$CONFIG_MK6" = "y" ]; then
130   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
131   define_bool CONFIG_X86_ALIGNMENT_16 y
132   define_bool CONFIG_X86_HAS_TSC y
133   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
134fi
135if [ "$CONFIG_MK8" = "y" ]; then
136   # for now. may later want to add SSE support and optimized
137   # functions
138   define_bool CONFIG_MK7 y
139fi
140if [ "$CONFIG_MK7" = "y" ]; then
141   define_int  CONFIG_X86_L1_CACHE_SHIFT 6
142   define_bool CONFIG_X86_HAS_TSC y
143   define_bool CONFIG_X86_GOOD_APIC y
144   define_bool CONFIG_X86_USE_3DNOW y
145   define_bool CONFIG_X86_PGE y
146   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
147   define_bool CONFIG_X86_F00F_WORKS_OK y
148fi
149if [ "$CONFIG_MELAN" = "y" ]; then
150   define_int  CONFIG_X86_L1_CACHE_SHIFT 4
151   define_bool CONFIG_X86_USE_STRING_486 y
152   define_bool CONFIG_X86_ALIGNMENT_16 y
153   define_bool CONFIG_X86_F00F_WORKS_OK y
154   define_bool CONFIG_X86_HAS_TSC n
155fi
156if [ "$CONFIG_MCYRIXIII" = "y" ]; then
157   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
158   define_bool CONFIG_X86_HAS_TSC y
159   define_bool CONFIG_X86_ALIGNMENT_16 y
160   define_bool CONFIG_X86_USE_3DNOW y
161   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
162   define_bool CONFIG_X86_F00F_WORKS_OK y
163fi
164if [ "$CONFIG_MVIAC3_2" = "y" ]; then
165   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
166   define_bool CONFIG_X86_HAS_TSC y
167   define_bool CONFIG_X86_ALIGNMENT_16 y
168   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
169   define_bool CONFIG_X86_F00F_WORKS_OK y
170fi
171if [ "$CONFIG_MCRUSOE" = "y" ]; then
172   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
173   define_bool CONFIG_X86_HAS_TSC y
174   define_bool CONFIG_X86_F00F_WORKS_OK y
175fi
176if [ "$CONFIG_MGEODE_LX" = "y" ]; then
177   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
178   define_bool CONFIG_X86_USE_STRING_486 y
179   define_bool CONFIG_X86_ALIGNMENT_16 y
180   define_bool CONFIG_X86_HAS_TSC y
181   define_bool CONFIG_X86_PPRO_FENCE y
182   define_bool CONFIG_X86_F00F_WORKS_OK y
183   define_bool CONFIG_X86_USE_3DNOW y
184   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
185   define_bool CONFIG_X86_OOSTORE y
186fi
187if [ "$CONFIG_MWINCHIPC6" = "y" ]; then
188   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
189   define_bool CONFIG_X86_ALIGNMENT_16 y
190   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
191   define_bool CONFIG_X86_OOSTORE y
192   define_bool CONFIG_X86_F00F_WORKS_OK y
193   define_bool CONFIG_X86_HAS_TSC n
194fi
195if [ "$CONFIG_MWINCHIP2" = "y" ]; then
196   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
197   define_bool CONFIG_X86_ALIGNMENT_16 y
198   define_bool CONFIG_X86_HAS_TSC y
199   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
200   define_bool CONFIG_X86_OOSTORE y
201   define_bool CONFIG_X86_F00F_WORKS_OK y
202fi
203if [ "$CONFIG_MWINCHIP3D" = "y" ]; then
204   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
205   define_bool CONFIG_X86_ALIGNMENT_16 y
206   define_bool CONFIG_X86_HAS_TSC y
207   define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
208   define_bool CONFIG_X86_OOSTORE y
209   define_bool CONFIG_X86_F00F_WORKS_OK y
210fi
211
212bool 'Machine Check Exception' CONFIG_X86_MCE
213
214tristate 'Toshiba Laptop support' CONFIG_TOSHIBA
215tristate 'Dell laptop support' CONFIG_I8K
216
217tristate '/dev/cpu/microcode - Intel IA32 CPU microcode support' CONFIG_MICROCODE
218tristate '/dev/cpu/*/msr - Model-specific register support' CONFIG_X86_MSR
219tristate '/dev/cpu/*/cpuid - CPU information support' CONFIG_X86_CPUID
220
221if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
222   tristate 'BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)' CONFIG_EDD
223fi
224
225choice 'High Memory Support' \
226	"off    CONFIG_NOHIGHMEM \
227	 4GB    CONFIG_HIGHMEM4G \
228	 64GB   CONFIG_HIGHMEM64G" off
229if [ "$CONFIG_HIGHMEM4G" = "y" -o "$CONFIG_HIGHMEM64G" = "y" ]; then
230   define_bool CONFIG_HIGHMEM y
231else
232   define_bool CONFIG_HIGHMEM n
233fi
234if [ "$CONFIG_HIGHMEM64G" = "y" ]; then
235   define_bool CONFIG_X86_PAE y
236fi
237
238if [ "$CONFIG_HIGHMEM" = "y" ]; then
239   bool 'HIGHMEM I/O support' CONFIG_HIGHIO
240fi
241
242bool 'Math emulation' CONFIG_MATH_EMULATION
243bool 'MTRR (Memory Type Range Register) support' CONFIG_MTRR
244bool 'Symmetric multi-processing support' CONFIG_SMP
245if [ "$CONFIG_SMP" != "y" ]; then
246   bool 'Local APIC support on uniprocessors' CONFIG_X86_UP_APIC
247   dep_bool 'IO-APIC support on uniprocessors' CONFIG_X86_UP_IOAPIC $CONFIG_X86_UP_APIC
248   if [ "$CONFIG_X86_UP_APIC" = "y" ]; then
249      define_bool CONFIG_X86_LOCAL_APIC y
250   fi
251   if [ "$CONFIG_X86_UP_IOAPIC" = "y" ]; then
252      define_bool CONFIG_X86_IO_APIC y
253   fi
254else
255   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
256   bool 'Multi-node NUMA system support' CONFIG_X86_NUMA
257   if [ "$CONFIG_X86_NUMA" = "y" ]; then
258      #Platform Choices
259      bool ' Multiquad (IBM/Sequent) NUMAQ support' CONFIG_X86_NUMAQ
260      if [ "$CONFIG_X86_NUMAQ" = "y" ]; then
261         define_bool CONFIG_X86_CLUSTERED_APIC y
262         define_bool CONFIG_MULTIQUAD y
263      fi
264      bool ' IBM x440 (Summit/EXA) support' CONFIG_X86_SUMMIT
265      if [ "$CONFIG_X86_SUMMIT" = "y" ]; then
266         define_bool CONFIG_X86_CLUSTERED_APIC y
267      fi
268   fi
269fi
270
271define_bool CONFIG_X86_TSC n
272if [ "$CONFIG_X86_HAS_TSC" = "y" -a "$CONFIG_X86_NUMA" != "y" ]; then
273   bool 'Unsynced TSC support' CONFIG_X86_TSC_DISABLE
274   if [ "$CONFIG_X86_TSC_DISABLE" != "y" ]; then
275      define_bool CONFIG_X86_TSC y
276   fi
277fi
278
279if [ "$CONFIG_SMP" = "y" -a "$CONFIG_X86_CMPXCHG" = "y" ]; then
280   define_bool CONFIG_HAVE_DEC_LOCK y
281fi
282endmenu
283
284mainmenu_option next_comment
285comment 'General setup'
286
287bool 'Networking support' CONFIG_NET
288
289# Visual Workstation support is utterly broken.
290# If you want to see it working mail an VW540 to hch@infradead.org 8)
291#bool 'SGI Visual Workstation support' CONFIG_VISWS
292if [ "$CONFIG_VISWS" = "y" ]; then
293   define_bool CONFIG_X86_VISWS_APIC y
294   define_bool CONFIG_X86_LOCAL_APIC y
295   define_bool CONFIG_PCI y
296   define_bool CONFIG_ISA n
297else
298   if [ "$CONFIG_SMP" = "y" ]; then
299      define_bool CONFIG_X86_IO_APIC y
300      define_bool CONFIG_X86_LOCAL_APIC y
301   fi
302   bool 'PCI support' CONFIG_PCI
303   if [ "$CONFIG_PCI" = "y" ]; then
304      choice '  PCI access mode' \
305	"BIOS		CONFIG_PCI_GOBIOS	\
306	 Direct		CONFIG_PCI_GODIRECT	\
307	 Any		CONFIG_PCI_GOANY"	Any
308      if [ "$CONFIG_PCI_GOBIOS" = "y" -o "$CONFIG_PCI_GOANY" = "y" ]; then
309         define_bool CONFIG_PCI_BIOS y
310      fi
311      if [ "$CONFIG_PCI_GODIRECT" = "y" -o "$CONFIG_PCI_GOANY" = "y" ]; then
312         define_bool CONFIG_PCI_DIRECT y
313      fi
314   fi
315   bool 'ISA bus support' CONFIG_ISA
316fi
317
318source drivers/pci/Config.in
319
320bool 'EISA support' CONFIG_EISA
321
322if [ "$CONFIG_VISWS" != "y" ]; then
323   bool 'MCA support' CONFIG_MCA
324else
325   define_bool CONFIG_MCA n
326fi
327
328bool 'Support for hot-pluggable devices' CONFIG_HOTPLUG
329
330if [ "$CONFIG_HOTPLUG" = "y" ] ; then
331   source drivers/pcmcia/Config.in
332   source drivers/hotplug/Config.in
333else
334   define_bool CONFIG_PCMCIA n
335   define_bool CONFIG_HOTPLUG_PCI n
336fi
337
338bool 'System V IPC' CONFIG_SYSVIPC
339bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
340bool 'Sysctl support' CONFIG_SYSCTL
341if [ "$CONFIG_PROC_FS" = "y" ]; then
342   choice 'Kernel core (/proc/kcore) format' \
343	"ELF		CONFIG_KCORE_ELF	\
344	 A.OUT		CONFIG_KCORE_AOUT" ELF
345fi
346tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
347bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
348tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
349bool 'Select task to kill on out of memory condition' CONFIG_OOM_KILLER
350
351bool 'Power Management support' CONFIG_PM
352
353dep_tristate '  Advanced Power Management BIOS support' CONFIG_APM $CONFIG_PM
354if [ "$CONFIG_APM" != "n" ]; then
355   bool '    Ignore USER SUSPEND' CONFIG_APM_IGNORE_USER_SUSPEND
356   bool '    Enable PM at boot time' CONFIG_APM_DO_ENABLE
357   bool '    Make CPU Idle calls when idle' CONFIG_APM_CPU_IDLE
358   bool '    Enable console blanking using APM' CONFIG_APM_DISPLAY_BLANK
359   bool '    RTC stores time in GMT' CONFIG_APM_RTC_IS_GMT
360   bool '    Allow interrupts during APM BIOS calls' CONFIG_APM_ALLOW_INTS
361   bool '    Use real mode APM BIOS call to power off' CONFIG_APM_REAL_MODE_POWER_OFF
362fi
363
364source drivers/acpi/Config.in
365
366endmenu
367
368source drivers/mtd/Config.in
369
370source drivers/parport/Config.in
371
372source drivers/pnp/Config.in
373
374source drivers/block/Config.in
375
376source drivers/md/Config.in
377
378if [ "$CONFIG_NET" = "y" ]; then
379   source net/Config.in
380fi
381
382source drivers/telephony/Config.in
383
384mainmenu_option next_comment
385comment 'ATA/IDE/MFM/RLL support'
386
387tristate 'ATA/IDE/MFM/RLL support' CONFIG_IDE
388
389if [ "$CONFIG_IDE" != "n" ]; then
390   source drivers/ide/Config.in
391else
392   define_bool CONFIG_BLK_DEV_HD n
393fi
394endmenu
395
396mainmenu_option next_comment
397comment 'SCSI support'
398
399tristate 'SCSI support' CONFIG_SCSI
400
401if [ "$CONFIG_SCSI" != "n" ]; then
402   source drivers/scsi/Config.in
403fi
404endmenu
405
406source drivers/message/fusion/Config.in
407
408source drivers/ieee1394/Config.in
409
410source drivers/message/i2o/Config.in
411
412if [ "$CONFIG_NET" = "y" ]; then
413   mainmenu_option next_comment
414   comment 'Network device support'
415
416   bool 'Network device support' CONFIG_NETDEVICES
417   if [ "$CONFIG_NETDEVICES" = "y" ]; then
418      source drivers/net/Config.in
419      if [ "$CONFIG_ATM" = "y" -o "$CONFIG_ATM" = "m" ]; then
420         source drivers/atm/Config.in
421      fi
422   fi
423   endmenu
424fi
425
426source net/ax25/Config.in
427
428source net/irda/Config.in
429
430mainmenu_option next_comment
431comment 'ISDN subsystem'
432if [ "$CONFIG_NET" != "n" ]; then
433   tristate 'ISDN support' CONFIG_ISDN
434   if [ "$CONFIG_ISDN" != "n" ]; then
435      source drivers/isdn/Config.in
436   fi
437fi
438endmenu
439
440if [ "$CONFIG_ISA" = "y" ]; then
441    mainmenu_option next_comment
442    comment 'Old CD-ROM drivers (not SCSI, not IDE)'
443
444    bool 'Support non-SCSI/IDE/ATAPI CDROM drives' CONFIG_CD_NO_IDESCSI
445    if [ "$CONFIG_CD_NO_IDESCSI" != "n" ]; then
446       source drivers/cdrom/Config.in
447    fi
448    endmenu
449fi
450
451#
452# input before char - char/joystick depends on it. As does USB.
453#
454source drivers/input/Config.in
455source drivers/char/Config.in
456
457#source drivers/misc/Config.in
458
459source drivers/media/Config.in
460
461source fs/Config.in
462
463if [ "$CONFIG_VT" = "y" ]; then
464   mainmenu_option next_comment
465   comment 'Console drivers'
466   bool 'VGA text console' CONFIG_VGA_CONSOLE
467   bool 'Video mode selection support' CONFIG_VIDEO_SELECT
468   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
469      tristate 'MDA text console (dual-headed) (EXPERIMENTAL)' CONFIG_MDA_CONSOLE
470      source drivers/video/Config.in
471   fi
472   endmenu
473fi
474
475mainmenu_option next_comment
476comment 'Sound'
477
478tristate 'Sound card support' CONFIG_SOUND
479if [ "$CONFIG_SOUND" != "n" ]; then
480   source drivers/sound/Config.in
481fi
482endmenu
483
484source drivers/usb/Config.in
485
486source net/bluetooth/Config.in
487
488mainmenu_option next_comment
489comment 'Kernel hacking'
490
491bool 'Kernel debugging' CONFIG_DEBUG_KERNEL
492if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then
493   bool '  Check for stack overflows' CONFIG_DEBUG_STACKOVERFLOW
494   bool '  Debug high memory support' CONFIG_DEBUG_HIGHMEM
495   bool '  Debug memory allocations' CONFIG_DEBUG_SLAB
496   bool '  Memory mapped I/O debugging' CONFIG_DEBUG_IOVIRT
497   bool '  Magic SysRq key' CONFIG_MAGIC_SYSRQ
498   bool '  Spinlock debugging' CONFIG_DEBUG_SPINLOCK
499   bool '  Compile the kernel with frame pointers' CONFIG_FRAME_POINTER
500fi
501
502int 'Kernel messages buffer length shift (0 = default)' CONFIG_LOG_BUF_SHIFT 0
503
504endmenu
505
506source crypto/Config.in
507source lib/Config.in
508