open-plc-utils: new package
[buildroot-gz.git] / linux / Config.in
bloba1113dd90488b602971b44237a6f7bdb77c0530a
1 menu "Kernel"
3 config BR2_LINUX_KERNEL
4         bool "Linux Kernel"
5         help
6           Enable this option if you want to build a Linux kernel for
7           your embedded device
9 if BR2_LINUX_KERNEL
12 # Version selection. We provide the choice between:
14 #  1. A single fairly recent stable kernel version
15 #  2. In case an internal toolchain has been built, the same kernel
16 #     version as the kernel headers
17 #  3. A custom stable version
18 #  4. A custom tarball
20 choice
21         prompt "Kernel version"
23 config BR2_LINUX_KERNEL_LATEST_VERSION
24         bool "3.19.3"
26 config BR2_LINUX_KERNEL_SAME_AS_HEADERS
27         bool "Same as toolchain kernel headers"
28         depends on BR2_TOOLCHAIN_BUILDROOT
29         help
30           This option will re-use the same kernel sources as the one
31           that have been used for the kernel headers of the
32           cross-compiling toolchain. Having the same version for the
33           kernel running on the system and for the kernel headers is
34           not a requirement, but using the same version allows to
35           download only one tarball of the kernel sources.
37 config BR2_LINUX_KERNEL_CUSTOM_VERSION
38         bool "Custom version"
39         help
40           This option allows to use a specific official version from
41           kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
43           Note: you cannot use this option to select a _longterm_ 2.6
44           kernel, because these kernels are not located at the standard
45           URL at kernel.org. Instead, select "Custom tarball" and
46           specify the right URL directly.
48 config BR2_LINUX_KERNEL_CUSTOM_TARBALL
49         bool "Custom tarball"
50         help
51           This option allows to specify a URL pointing to a kernel source
52           tarball. This URL can use any protocol recognized by Buildroot,
53           like http://, ftp://, file:// or scp://.
55           When pointing to a local tarball using file://, you may want to
56           use a make variable like $(TOPDIR) to reference the root of the
57           Buildroot tree.
59 config BR2_LINUX_KERNEL_CUSTOM_GIT
60         bool "Custom Git repository"
61         help
62           This option allows Buildroot to get the Linux kernel source
63           code from a Git repository.
65 config BR2_LINUX_KERNEL_CUSTOM_HG
66         bool "Custom Mercurial repository"
67         help
68           This option allows Buildroot to get the Linux kernel source
69           code from a Mercurial repository.
71 config BR2_LINUX_KERNEL_CUSTOM_LOCAL
72         bool "Local directory"
73         help
74           This option allows Buildroot to get the Linux kernel source
75           code from a local directory.
77 endchoice
79 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
80         string "Kernel version"
81         depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
83 config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
84         string "URL of custom kernel tarball"
85         depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
87 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG
89 config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
90         string "URL of custom repository"
91         default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
92                 if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != ""  # legacy
94 config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
95         string "Custom repository version"
96         default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
97                 if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != ""  # legacy
98         help
99           Revision to use in the typical format used by Git/Mercurial
100           E.G. a sha id, a tag, branch, ..
102 endif
104 config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
105         string "Path to the local directory"
106         depends on BR2_LINUX_KERNEL_CUSTOM_LOCAL
107         help
108           Path to the local directory with the Linux kernel source code.
110 config BR2_LINUX_KERNEL_VERSION
111         string
112         default "3.19.3" if BR2_LINUX_KERNEL_LATEST_VERSION
113         default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
114         default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
115                 if BR2_LINUX_KERNEL_CUSTOM_VERSION
116         default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
117         default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
118                 if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG
119         default "custom" if BR2_LINUX_KERNEL_CUSTOM_LOCAL
122 # Patch selection
125 config BR2_LINUX_KERNEL_PATCH
126         string "Custom kernel patches"
127         depends on !BR2_LINUX_KERNEL_CUSTOM_LOCAL
128         help
129           A space-separated list of patches to apply to the
130           kernel. Each patch can be described as an URL, a local file
131           path, or a directory. In the case of a directory, all files
132           matching linux-*.patch in the directory will be applied.
135 # Configuration selection
138 choice
139         prompt "Kernel configuration"
140         default BR2_LINUX_KERNEL_USE_DEFCONFIG
142 config BR2_LINUX_KERNEL_USE_DEFCONFIG
143         bool "Using an in-tree defconfig file"
145 config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
146         bool "Using a custom (def)config file"
148 endchoice
150 config BR2_LINUX_KERNEL_DEFCONFIG
151         string "Defconfig name"
152         depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
153         help
154           Name of the kernel defconfig file to use, without the
155           trailing _defconfig.  The defconfig is located in
156           arch/<arch>/configs in the kernel tree.
158 config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
159         string "Configuration file path"
160         depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
161         help
162           Path to the kernel configuration file
164           Note: this can be a defconfig file or a complete .config file,
165           which can later be saved back with make linux-update-(def)config.
168 # Binary format
171 config BR2_LINUX_KERNEL_UBOOT_IMAGE
172         bool
174 choice
175         prompt "Kernel binary format"
177 config BR2_LINUX_KERNEL_UIMAGE
178         bool "uImage"
179         depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
180                    BR2_powerpc || BR2_sh || BR2_sh64 || \
181                    BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
182         select BR2_LINUX_KERNEL_UBOOT_IMAGE
184 config BR2_LINUX_KERNEL_APPENDED_UIMAGE
185         bool "uImage with appended DT"
186         depends on BR2_arm || BR2_armeb
187         select BR2_LINUX_KERNEL_DTS_SUPPORT
188         select BR2_LINUX_KERNEL_APPENDED_DTB
189         select BR2_LINUX_KERNEL_UBOOT_IMAGE
191 config BR2_LINUX_KERNEL_BZIMAGE
192         bool "bzImage"
193         depends on BR2_i386 || BR2_x86_64
195 config BR2_LINUX_KERNEL_ZIMAGE
196         bool "zImage"
197         depends on BR2_arm || BR2_armeb || BR2_powerpc || \
198                    BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
199                    BR2_sh || BR2_sh64 || BR2_xtensa
201 config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
202         bool "zImage with appended DT"
203         depends on BR2_arm || BR2_armeb
204         select BR2_LINUX_KERNEL_DTS_SUPPORT
205         select BR2_LINUX_KERNEL_APPENDED_DTB
207 config BR2_LINUX_KERNEL_CUIMAGE
208         bool "cuImage"
209         depends on BR2_powerpc
210         select BR2_LINUX_KERNEL_UBOOT_IMAGE
211         select BR2_LINUX_KERNEL_DTS_SUPPORT
212         select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
214 config BR2_LINUX_KERNEL_SIMPLEIMAGE
215         bool "simpleImage"
216         depends on BR2_microblaze
217         select BR2_LINUX_KERNEL_UBOOT_IMAGE
218         select BR2_LINUX_KERNEL_DTS_SUPPORT
219         select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
221 config BR2_LINUX_KERNEL_LINUX_BIN
222         bool "linux.bin"
223         depends on BR2_microblaze
224         select BR2_LINUX_KERNEL_UBOOT_IMAGE
226 config BR2_LINUX_KERNEL_VMLINUX_BIN
227         bool "vmlinux.bin"
228         depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64
230 config BR2_LINUX_KERNEL_VMLINUX
231         bool "vmlinux"
233 config BR2_LINUX_KERNEL_VMLINUZ
234         bool "vmlinuz"
235         depends on BR2_mips || BR2_mipsel
237 config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
238         bool "custom target"
239         help
240           For certain cases a board-specific target image must be
241           used.  For example, on powerPC where the OpenFirmware
242           description is attached in a board-specific kernel image
243           target like 'cuImage.mpc8379_rdb'.
245           Select this option and specify the make target in "Kernel
246           image target name".
248 endchoice
250 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
251         string "Kernel image target name"
252         depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
253         help
254           Specify the kernel make target to build the kernel that you
255           need.
257 config BR2_LINUX_KERNEL_IMAGE_NAME
258         string "Kernel image name"
259         depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
260         help
261           The filename of the kernel image, if it is different from the
262           make target (above). Only Xtensa uses a filename different from
263           the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
265           If unsure, leave it empty.
267 config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
268         string "load address (for 3.7+ multi-platform image)"
269         depends on BR2_arm || BR2_armeb
270         depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
271         help
272           If your ARM system's Linux kernel is configured with the new (3.7+)
273           multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y in your
274           kernel config), then it is necessary to specify a kernel load address
275           when building the uImage. This should be a hexadecimal string
276           beginning with 0x, for example: 0x00008000.
278           If unsure, let this option empty.
280 config BR2_LINUX_KERNEL_DTS_SUPPORT
281         bool "Build a Device Tree Blob (DTB)"
282         help
283           Compile one or more device tree sources into device tree blobs.
284           Select the dts files to compile in the options below.
286 if BR2_LINUX_KERNEL_DTS_SUPPORT
288 # We have mainly three cases when it comes to device tree support:
289 #   1) We don't want any support at all. Then the ..DTS_SUPPORT
290 #      variable won't be set
291 #   2) We want device tree support, so we need the user to enter
292 #      the device tree name or the the path to the custom device
293 #      he uses, but the kernel abstracts this from us and only
294 #      build an image that looks like a regular kernel image. In
295 #      this case, we only need to derive the kernel image name from
296 #      the given device tree name, and all the rest is as usual
297 #   3) We want device tree support, but the kernel requires us to
298 #      build the device tree blob separately. In this case, some
299 #      more logic will be needed.
300 # The variable below address the second case, were you only want
301 # limited actions from buildroot.
302 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
303         bool
305 config BR2_LINUX_KERNEL_APPENDED_DTB
306         bool
308 choice
309         prompt "Device tree source"
310         default BR2_LINUX_KERNEL_USE_INTREE_DTS
312 config BR2_LINUX_KERNEL_USE_INTREE_DTS
313         bool "Use a device tree present in the kernel."
314         help
315           Use a device tree source distributed with
316           the kernel sources. The dts files are located
317           in the arch/<arch>/boot/dts folder.
319 config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
320         bool "Use a custom device tree file"
321         help
322           Use a custom device tree file, i.e, a device
323           tree file that does not belong to the kernel
324           source tree.
325 endchoice
327 config BR2_LINUX_KERNEL_INTREE_DTS_NAME
328         string "Device Tree Source file names"
329         depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
330         help
331           Name of the device tree source file, without
332           the trailing .dts. You can provide a list of
333           dts files to build, separated by spaces.
335 config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
336         string "Device Tree Source file paths"
337         depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
338         help
339           Path to the device tree source files. You can
340           provide a list of dts paths to copy and build,
341           separated by spaces.
343 endif
345 config BR2_LINUX_KERNEL_INSTALL_TARGET
346         bool "Install kernel image to /boot in target"
347         depends on !BR2_TARGET_ROOTFS_INITRAMFS
348         help
349           Select this option to have the kernel image installed to
350           /boot in the target root filesystem, as is typically done on
351           x86/x86_64 systems.
353           Note that this option also installs the Device Tree Blobs to
354           /boot if DTBs have been generated by the kernel build
355           process.
357 # Linux extensions
358 source "linux/Config.ext.in"
360 endif # BR2_LINUX_KERNEL
362 endmenu