diff --git a/linux/Config.in b/linux/Config.in index b89fcdc9db..a7fa89f1f4 100644 --- a/linux/Config.in +++ b/linux/Config.in @@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE help Path to the kernel configuration file +config BR2_LINUX_KERNEL_DTS_FILE + string "Device Tree dts file location" + depends on BR2_microblaze + help + Path from where the dts file has to be copied + The final "custom target" name depends on the + dts file name: + .dts --> simpleImage. # # Binary format # diff --git a/linux/linux.mk b/linux/linux.mk index 58cbe8e925..c0334d2b7e 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -117,6 +117,18 @@ endef LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES +ifeq ($(KERNEL_ARCH),microblaze) +# on microblaze, we always want mkimage +LINUX_DEPENDENCIES+=host-uboot-tools + +define LINUX_COPY_DTS + if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \ + cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \ + else \ + echo "Cannot copy dts file!" ; \ + fi +endef +endif ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig @@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS $(if $(BR2_ARM_EABI), $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config), $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config)) + $(if $(BR2_microblaze), + $(call LINUX_COPY_DTS)) # As the kernel gets compiled before root filesystems are # built, we create a fake cpio file. It'll be # replaced later by the real cpio archive, and the kernel will be @@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME) # Copy the kernel image to its final destination cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR) + # If there is a .ub file copy it to the final destination + test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR) $(Q)touch $@ # The initramfs building code must make sure this target gets called