--- /dev/null
+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 "4.0.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 official version from
+ kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
+
+ Note: you cannot use this option to select a _longterm_ 2.6
+ kernel, because these kernels are not located at the standard
+ URL at kernel.org. Instead, select "Custom tarball" and
+ specify the right URL directly.
+
+config BR2_LINUX_KERNEL_CUSTOM_TARBALL
+ bool "Custom tarball"
+ help
+ This option allows to specify a URL pointing to a kernel source
+ tarball. This URL can use any protocol recognized by Buildroot,
+ like http://, ftp://, file:// or scp://.
+
+ When pointing to a local tarball using file://, you may want to
+ use a make variable like $(TOPDIR) to reference the root of the
+ Buildroot tree.
+
+config BR2_LINUX_KERNEL_CUSTOM_GIT
+ bool "Custom Git repository"
+ help
+ This option allows Buildroot to get the Linux kernel source
+ code from a Git repository.
+
+config BR2_LINUX_KERNEL_CUSTOM_HG
+ bool "Custom Mercurial repository"
+ help
+ This option allows Buildroot to get the Linux kernel source
+ code from a Mercurial repository.
+
+config BR2_LINUX_KERNEL_CUSTOM_LOCAL
+ bool "Local directory"
+ help
+ This option allows Buildroot to get the Linux kernel source
+ code from a local directory.
+
+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
+
+if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG
+
+config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
+ string "URL of custom repository"
+ default BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL \
+ if BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL != "" # legacy
+
+config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
+ string "Custom repository version"
+ default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
+ if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy
+ help
+ Revision to use in the typical format used by Git/Mercurial
+ E.G. a sha id, a tag, branch, ..
+
+endif
+
+config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
+ string "Path to the local directory"
+ depends on BR2_LINUX_KERNEL_CUSTOM_LOCAL
+ help
+ Path to the local directory with the Linux kernel source code.
+
+config BR2_LINUX_KERNEL_VERSION
+ string
+ default "4.0.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_REPO_VERSION \
+ if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG
+ default "custom" if BR2_LINUX_KERNEL_CUSTOM_LOCAL
+
+#
+# Patch selection
+#
+
+config BR2_LINUX_KERNEL_PATCH
+ string "Custom kernel patches"
+ depends on !BR2_LINUX_KERNEL_CUSTOM_LOCAL
+ 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 *.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 an in-tree defconfig file"
+
+config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
+ bool "Using a custom (def)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
+
+ Note: this can be a defconfig file or a complete .config file,
+ which can later be saved back with make linux-update-(def)config.
+
+#
+# Binary format
+#
+
+config BR2_LINUX_KERNEL_UBOOT_IMAGE
+ bool
+
+choice
+ prompt "Kernel binary format"
+
+config BR2_LINUX_KERNEL_UIMAGE
+ bool "uImage"
+ depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
+ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
+ BR2_sh || BR2_sh64 || BR2_mips || BR2_mipsel || \
+ BR2_mips64 || BR2_mips64el
+ 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_powerpc64 || BR2_powerpc64le || 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
+
+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_IMAGE_NAME
+ string "Kernel image name"
+ depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
+ help
+ The filename of the kernel image, if it is different from the
+ make target (above). Only Xtensa uses a filename different from
+ the make target. Defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_NAME.
+
+ If unsure, leave it empty.
+
+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 "Build a Device Tree Blob (DTB)"
+ help
+ Compile one or more device tree sources into device tree blobs.
+ Select the dts files 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 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 paths"
+ depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
+ help
+ Path to the device tree source files. You can
+ provide a list of dts paths to copy and build,
+ separated by spaces.
+
+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.
+
+ Note that this option also installs the Device Tree Blobs to
+ /boot if DTBs have been generated by the kernel build
+ process.
+
+# Linux extensions
+source "linux/Config.ext.in"
+
+endif # BR2_LINUX_KERNEL
+
+endmenu