Network drivers are built based on CONFIGs
[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 menu "Drivers"
17
18 menuconfig E1000
19         depends on NETWORKING && X86
20         bool "e1000 driver"
21         default n
22         help
23                 Buggy e1000 driver.  Use at your own risk.
24
25 if E1000
26 config E1000_MMIO_HACK
27         bool "e1000 MMIO hack"
28         default n
29         help
30                 Legacy option, say 'n'.
31
32 config E1000_ON_BOXBORO
33         bool "e1000 on Boxboro"
34         default n
35         help
36                 Legacy option, say 'n'.
37
38 config E1000_ON_S142
39         bool "e1000 on s142"
40         default n
41         help
42                 Legacy option, say 'n'.
43
44 endif # E1000
45
46 config RL8168
47         depends on NETWORKING && X86
48         bool "Realtek 8168"
49         default n
50         help
51                 Buggy realtek driver.  Use at your own risk.
52
53 config NE2K
54         depends on NETWORKING && X86
55         bool "NE2000"
56         default n
57         help
58                 Buggy NE2000 driver.  Use at your own risk.
59
60 config ETH_AUDIO
61         depends on NETWORKING && X86
62         bool "Ethernet audio"
63         default n
64         help
65                 Build old support for David Wessel's ethernet audio device.  This is
66                 less a driver than a NIC-level "intercept".
67
68 endmenu
69
70 menu "Filesystems"
71
72 config KFS
73         bool "KFS filesystem"
74         default y
75         help
76                 KFS is an initramfs bundled into the kernel, and contains your root
77                 filesystem.
78
79 config KFS_PATHS
80         depends on KFS
81         string "KFS/Initramfs paths"
82         default kern/kfs
83         help
84                 Space separated list of paths to directories to bundle into KFS.  This
85                 will be your root filesystem.
86
87 config KFS_CPIO_BIN
88         depends on KFS
89         string "KFS CPIO helper"
90         default ""
91         help
92                 This binary (relative to the root directory) will be run before
93                 bundling the KFS Paths into the CPIO.
94
95 config EXT2FS
96         bool "Ext2 filesystem"
97         default n
98         help
99                 Build in support for ext2.  Extremely experimental, and only works with
100                 a block device image, which will be mounted at /mnt.  If you select
101                 this, you must specify a block device.
102
103 config EXT2_BDEV
104         depends on EXT2FS
105         string "Ext2 image file"
106         default mnt/ext2fs.img
107         help
108                 This file needs to be an ext2 image (file that looks like a block
109                 device).  You should be able to mount this file in your host OS.  It
110                 will be bundled into the kernel and mounted at /mnt.
111
112 endmenu
113
114 menu "Memory Management"
115
116 config DEMAND_PAGING
117         bool "Demand paging"
118         default n
119         help
120                 When turned on, mmap() calls do not immediately populate their pages.
121                 This does not turn on any sort of real paging.  Saying 'n' will act
122                 like all mmap()s have MAP_POPULATE.
123
124 config PAGE_COLORING
125         bool "Page coloring"
126         default n
127         help
128                 Turns on internal support for page coloring.  When turned off, the page
129                 allocator acts like there is only one color.  Hasn't been used in a few
130                 years.
131
132 config BOXBORO
133         depends on PAGE_COLORING
134         bool "Boxboro-specific page coloring"
135         default n
136         help
137                 Say 'n'.
138
139 endmenu
140
141 menu "Kernel Debugging"
142
143 config SPINLOCK_DEBUG
144         bool "Spinlock debugging"
145         default n
146         help
147                 Turns on debugging, which tracks the last time a lock was acquired and
148                 detects improper lock acquisition based on IRQ levels (e.g. using
149                 spin_lock() in IRQ context).  This will slow down all lock
150                 acquisitions.
151
152 config SEQLOCK_DEBUG
153         bool "Seqlock debugging"
154         default n
155         help
156                 Provides asserts to detect seqlock errors.  This will allow a malicious
157                 userspace to trigger a panic in the kernel.
158
159 config RESET_STACKS
160         bool "Reset Stacks"
161         default y
162         help
163                 When idling, the kernel will reset the stack of its kernel thread to
164                 the top of the stack, abandoning its context.  This is useful so we do
165                 not run off the end of our stacks, but makes backtracing difficult.
166
167 config KTHREAD_POISON
168         bool "Kthread Poison Canary"
169         default n
170         help
171                 Kthreads will use a bit of storage at the bottom of the stack to track
172                 the state of the kthread.  This is useful to catch various bugs with
173                 kthreading, such as launching the same kthread twice concurrently.
174
175 config DISABLE_SMT
176         bool "Disables symmetric multithreading"
177         default n
178         help
179                 Disables hyperthreading by telling the kernel to never give out even
180                 numbered cores to MCPs.  This does not check to see if the threads are
181                 in fact siblings, or if the target machine is hyperthreaded.
182
183 config PRINTK_NO_BACKSPACE
184         bool "Printk with no backspace"
185         default n
186         help
187                 One of the serial devices I was using a while back had issues printing
188                 backspaces.  This was an old hack to deal with that.
189
190 endmenu
191
192 menu "Misc/Old Options"
193
194 config ARSC_SERVER
195         bool "Asynchronous remote syscalls"
196         default n
197         help
198                 Code to run a syscall-server on a core.  A process can submit syscalls
199                 and get the results asynchronously.  Hasn't been used in years.  Say
200                 'n' unless you want to play around.
201
202 # SPARC auto-selects this
203 config APPSERVER
204         bool "Appserver"
205         default n
206         help
207                 Old school I/O was through a remote machine.  Not sure if anyone uses
208                 this anymore.
209
210 config SERIAL_IO
211         bool "Serial IO"
212         default n
213         help
214                 Like the appserver, serial I/O was an old attempt to process I/O on a
215                 remote machine across the serial port.
216
217 config SINGLE_CORE
218         bool "Single core"
219         default n
220         help
221                 Have the kernel boot only a single core.  Can be useful for debugging,
222                 but hasn't been used in years.
223
224 config BSD_ON_CORE0
225         bool "BSD on core 0"
226         default n
227         help
228                 This was an old joke.  Say 'n', since we can't simply #include <bsd>.
229
230 endmenu