summaryrefslogtreecommitdiff
path: root/linux/Config.in
blob: 1bbb574bb5c5903623504d4c0454e809caa0cdad (plain)
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
menu "Kernel"

config BR2_LINUX_KERNEL
	bool "Linux Kernel"
	help
	  Enable this option if you want to build a Linux kernel for
	  your embedded device

if BR2_LINUX_KERNEL

#
# Version selection. We provide the choice between:
#
#  1. A single fairly recent stable kernel version
#  2. In case an internal toolchain has been built, the same kernel
#     version as the kernel headers
#  3. A custom stable version
#  4. A custom tarball
#
choice
	prompt "Kernel version"

config BR2_LINUX_KERNEL_LATEST_VERSION
	bool "3.9.4"

config BR2_LINUX_KERNEL_SAME_AS_HEADERS
	bool "Same as toolchain kernel headers"
	depends on BR2_TOOLCHAIN_BUILDROOT
	help
	  This option will re-use the same kernel sources as the one
	  that have been used for the kernel headers of the
	  cross-compiling toolchain. Having the same version for the
	  kernel running on the system and for the kernel headers is
	  not a requirement, but using the same version allows to
	  download only one tarball of the kernel sources.

config BR2_LINUX_KERNEL_CUSTOM_VERSION
	bool "Custom version"
	help
	  This option allows to use a specific 2.6.x or 2.6.x.y
	  official versions, as available on kernel.org

config BR2_LINUX_KERNEL_CUSTOM_TARBALL
	bool "Custom tarball"
	help
	  This option allows to specify the http or ftp location of a
	  specific kernel source tarball

config BR2_LINUX_KERNEL_CUSTOM_GIT
	bool "Custom Git tree"
	help
	  This option allows Buildroot to get the Linux kernel source
	  code from a Git repository.

endchoice

config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
	string "Kernel version"
	depends on BR2_LINUX_KERNEL_CUSTOM_VERSION

config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
	string "URL of custom kernel tarball"
	depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL

config BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL
	string "URL of custom Git repository"
	depends on BR2_LINUX_KERNEL_CUSTOM_GIT

config BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION
	string "Custom Git version"
	default "HEAD"
	depends on BR2_LINUX_KERNEL_CUSTOM_GIT
	help
	  Git revision to use in the format used by git rev-parse,
	  E.G. a sha id, a tag, branch, ..

config BR2_LINUX_KERNEL_VERSION
	string
	default "3.9.4" if BR2_LINUX_KERNEL_LATEST_VERSION
	default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION
	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
	default $BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION if BR2_LINUX_KERNEL_CUSTOM_GIT

#
# Patch selection
#

config BR2_LINUX_KERNEL_PATCH
	string "Custom kernel patches"
	help
	  A space-separated list of patches to apply to the
	  kernel. Each patch can be described as an URL, a local file
	  path, or a directory. In the case of a directory, all files
	  matching linux-*.patch in the directory will be applied.

#
# Configuration selection
#

choice
	prompt "Kernel configuration"
	default BR2_LINUX_KERNEL_USE_DEFCONFIG

config BR2_LINUX_KERNEL_USE_DEFCONFIG
	bool "Using a defconfig"

config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	bool "Using a custom config file"

endchoice

config BR2_LINUX_KERNEL_DEFCONFIG
	string "Defconfig name"
	depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
	help
	 Name of the kernel defconfig file to use, without the
	 trailing _defconfig.  The defconfig is located in
	 arch/<arch>/configs in the kernel tree.

config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
	help
	  Path to the kernel configuration file

#
# Binary format
#

config BR2_LINUX_KERNEL_UBOOT_IMAGE
       bool

choice
	prompt "Kernel binary format"

config BR2_LINUX_KERNEL_UIMAGE
	bool "uImage"
	depends on BR2_arm || BR2_armeb || BR2_bfin || BR2_powerpc || BR2_avr32 || BR2_sh || BR2_sh64
	select BR2_LINUX_KERNEL_UBOOT_IMAGE

config BR2_LINUX_KERNEL_APPENDED_UIMAGE
	bool "uImage with appended DT"
	depends on BR2_arm || BR2_armeb
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_APPENDED_DTB
	select BR2_LINUX_KERNEL_UBOOT_IMAGE

config BR2_LINUX_KERNEL_BZIMAGE
	bool "bzImage"
	depends on BR2_i386 || BR2_x86_64

