Moves network drivers out of arch code
[akaros.git] / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Linux's Documentation/kbuild/kconfig-language.txt.
4 #
5 mainmenu "Akaros/$SRCARCH Kernel Configuration"
6
7 # This is info, not a setable option.  Must make ARCH=arch to change.
8 config SRCARCH
9         string
10         option env="ARCH"
11
12 source "kern/arch/$SRCARCH/Kconfig"
13
14 source "kern/src/net/Kconfig"
15
16 source "kern/drivers/Kconfig"
17
18 menu "Filesystems"
19
20 config KFS
21         bool "KFS filesystem"
22         default y
23         help
24                 KFS is an initramfs bundled into the kernel, and contains your root
25                 filesystem.
26
27 config KFS_PATHS
28         depends on KFS
29         string "KFS/Initramfs paths"
30         default kern/kfs
31         help
32                 Space separated list of paths to directories to bundle into KFS.  This
33                 will be your root filesystem.
34
35 config KFS_CPIO_BIN
36         depends on KFS
37         string "KFS CPIO helper"
38         default ""
39         help
40                 This binary (relative to the root directory) will be run before
41                 bundling the KFS Paths into the CPIO.
42
43 config EXT2FS
44         bool "Ext2 filesystem"
45         default n
46         help
47                 Build in support for ext2.  Extremely experimental, and only works with
48                 a block device image, which will be mounted at /mnt.  If you select
49                 this, you must specify a block device.
50
51 config EXT2_BDEV
52         depends on EXT2FS
53         string "Ext2 image file"
54         default mnt/ext2fs.img
55         help
56                 This file needs to be an ext2 image (file that looks like a block
57                 device).  You should be able to mount this file in your host OS.  It
58                 will be bundled into the kernel and mounted at /mnt.
59
60 endmenu
61
62 menu "Memory Management"
63
64 config DEMAND_PAGING
65         bool "Demand paging"
66         default n
67         help
68                 When turned on, mmap() calls do not immediately populate their pages.
69                 This does not turn on any sort of real paging.  Saying 'n' will act
70                 like all mmap()s have MAP_POPULATE.
71
72 config PAGE_COLORING
73         bool "Page coloring"
74         default n
75         help
76                 Turns on internal support for page coloring.  When turned off, the page
77                 allocator acts like there is only one color.  Hasn't been used in a few
78                 years.
79
80 config BOXBORO
81         depends on PAGE_COLORING
82         bool "Boxboro-specific page coloring"
83         default n
84         help
85                 Say 'n'.
86
87 endmenu
88
89 menu "Kernel Debugging"
90
91 config SPINLOCK_DEBUG
92         bool "Spinlock debugging"
93         default n
94         help
95                 Turns on debugging, which tracks the last time a lock was acquired and
96                 detects improper lock acquisition based on IRQ levels (e.g. using
97                 spin_lock() in IRQ context).  This will slow down all lock
98                 acquisitions.
99
100 config SEQLOCK_DEBUG
101         bool "Seqlock debugging"
102         default n
103         help
104                 Provides asserts to detect seqlock errors.  This will allow a malicious
105                 userspace to trigger a panic in the kernel.
106
107 config RESET_STACKS
108         bool "Reset Stacks"
109         default y
110         help
111                 When idling, the kernel will reset the stack of its kernel thread to
112                 the top of the stack, abandoning its context.  This is useful so we do
113                 not run off the end of our stacks, but makes backtracing difficult.
114
115 config KTHREAD_POISON
116         bool "Kthread Poison Canary"
117         default n
118         help
119                 Kthreads will use a bit of storage at the bottom of the stack to track
120                 the state of the kthread.  This is useful to catch various bugs with
121                 kthreading, such as launching the same kthread twice concurrently.
122
123 config DISABLE_SMT
124         bool "Disables symmetric multithreading"
125         default n
126         help
127                 Disables hyperthreading by telling the kernel to never give out even
128                 numbered cores to MCPs.  This does not check to see if the threads are
129                 in fact siblings, or if the target machine is hyperthreaded.
130
131 config PRINTK_NO_BACKSPACE
132         bool "Printk with no backspace"
133         default n
134         help
135                 One of the serial devices I was using a while back had issues printing
136                 backspaces.  This was an old hack to deal with that.
137
138 endmenu
139
140 menu "Misc/Old Options"
141
142 config ARSC_SERVER
143         bool "Asynchronous remote syscalls"
144         default n
145         help
146                 Code to run a syscall-server on a core.  A process can submit syscalls
147                 and get the results asynchronously.  Hasn't been used in years.  Say
148                 'n' unless you want to play around.
149
150 # SPARC auto-selects this
151 config APPSERVER
152         bool "Appserver"
153         default n
154         help
155                 Old school I/O was through a remote machine.  Not sure if anyone uses
156                 this anymore.
157
158 config SERIAL_IO
159         bool "Serial IO"
160         default n
161         help
162                 Like the appserver, serial I/O was an old attempt to process I/O on a
163                 remote machine across the serial port.
164
165 config SINGLE_CORE
166         bool "Single core"
167         default n
168         help
169                 Have the kernel boot only a single core.  Can be useful for debugging,
170                 but hasn't been used in years.
171
172 config BSD_ON_CORE0
173         bool "BSD on core 0"
174         default n
175         help
176                 This was an old joke.  Say 'n', since we can't simply #include <bsd>.
177
178 endmenu