linux: make BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT public
authorPhilipp Wagner <philipp.wagner@tum.de>
Fri, 16 Nov 2018 15:45:01 +0000 (16:45 +0100)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Thu, 1 Aug 2019 14:08:01 +0000 (16:08 +0200)
Currently the BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT option is only
available to be selected by another config option. This option controls
if the Linux build system should build the DTB itself, or if buildroot
explicitly calls the Linux Makefile like "make something.dtb".

My use case: I want to build an OpenRISC image with a custom device tree
file. OpenRISC does not support appended DTBs, and I'm not using a
bootloader, but link everything into a single kernel (vmlinux) image.

The kernel option CONFIG_OPENRISC_BUILTIN_DTB allows me to specify a dtb
file, which is typically located in the kernel source tree in
arch/openrisc/boot/dts/NAME.dts.

Since my dts file is not part of the upstream kernel, I have two
options: either patch the kernel to include the DTS file, and then
specify it using the CONFIG_OPENRISC_BUILTIN_DTB option.

Or use buildroot's BR2_LINUX_KERNEL_CUSTOM_DTS_PATH config option to
copy any DTS file to the kernel source tree, and then specify this file
with CONFIG_OPENRISC_BUILTIN_DTB as before.

However, the second option also requries the buildroot option
BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT to be set, otherwise I end up with a
"make -C kerneldir NAME.dts" call, which doesn't work (no such target
exists).

Currently the BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT option exists, but it's
not visible/available. Simply making it available solves the problem for
me nicely.

Signed-off-by: Philipp Wagner <mail@philipp-wagner.com>
[Arnout: add help text]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
linux/Config.in

index 871141fdcd43cfabbd7b4710d51472e7abc86174..e275b8ad4f9fbf4cb88324fd51ead609254e3b3a 100644 (file)
@@ -375,7 +375,13 @@ if BR2_LINUX_KERNEL_DTS_SUPPORT
 # The variable below address the second case, were you only want
 # limited actions from buildroot.
 config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
-       bool
+       bool "DTB is built by kernel itself"
+       help
+         Normally, the device tree(s) to be built have to be passed
+         explicitly to the kernel build system. For some binary
+         formats, however, the kernel build system links in the
+         device tree directly in the kernel binary. Select this option
+         if you have such a kernel binary format.
 
 config BR2_LINUX_KERNEL_APPENDED_DTB
        bool