config BR2_LINUX_KERNEL_ZIMAGE
	bool "zImage"
	depends on BR2_arm || BR2_armeb || BR2_powerpc || BR2_sparc || \
		   BR2_sh || BR2_sh64 || BR2_xtensa

config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
	bool "zImage with appended DT"
	depends on BR2_arm || BR2_armeb
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_APPENDED_DTB

config BR2_LINUX_KERNEL_CUIMAGE
	bool "cuImage"
	depends on BR2_powerpc
	select BR2_LINUX_KERNEL_UBOOT_IMAGE
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_SIMPLEIMAGE
	bool "simpleImage"
	depends on BR2_microblaze
	select BR2_LINUX_KERNEL_UBOOT_IMAGE
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_LINUX_BIN
	bool "linux.bin"
	depends on BR2_microblaze
	select BR2_LINUX_KERNEL_UBOOT_IMAGE
	select BR2_LINUX_KERNEL_DTS_SUPPORT
	select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT

config BR2_LINUX_KERNEL_VMLINUX_BIN
	bool "vmlinux.bin"
	depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64

config BR2_LINUX_KERNEL_VMLINUX
	bool "vmlinux"

config BR2_LINUX_KERNEL_VMLINUZ
	bool "vmlinuz"
	depends on BR2_mips || BR2_mipsel

config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	bool "custom target"
	help
	  For certain cases a board-specific target image must be
	  used.  For example, on powerPC where the OpenFirmware
	  description is attached in a board-specific kernel image
	  target like 'cuImage.mpc8379_rdb'.

	  Select this option and specify the make target in "Kernel
	  image target name".

endchoice

config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
	string "Kernel image target name"
	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
	help
	  Specify the kernel make target to build the kernel that you
	  need.

config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
	string "load address (for 3.7+ multi-platform image)"
	depends on BR2_arm || BR2_armeb
	depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
	help
	  If your ARM system's Linux kernel is configured with the new (3.7+)
	  multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
	  kernel config), then it is necessary to specify a kernel load address
	  when building the uImage. This should be a hexadecimal string
	  beginning with 0x, for example: 0x00008000.

	  If unsure, let this option empty.

config BR2_LINUX_KERNEL_DTS_SUPPORT
	bool "Device tree support"
	help
	  Compile a device tree source into a device tree blob.
	  Select the dts file to compile in the options below.

if BR2_LINUX_KERNEL_DTS_SUPPORT

# We have mainly three cases when it comes to device tree support:
#   1) We don't want any support at all. Then the ..DTS_SUPPORT
#      variable won't be set
#   2) We want device tree support, so we need the user to enter
#      the device tree name or the the path to the custom device
#      he uses, but the kernel abstracts this from us and only
#      build an image that looks like a regular kernel image. In
#      this case, we only need to derive the kernel image name from
#      the given device tree name, and all the rest is as usual
#   3) We want device tree support, but the kernel requires us to
#      build the device tree blob separately. In this case, some
#      more logic will be needed.
# The variable below address the second case, were you only want
# limited actions from buildroot.
config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
	bool

config BR2_LINUX_KERNEL_APPENDED_DTB
	bool

choice
	prompt "Device tree source"
	default BR2_LINUX_KERNEL_USE_INTREE_DTS

config BR2_LINUX_KERNEL_USE_INTREE_DTS
	bool "Use a device tree present in the kernel."
	help
	   Use a device tree source distributed with
	   the kernel sources. The dts files are located
           in the arch/<arch>/boot/dts folder.

config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
	bool "Use a custom device tree file"
	help
	  Use a custom device tree file, i.e, a device
	  tree file that does not belong to the kernel
	  source tree.
endchoice

config BR2_LINUX_KERNEL_INTREE_DTS_NAME
	string "Device Tree Source file names"
	depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
	help
	 Name of the device tree source file, without
	 the trailing .dts. You can provide a list of
	 dts files to build, separated by spaces.

config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
	string "Device Tree Source file path"
	depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
	help
	  Path to the device tree source file

endif

config BR2_LINUX_KERNEL_INSTALL_TARGET
	bool "Install kernel image to /boot in target"
	depends on !BR2_TARGET_ROOTFS_INITRAMFS
	help
	  Select this option to have the kernel image installed to
	  /boot in the target root filesystem, as is typically done on
	  x86/x86_64 systems.


# Linux extensions
source "linux/Config.ext.in"

endif # BR2_LINUX_KERNEL

endmenu