1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
|
#
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.txt.
#
mainmenu "uClinux/ubicom32 (w/o MMU) Kernel Configuration"
config UBICOM32
bool
select HAVE_OPROFILE
default y
config RAMKERNEL
bool
default y
config CPU_BIG_ENDIAN
bool
default y
config FORCE_MAX_ZONEORDER
int
default "14"
config HAVE_CLK
bool
default y
config MMU
bool
default n
config FPU
bool
default n
config ZONE_DMA
bool
default y
config RWSEM_GENERIC_SPINLOCK
bool
default y
config RWSEM_XCHGADD_ALGORITHM
bool
default n
config ARCH_HAS_ILOG2_U32
bool
default n
config ARCH_HAS_ILOG2_U64
bool
default n
config GENERIC_FIND_NEXT_BIT
bool
default y
config GENERIC_GPIO
bool
default y
config GPIOLIB
bool
default y
config GENERIC_HWEIGHT
bool
default y
config GENERIC_HARDIRQS
bool
default y
config STACKTRACE_SUPPORT
bool
default y
config LOCKDEP_SUPPORT
bool
default y
config GENERIC_CALIBRATE_DELAY
bool
default y
config GENERIC_TIME
bool
default y
config TIME_LOW_RES
bool
default y
config GENERIC_CLOCKEVENTS
bool
default y
config GENERIC_CLOCKEVENTS_BROADCAST
bool
depends on GENERIC_CLOCKEVENTS
default y if SMP && !LOCAL_TIMERS
config NO_IOPORT
def_bool y
config ARCH_SUPPORTS_AOUT
def_bool y
config IRQ_PER_CPU
bool
default y
config SCHED_NO_NO_OMIT_FRAME_POINTER
bool
default y
config UBICOM32_PLIO
bool
default n
menu "Processor type and features"
comment "Processor type will be selected by Board"
config UBICOM32_V3
bool
help
Ubicom IP5xxx series processor support.
config UBICOM32_V4
bool
help
Ubicom IP7xxx series processor support.
comment "Board"
choice
prompt "Board type"
help
Select your board.
config NOBOARD
bool "No board selected"
help
Default. Don't select any board specific config. Will not build unless you change!
# Add your boards here
source "arch/ubicom32/mach-ip5k/Kconfig"
source "arch/ubicom32/mach-ip7k/Kconfig"
endchoice
comment "Kernel Options"
config SMP
bool "Symmetric multi-processing support"
select USE_GENERIC_SMP_HELPERS
default n
help
Enables multithreading support. Enabling SMP support increases
the size of system data structures. SMP support can have either
positive or negative impact on performance depending on workloads.
If you do not know what to do here, say N.
config OLD_40400010_SYSTEM_CALL
bool "Provide old system call interface at 0x40400010"
default y
help
Provides the old system call interface, does not affect the
new system_call interface.
config NR_CPUS
int "Number of configured CPUs"
range 2 32
default 2
depends on SMP
help
Upper bound on the number of CPUs. Space is reserved
at compile time for this many CPUs.
config LOCAL_TIMERS
bool "Use local timer interrupts"
depends on SMP
default y
help
Enable support for local timers on SMP platforms, rather then the
legacy IPI broadcast method. Local timers allows the system
accounting to be spread across the timer interval, preventing a
"thundering herd" at every timer tick. A physical timer is allocated
per cpu.
config TIMER_EXTRA_ALLOC
int "Number of additional physical timer events to create"
depends on GENERIC_CLOCKEVENTS
default 0
help
The Ubicom32 processor has a number of event timers that can be wrapped
in Linux clock event structures (assuming that the timers are not being
used for another purpose). Based on the value of LOCAL_TIMERS, either
2 timers will be used or a timer will be used for every CPU. This value
allows the programmer to select additional timers over that amount.
config IRQSTACKS
bool "Create separate stacks for interrupt handling"
default n
help
Selecting this causes interrupts to be created on a separate
stack instead of nesting the interrupts on the kernel stack.
config IRQSTACKS_USEOCM
bool "Use OCM for interrupt stacks"
default n
depends on IRQSTACKS
help
Selecting this cause the interrupt stacks to be placed in OCM
reducing cache misses at the expense of using the OCM for servicing
interrupts.
menu "OCM Instruction Heap"
config OCM_MODULES_RESERVATION
int "OCM Instruction heap reservation. 0-192 kB"
range 0 192
default "0"
help
The minimum amount of OCM memory to reserve for kernel loadable module
code. If you are not using this memory it cannot be used for anything
else. Leave it as 0 if you have prebuilt modules that are compiled with
OCM support.
config OCM_MODULES_MAY_CONSUME_REMAINING_CODESPACE
bool "Give all unused ocm code space to the ocm instruction heap."
default n
help
Allow the OCM instruction heap allocation to consume any remaining
unused OCM code space. The result of this is that you will not have
and deterministic results, but you will not have any waste either.
config OCM_MODULES_FALLBACK_TO_DDR
bool "Loadable Modules requiring OCM may fallback to use DDR."
default n
help
If a module cannot get the OCM code it requires allow DDR to
be used instead.
endmenu
config HZ
int "Frequency of 'jiffies' (for polling)"
default 1000
help
100 is common for embedded systems, but 1000 allows
you to do more drivers without actually having
interrupts working properly.
comment "RAM configuration"
config MIN_RAMSIZE
hex "Minimum Size of RAM (in bytes)"
range 0x01000000 0x08000000
default "0x02000000"
help
Define the minimum acceptable size of the system
RAM. Must be at least 16MB (0x01000000)
comment "Build options"
config LINKER_RELAXATION
bool "Linker Relaxation"
default y
help
Turns on linker relaxation that will produce smaller
faster code. Increases link time.
comment "Driver options"
menu "PCI Bus"
config PCI
bool "PCI bus"
default true
help
Enable/Disable PCI bus
source "drivers/pci/Kconfig"
config PCI_DEV0_IDSEL
hex "slot 0 address"
depends on PCI
default "0x01000000"
help
Slot 0 address. This address should correspond to the address line
which the IDSEL bit for this slot is connected to.
config PCI_DEV1_IDSEL
hex "slot 1 address"
depends on PCI
default "0x02000000"
help
Slot 1 address. This address should correspond to the address line
which the IDSEL bit for this slot is connected to.
endmenu
# End PCI
menu "Input devices"
config UBICOM_INPUT
bool "Ubicom polled GPIO input driver"
select INPUT
select INPUT_POLLDEV
help
Polling input driver, much like the GPIO input driver, except that it doesn't
rely on interrupts. It will report events via the input subsystem.
default n
config UBICOM_INPUT_I2C
bool "Ubicom polled GPIO input driver over I2C"
select INPUT
select INPUT_POLLDEV
help
Polling input driver, much like the PCA953x driver, it can support a variety of
different I2C I/O expanders. This device polls the I2C I/O expander for events
and reports them via the input subsystem.
default n
endmenu
# Input devices
source "arch/ubicom32/mach-common/Kconfig.switch"
menu "Misc devices"
config UBICOM_HID
bool "Ubicom HID driver"
select INPUT
select INPUT_POLLDEV
select LCD_CLASS_DEVICE
help
Driver for HID chip found on some Ubicom reference designs. This chip handles
PWM, button input, and IR remote control. It registers as an input device and
a backlight device.
default n
endmenu
# Misc devices
config CMDLINE_BOOL
bool "Built-in kernel command line"
default n
help
Allow for specifying boot arguments to the kernel at
build time. On some systems (e.g. embedded ones), it is
necessary or convenient to provide some or all of the
kernel boot arguments with the kernel itself (that is,
to not rely on the boot loader to provide them.)
To compile command line arguments into the kernel,
set this option to 'Y', then fill in the
the boot arguments in CONFIG_CMDLINE.
Systems with fully functional boot loaders (i.e. non-embedded)
should leave this option set to 'N'.
config CMDLINE
string "Built-in kernel command string"
depends on CMDLINE_BOOL
default ""
help
Enter arguments here that should be compiled into the kernel
image and used at boot time. If the boot loader provides a
command line at boot time, it is appended to this string to
form the full kernel command line, when the system boots.
However, you can use the CONFIG_CMDLINE_OVERRIDE option to
change this behavior.
In most cases, the command line (whether built-in or provided
by the boot loader) should specify the device for the root
file system.
config CMDLINE_OVERRIDE
bool "Built-in command line overrides boot loader arguments"
default n
depends on CMDLINE_BOOL
help
Set this option to 'Y' to have the kernel ignore the boot loader
command line, and use ONLY the built-in command line.
This is used to work around broken boot loaders. This should
be set to 'N' under normal conditions.
endmenu
# End Processor type and features
source "arch/ubicom32/Kconfig.debug"
menu "Executable file formats"
source "fs/Kconfig.binfmt"
endmenu
source "init/Kconfig"
source "kernel/Kconfig.preempt"
source "kernel/time/Kconfig"
source "mm/Kconfig"
source "net/Kconfig"
source "drivers/Kconfig"
source "fs/Kconfig"
source "security/Kconfig"
source "crypto/Kconfig"
source "lib/Kconfig"
|