MOXA linux-2.6.x / linux-2.6.9-uc0 from sdlinux-moxaart.tgz
[linux-2.6.9-moxart.git] / arch / sh / Kconfig
blobde30f48e5a2296f1c841c4f1b2806137b43e9e9a
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux/SuperH Kernel Configuration"
8 config SUPERH
9         bool
10         default y
11         help
12           The SuperH is a RISC processor targeted for use in embedded systems
13           and consumer electronics; it was also used in the Sega Dreamcast
14           gaming console.  The SuperH port has a home page at
15           <http://www.linux-sh.org/>.
17 config UID16
18         bool
19         default y
21 config RWSEM_GENERIC_SPINLOCK
22         bool
23         default y
25 config RWSEM_XCHGADD_ALGORITHM
26         bool
28 source "init/Kconfig"
30 menu "System type"
32 choice
33         prompt "SuperH system type"
34         default SH_UNKNOWN
36 config SH_SOLUTION_ENGINE
37         bool "SolutionEngine"
38         help
39           Select SolutionEngine if configuring for a Hitachi SH7709
40           or SH7750 evalutation board.
42 config SH_7751_SOLUTION_ENGINE
43         bool "SolutionEngine7751"
44         help
45           Select 7751 SolutionEngine if configuring for a Hitachi SH7751
46           evalutation board.
48 config SH_7300_SOLUTION_ENGINE
49         bool "SolutionEngine7300"
50         help
51           Select 7300 SolutionEngine if configuring for a Hitachi SH7300(SH-Mobile V)
52           evalutation board.
54 config SH_7751_SYSTEMH
55         bool "SystemH7751R"
56         help
57           Select SystemH if you are configuring for a Renesas SystemH
58           7751R evaluation board.
60 config SH_STB1_HARP
61         bool "STB1_Harp"
63 config SH_STB1_OVERDRIVE
64         bool "STB1_Overdrive"
66 config SH_HP620
67         bool "HP620"
68         help
69           Select HP620 if configuring for a HP jornada HP620.
70           More information (hardware only) at
71           <http://www.hp.com/jornada/>.
73 config SH_HP680
74         bool "HP680"
75         help
76           Select HP680 if configuring for a HP Jornada HP680.
77           More information (hardware only) at
78           <http://www.hp.com/jornada/products/680/>.
80 config SH_HP690
81         bool "HP690"
82         help
83           Select HP690 if configuring for a HP Jornada HP690.
84           More information (hardware only)
85           at <http://www.hp.com/jornada/products/680/>.
87 config SH_CQREEK
88         bool "CqREEK"
89         help
90           Select CqREEK if configuring for a CqREEK SH7708 or SH7750.
91           More information at
92           <http://sources.redhat.com/ecos/hardware.html#SuperH>.
94 config SH_DMIDA
95         bool "DMIDA"
96         help
97           Select DMIDA if configuring for a DataMyte 4000 Industrial
98           Digital Assistant. More information at <http://www.dmida.com/>.
100 config SH_EC3104
101         bool "EC3104"
102         help
103           Select EC3104 if configuring for a system with an Eclipse
104           International EC3104 chip, e.g. the Harris AD2000.
106 config SH_SATURN
107         bool "Saturn"
108         help
109           Select Saturn if configuring for a SEGA Saturn.
111 config SH_DREAMCAST
112         bool "Dreamcast"
113         help
114           Select Dreamcast if configuring for a SEGA Dreamcast.
115           More information at
116           <http://www.m17n.org/linux-sh/dreamcast/>.  There is a
117           Dreamcast project is at <http://linuxdc.sourceforge.net/>.
119 config SH_CAT68701
120         bool "CAT68701"
122 config SH_BIGSUR
123         bool "BigSur"
125 config SH_SH2000
126         bool "SH2000"
127         help
128           SH-2000 is a single-board computer based around SH7709A chip
129           intended for embedded applications.
130           It has an Ethernet interface (CS8900A), direct connected
131           Compact Flash socket, three serial ports and PC-104 bus.
132           More information at <http://sh2000.sh-linux.org>.
134 config SH_ADX
135         bool "ADX"
137 config SH_MPC1211
138         bool "MPC1211"
140 config SH_SECUREEDGE5410
141         bool "SecureEdge5410"
142         help
143           Select SecureEdge5410 if configuring for a SnapGear SH board.
144           This includes both the OEM SecureEdge products as well as the
145           SME product line.
147 config SH_HS7751RVOIP
148         bool "HS7751RVOIP"
149         help
150           Select HS7751RVOIP if configuring for a Renesas Technology
151           Sales VoIP board.
153 config SH_RTS7751R2D
154         bool "RTS7751R2D"
155         help
156           Select RTS7751R2D if configuring for a Renesas Technology
157           Sales SH-Graphics board.
159 config SH_UNKNOWN
160         bool "BareCPU"
161         help
162           "Bare CPU" aka "unknown" means an SH-based system which is not one
163           of the specific ones mentioned above, which means you need to enter
164           all sorts of stuff like CONFIG_MEMORY_START because the config
165           system doesn't already know what it is.  You get a machine vector
166           without any platform-specific code in it, so things like the RTC may
167           not work.
169           This option is for the early stages of porting to a new machine.
171 endchoice
173 choice
174         prompt "Processor family"
175         default CPU_SH4
176         help
177           This option determines the CPU family to compile for. Supported
178           targets are SH-2, SH-3, and SH-4. These options are independent of
179           CPU functionality. As such, SH-DSP users will still want to select
180           their respective processor family in addition to the DSP support
181           option.
183 config CPU_SH2
184         bool "SH-2"
185         select SH_WRITETHROUGH
187 config CPU_SH3
188         bool "SH-3"
190 config CPU_SH4
191         bool "SH-4"
193 endchoice
195 choice
196         prompt "Processor subtype"
198 config CPU_SUBTYPE_SH7604
199         bool "SH7604"
200         depends on CPU_SH2
201         help
202           Select SH7604 if you have SH7604
204 config CPU_SUBTYPE_SH7300
205         bool "SH7300"
206         depends on CPU_SH3
208 config CPU_SUBTYPE_SH7705
209         bool "SH7705"
210         depends on CPU_SH3
212 config CPU_SUBTYPE_SH7707
213         bool "SH7707"
214         depends on CPU_SH3
215         help
216           Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
218 config CPU_SUBTYPE_SH7708
219         bool "SH7708"
220         depends on CPU_SH3
221         help
222           Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
223           if you have a 100 Mhz SH-3 HD6417708R CPU.
225 config CPU_SUBTYPE_SH7709
226         bool "SH7709"
227         depends on CPU_SH3
228         help
229           Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
231 config CPU_SUBTYPE_SH7750
232         bool "SH7750"
233         depends on CPU_SH4
234         help
235           Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
237 config CPU_SUBTYPE_SH7751
238         bool "SH7751/SH7751R"
239         depends on CPU_SH4
240         help
241           Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
242           or if you have a HD6417751R CPU.
244 config CPU_SUBTYPE_SH7760
245         bool "SH7760"
246         depends on CPU_SH4
248 config CPU_SUBTYPE_ST40STB1
249        bool "ST40STB1 / ST40RA"
250        depends on CPU_SH4
251        help
252          Select ST40STB1 if you have a ST40RA CPU.
253          This was previously called the ST40STB1, hence the option name.
255 config CPU_SUBTYPE_ST40GX1
256        bool "ST40GX1"
257        depends on CPU_SH4
258        help
259          Select ST40GX1 if you have a ST40GX1 CPU.
261 endchoice
263 config MMU
264         bool "Support for memory management hardware"
265         depends on !CPU_SH2
266         default y
267         help
268           Early SH processors (such as the SH7604) lack an MMU. In order to
269           boot on these systems, this option must not be set.
271           On other systems (such as the SH-3 and 4) where an MMU exists,
272           turning this off will boot the kernel on these machines with the
273           MMU implicitly switched off.
275 choice
276         prompt "HugeTLB page size"
277         depends on HUGETLB_PAGE && CPU_SH4 && MMU
278         default HUGETLB_PAGE_SIZE_64K
280 config HUGETLB_PAGE_SIZE_64K
281         bool "64K"
283 config HUGETLB_PAGE_SIZE_1MB
284         bool "1MB"
286 endchoice
288 config CMDLINE_BOOL
289         bool "Default bootloader kernel arguments"
291 config CMDLINE
292         string "Initial kernel command string"
293         depends on CMDLINE_BOOL
294         default "console=ttySC1,115200"
296 # Platform-specific memory start and size definitions
297 config MEMORY_START
298         hex "Physical memory start address" if !MEMORY_SET || MEMORY_OVERRIDE
299         default "0x08000000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || SH_MPC1211 || SH_SECUREEDGE5410
300         default "0x0c000000" if !MEMORY_OVERRIDE && (SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || SH_HS7751RVOIP || SH_RTS7751R2D)
301         ---help---
302           Computers built with Hitachi SuperH processors always
303           map the ROM starting at address zero.  But the processor
304           does not specify the range that RAM takes.
306           The physical memory (RAM) start address will be automatically
307           set to 08000000, unless you selected one of the following
308           processor types: SolutionEngine, Overdrive, HP620, HP680, HP690,
309           in which case the start address will be set to 0c000000.
311           Tweak this only when porting to a new machine which is not already
312           known by the config system.  Changing it from the known correct
313           value on any of the known systems will only lead to disaster.
315 config MEMORY_SIZE
316         hex "Physical memory size" if !MEMORY_SET || MEMORY_OVERRIDE
317         default "0x00400000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || !MEMORY_OVERRIDE && (SH_HP600 || SH_BIGSUR || SH_SH2000)
318         default "0x01000000" if !MEMORY_OVERRIDE && SH_DREAMCAST || SH_SECUREEDGE5410
319         default "0x04000000" if !MEMORY_OVERRIDE && (SH_7751_SOLUTION_ENGINE || SH_HS7751RVOIP || SH_RTS7751R2D)
320         default "0x02000000" if !MEMORY_OVERRIDE && SH_SOLUTION_ENGINE
321         default "0x08000000" if SH_MPC1211
322         help
323           This sets the default memory size assumed by your SH kernel. It can
324           be overridden as normal by the 'mem=' argument on the kernel command
325           line. If unsure, consult your board specifications or just leave it
326           as 0x00400000 which was the default value before this became
327           configurable.
329 config MEMORY_SET
330         bool
331         depends on !MEMORY_OVERRIDE && (SH_MPC1211 || SH_ADX || SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || SH_SECUREEDGE5410 || SH_HS7751RVOIP || SH_RTS7751R2D)
332         default y
333         help
334           This is an option about which you will never be asked a question.
335           Therefore, I conclude that you do not exist - go away.
337           There is a grue here.
339 # If none of the above have set memory start/size, ask the user.
340 config MEMORY_OVERRIDE
341         bool "Override default load address and memory size"
343 # XXX: break these out into the board-specific configs below
344 config CF_ENABLER
345         bool "Compact Flash Enabler support"
346         depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701
347         ---help---
348           Compact Flash is a small, removable mass storage device introduced
349           in 1994 originally as a PCMCIA device.  If you say `Y' here, you
350           compile in support for Compact Flash devices directly connected to
351           a SuperH processor.  A Compact Flash FAQ is available at
352           <http://www.compactflash.org/faqs/faq.htm>.
354           If your board has "Directly Connected" CompactFlash at area 5 or 6,
355           you may want to enable this option.  Then, you can use CF as
356           primary IDE drive (only tested for SanDisk).
358           If in doubt, select 'N'.
360 choice
361         prompt "Compact Flash Connection Area"
362         depends on CF_ENABLER
363         default CF_AREA6
365 config CF_AREA5
366         bool "Area5"
367         help
368           If your board has "Directly Connected" CompactFlash, You should
369           select the area where your CF is connected to.
371           - "Area5" if CompactFlash is connected to Area 5 (0x14000000)
372           - "Area6" if it is connected to Area 6 (0x18000000)
374           "Area6" will work for most boards. For ADX, select "Area5".
376 config CF_AREA6
377         bool "Area6"
379 endchoice
381 config CF_BASE_ADDR
382         hex
383         depends on CF_ENABLER
384         default "0xb8000000" if CF_AREA6
385         default "0xb4000000" if CF_AREA5
387 # The SH7750 RTC module is disabled in the Dreamcast
388 config SH_RTC
389         bool
390         depends on !SH_DREAMCAST && !SH_SATURN && !SH_7300_SOLUTION_ENGINE
391         default y
392         help
393           Selecting this option will allow the Linux kernel to emulate
394           PC's RTC.
396           If unsure, say N.
398 config SH_DSP
399         bool "DSP support"
400         depends on !CPU_SH4
401         default y
402         help
403           Selecting this option will enable support for SH processors that
404           have DSP units (ie, SH2-DSP and SH3-DSP). It is safe to say Y here
405           by default, as the existance of the DSP will be probed at runtime.
407           This option must be set in order to enable the DSP.
409 config SH_ADC
410         bool "ADC support"
411         depends on CPU_SH3
412         default y
413         help
414           Selecting this option will allow the Linux kernel to use SH3 on-chip
415           ADC module.
417           If unsure, say N.
419 config SH_HP600
420         bool
421         depends on SH_HP620 || SH_HP680 || SH_HP690
422         default y
424 config CPU_SUBTYPE_ST40
425        bool
426        depends on CPU_SUBTYPE_ST40STB1 || CPU_SUBTYPE_ST40GX1
427        default y
429 config DISCONTIGMEM
430         bool
431         depends on SH_HP690
432         default y
433         help
434           Say Y to upport efficient handling of discontiguous physical memory,
435           for architectures which are either NUMA (Non-Uniform Memory Access)
436           or have huge holes in the physical address space for other reasons.
437           See <file:Documentation/vm/numa> for more.
439 config ZERO_PAGE_OFFSET
440         hex "Zero page offset"
441         default "0x00001000" if !SH_MPC1211
442         default "0x00004000" if SH_MPC1211
443         help
444           This sets the default offset of zero page.
446 # XXX: needs to lose subtype for system type
447 config ST40_LMI_MEMORY
448         bool "Memory on LMI"
449         depends on CPU_SUBTYPE_ST40STB1
451 config MEMORY_START
452         hex
453         depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
454         default "0x08000000"
456 config MEMORY_SIZE
457         hex
458         depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
459         default "0x00400000"
461 config MEMORY_SET
462         bool
463         depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
464         default y
466 config BOOT_LINK_OFFSET
467         hex "Link address offset for booting"
468         default "0x00800000"
469         help
470           This option allows you to set the link address offset of the zImage.
471           This can be useful if you are on a board which has a small amount of
472           memory.
474 config CPU_LITTLE_ENDIAN
475         bool "Little Endian"
476         help
477           Some SuperH machines can be configured for either little or big
478           endian byte order. These modes require different kernels. Say Y if
479           your machine is little endian, N if it's a big endian machine.
481 config PREEMPT
482         bool "Preemptible Kernel (EXPERIMENTAL)"
483         depends on EXPERIMENTAL
485 config UBC_WAKEUP
486         bool "Wakeup UBC on startup"
487         help
488           Selecting this option will wakeup the User Break Controller (UBC) on
489           startup. Although the UBC is left in an awake state when the processor
490           comes up, some boot loaders misbehave by putting the UBC to sleep in a
491           power saving state, which causes issues with things like ptrace().
493           If unsure, say N.
495 config SH_WRITETHROUGH
496         bool "Use write-through caching"
497         default y if CPU_SH2
498         help
499           Selecting this option will configure the caches in write-through
500           mode, as opposed to the default write-back configuration.
502           Since there's sill some aliasing issues on SH-4, this option will
503           unfortunately still require the majority of flushing functions to
504           be implemented to deal with aliasing.
506           If unsure, say N.
508 config SH_OCRAM
509         bool "Operand Cache RAM (OCRAM) support"
510         help
511           Selecting this option will automatically tear down the number of
512           sets in the dcache by half, which in turn exposes a memory range.
514           The addresses for the OC RAM base will vary according to the
515           processor version. Consult vendor documentation for specifics.
517           If unsure, say N.
519 config SH_STORE_QUEUES
520         bool "Support for Store Queues"
521         depends on CPU_SH4
522         help
523           Selecting this option will enable an in-kernel API for manipulating
524           the store queues integrated in the SH-4 processors.
526 config SMP
527         bool "Symmetric multi-processing support"
528         ---help---
529           This enables support for systems with more than one CPU. If you have
530           a system with only one CPU, like most personal computers, say N. If
531           you have a system with more than one CPU, say Y.
533           If you say N here, the kernel will run on single and multiprocessor
534           machines, but will use only one CPU of a multiprocessor machine. If
535           you say Y here, the kernel will run on many, but not all,
536           singleprocessor machines. On a singleprocessor machine, the kernel
537           will run faster if you say N here.
539           People using multiprocessor machines who say Y here should also say
540           Y to "Enhanced Real Time Clock Support", below.
542           See also the <file:Documentation/smp.txt>,
543           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available
544           at <http://www.tldp.org/docs.html#howto>.
546           If you don't know what to do here, say N.
548 config NR_CPUS
549         int "Maximum number of CPUs (2-32)"
550         range 2 32
551         depends on SMP
552         default "2"
553         help
554           This allows you to specify the maximum number of CPUs which this
555           kernel will support.  The maximum supported value is 32 and the
556           minimum value which makes sense is 2.
558           This is purely to save memory - each supported CPU adds
559           approximately eight kilobytes to the kernel image.
561 config HS7751RVOIP_CODEC
562         bool "Support VoIP Codec section"
563         depends on SH_HS7751RVOIP
564         help
565           Selecting this option will support CODEC section.
567 config RTS7751R2D_REV11
568         bool "RTS7751R2D Rev. 1.1 board support"
569         depends on SH_RTS7751R2D
570         help
571           Selecting this option will support version rev. 1.1.
573 config SH_PCLK_CALC
574         bool
575         default n if CPU_SUBTYPE_SH7300
576         default y
577         help
578           This option will cause the PCLK value to be probed at run-time. It
579           will display a notification if the probed value has greater than a
580           1% variance of the hardcoded CONFIG_SH_PCLK_FREQ.
582 config SH_PCLK_FREQ
583         int "Peripheral clock frequency (in Hz)"
584         default "49876504" if CPU_SUBTYPE_SH7750
585         default "60013568" if CPU_SUBTYPE_SH7751
586         default "33333333" if CPU_SUBTYPE_SH7300
587         default "1193182"
588         help
589           This option is used to specify the peripheral clock frequency. This
590           option must be set for each processor in order for the kernel to
591           function reliably. If no sane default exists, we use a default from
592           the legacy i8254. Any discrepancies will be reported on boot time
593           with an auto-probed frequency which should be considered the proper
594           value for your hardware.
596 menu "CPU Frequency scaling"
598 config CPU_FREQ
599         bool "CPU Frequency scaling"
600         help
601           CPU clock scaling allows you to change the clock speed of the
602           running CPU on the fly.
604           For details, take a look at <file:Documentation/cpu-freq>.
606           If unsure, say N.
608 source "drivers/cpufreq/Kconfig"
610 config CPU_FREQ_TABLE
611         tristate "CPU frequency table helpers"
612         depends on CPU_FREQ
613         default y
614         help
615           Many cpufreq drivers use these helpers, so only say N here if
616           the cpufreq driver of your choice doesn't need these helpers.
618           If unsure, say Y.
620 config SH_CPU_FREQ
621         tristate "SuperH CPU Frequency driver"
622         depends on CPU_FREQ
623         help
624           This adds the cpufreq driver for SuperH. At present, only
625           the SH-4 is supported.
627           For details, take a look at <file:Documentation/cpu-freq>.
629           If unsure, say N.
631 endmenu
633 source "arch/sh/drivers/dma/Kconfig"
635 source "arch/sh/cchips/Kconfig"
637 config HEARTBEAT
638         bool "Heartbeat LED"
639         depends on SH_MPC1211 || SH_CAT68701 || SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || SH_7751_SOLUTION_ENGINE || SH_7300_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || SH_RTS7751R2D
640         help
641           Use the power-on LED on your machine as a load meter.  The exact
642           behavior is platform-dependent, but normally the flash frequency is
643           a hyperbolic function of the 5-minute load average.
645 config RTC_9701JE
646         tristate "EPSON RTC-9701JE support"
647         depends on SH_RTS7751R2D
648         help
649           Selecting this option will support EPSON RTC-9701JE.
651 endmenu
654 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
656 # Even on SuperH devices which don't have an ISA bus,
657 # this variable helps the PCMCIA modules handle
658 # IRQ requesting properly -- Greg Banks.
660 # Though we're generally not interested in it when
661 # we're not using PCMCIA, so we make it dependent on
662 # PCMCIA outright. -- PFM.
663 config ISA
664         bool
665         default y if PCMCIA
666         help
667           Find out whether you have ISA slots on your motherboard.  ISA is the
668           name of a bus system, i.e. the way the CPU talks to the other stuff
669           inside your box.  Other bus systems are PCI, EISA, MicroChannel
670           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
671           newer boards don't support it.  If you have ISA, say Y, otherwise N.
673 config EISA
674         bool
675         ---help---
676           The Extended Industry Standard Architecture (EISA) bus was
677           developed as an open alternative to the IBM MicroChannel bus.
679           The EISA bus provided some of the features of the IBM MicroChannel
680           bus while maintaining backward compatibility with cards made for
681           the older ISA bus.  The EISA bus saw limited use between 1988 and
682           1995 when it was made obsolete by the PCI bus.
684           Say Y here if you are building a kernel for an EISA-based machine.
686           Otherwise, say N.
688 config MCA
689         bool
690         help
691           MicroChannel Architecture is found in some IBM PS/2 machines and
692           laptops.  It is a bus system similar to PCI or ISA. See
693           <file:Documentation/mca.txt> (and especially the web page given
694           there) before attempting to build an MCA bus kernel.
696 config SBUS
697         bool
699 config MAPLE
700         tristate "Maple Bus support"
701         depends on SH_DREAMCAST
702         default y
704 source "arch/sh/drivers/pci/Kconfig"
706 source "drivers/pci/Kconfig"
708 source "drivers/pcmcia/Kconfig"
710 source "drivers/pci/hotplug/Kconfig"
712 endmenu
714 menu "Executable file formats"
716 source "fs/Kconfig.binfmt"
718 endmenu
720 menu "SH initrd options"
721         depends on BLK_DEV_INITRD
723 config EMBEDDED_RAMDISK
724         bool "Embed root filesystem ramdisk into the kernel"
726 config EMBEDDED_RAMDISK_IMAGE
727         string "Filename of gziped ramdisk image"
728         depends on EMBEDDED_RAMDISK
729         default "ramdisk.gz"
730         help
731           This is the filename of the ramdisk image to be built into the
732           kernel.  Relative pathnames are relative to arch/mips/ramdisk/.
733           The ramdisk image is not part of the kernel distribution; you must
734           provide one yourself.
736 endmenu
738 source "drivers/Kconfig"
740 source "fs/Kconfig"
742 source "arch/sh/oprofile/Kconfig"
744 source "arch/sh/Kconfig.debug"
746 source "security/Kconfig"
748 source "crypto/Kconfig"
750 source "lib/Kconfig"