|
@@ -272,11 +272,15 @@ endif # BR2_LINUX_KERNEL_DTS_SUPPORT
|
|
|
ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
|
|
|
# dtbs moved from arch/$ARCH/boot to arch/$ARCH/boot/dts since 3.8-rc1
|
|
|
define LINUX_APPEND_DTB
|
|
|
- if [ -e $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb ]; then \
|
|
|
- cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb; \
|
|
|
- else \
|
|
|
- cat $(KERNEL_ARCH_PATH)/boot/dts/$(KERNEL_DTS_NAME).dtb; \
|
|
|
- fi >> $(KERNEL_ARCH_PATH)/boot/zImage
|
|
|
+ (cd $(KERNEL_ARCH_PATH)/boot; \
|
|
|
+ for dtb in $(KERNEL_DTS_NAME); do \
|
|
|
+ if test -e $${dtb}.dtb ; then \
|
|
|
+ dtbpath=$${dtb}.dtb ; \
|
|
|
+ else \
|
|
|
+ dtbpath=dts/$${dtb}.dtb ; \
|
|
|
+ fi ; \
|
|
|
+ cat zImage $${dtbpath} > zImage.$${dtb} || exit 1; \
|
|
|
+ done)
|
|
|
endef
|
|
|
ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y)
|
|
|
# We need to generate a new u-boot image that takes into
|
|
@@ -284,11 +288,14 @@ ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y)
|
|
|
# of the image. To do so, we first need to retrieve both load
|
|
|
# address and entry point for the kernel from the already
|
|
|
# generate uboot image before using mkimage -l.
|
|
|
-LINUX_APPEND_DTB += $(sep) MKIMAGE_ARGS=`$(MKIMAGE) -l $(LINUX_IMAGE_PATH) |\
|
|
|
+LINUX_APPEND_DTB += ; \
|
|
|
+ MKIMAGE_ARGS=`$(MKIMAGE) -l $(LINUX_IMAGE_PATH) |\
|
|
|
sed -n -e 's/Image Name:[ ]*\(.*\)/-n \1/p' -e 's/Load Address:/-a/p' -e 's/Entry Point:/-e/p'`; \
|
|
|
- $(MKIMAGE) -A $(MKIMAGE_ARCH) -O linux \
|
|
|
- -T kernel -C none $${MKIMAGE_ARGS} \
|
|
|
- -d $(KERNEL_ARCH_PATH)/boot/zImage $(LINUX_IMAGE_PATH);
|
|
|
+ for dtb in $(KERNEL_DTS_NAME); do \
|
|
|
+ $(MKIMAGE) -A $(MKIMAGE_ARCH) -O linux \
|
|
|
+ -T kernel -C none $${MKIMAGE_ARGS} \
|
|
|
+ -d $(KERNEL_ARCH_PATH)/boot/zImage.$${dtb} $(LINUX_IMAGE_PATH).$${dtb}; \
|
|
|
+ done
|
|
|
endif
|
|
|
endif
|
|
|
|
|
@@ -305,9 +312,20 @@ define LINUX_BUILD_CMDS
|
|
|
$(LINUX_APPEND_DTB)
|
|
|
endef
|
|
|
|
|
|
+ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
|
|
|
+# When a DTB was appended, install the potential several images with
|
|
|
+# appended DTBs.
|
|
|
+define LINUX_INSTALL_IMAGE
|
|
|
+ mkdir -p $(1)
|
|
|
+ cp $(KERNEL_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME).* $(1)
|
|
|
+endef
|
|
|
+else
|
|
|
+# Otherwise, just install the unique image generated by the kernel
|
|
|
+# build process.
|
|
|
define LINUX_INSTALL_IMAGE
|
|
|
$(INSTALL) -m 0644 -D $(LINUX_IMAGE_PATH) $(1)/$(LINUX_IMAGE_NAME)
|
|
|
endef
|
|
|
+endif
|
|
|
|
|
|
ifeq ($(BR2_LINUX_KERNEL_INSTALL_TARGET),y)
|
|
|
define LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET
|
|
@@ -316,7 +334,6 @@ define LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET
|
|
|
endef
|
|
|
endif
|
|
|
|
|
|
-
|
|
|
define LINUX_INSTALL_HOST_TOOLS
|
|
|
# Installing dtc (device tree compiler) as host tool, if selected
|
|
|
if grep -q "CONFIG_DTC=y" $(@D)/.config; then \
|
|
@@ -403,13 +420,6 @@ $(error No kernel device tree source specified, check your \
|
|
|
BR2_LINUX_KERNEL_USE_INTREE_DTS / BR2_LINUX_KERNEL_USE_CUSTOM_DTS settings)
|
|
|
endif
|
|
|
|
|
|
-ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
|
|
|
-ifneq ($(words $(KERNEL_DTS_NAME)),1)
|
|
|
-$(error Kernel with appended device tree needs exactly one DTS source. \
|
|
|
- Check BR2_LINUX_KERNEL_INTREE_DTS_NAME or BR2_LINUX_KERNEL_CUSTOM_DTS_PATH.)
|
|
|
-endif
|
|
|
-endif
|
|
|
-
|
|
|
endif # BR_BUILDING
|
|
|
|
|
|
$(eval $(kconfig-package))
|