diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 23b8adcb7f..55f9603367 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -50,7 +50,7 @@ fi PKG_MAKE_OPTS_HOST="ARCH=$TARGET_ARCH headers_check" if [ "$BOOTLOADER" = "u-boot" ]; then - KERNEL_IMAGE="uImage" + KERNEL_IMAGE="$KERNEL_UBOOT_TARGET" else KERNEL_IMAGE="bzImage" fi @@ -133,7 +133,13 @@ make_target() { $SCRIPTS/install initramfs ) - LDFLAGS="" make $KERNEL_IMAGE + LDFLAGS="" make $KERNEL_IMAGE $KERNEL_MAKE_EXTRACMD + + if [ "$BOOTLOADER" = "u-boot" -a -n "$KERNEL_UBOOT_EXTRA_TARGET" ]; then + for extra_target in "$KERNEL_UBOOT_EXTRA_TARGET"; do + LDFLAGS="" make $extra_target + done + fi if [ "$PERF_SUPPORT" = "yes" -a "$DEVTOOLS" = "yes" ]; then ( cd tools/perf @@ -164,6 +170,13 @@ make_target() { } makeinstall_target() { + if [ "$BOOTLOADER" = "u-boot" ]; then + mkdir -p $INSTALL/usr/share/u-boot + for dtb in arch/arm/boot/dts/*.dtb; do + cp $dtb $INSTALL/usr/share/u-boot + done + fi + if [ "$PERF_SUPPORT" = "yes" -a "$DEVTOOLS" = "yes" ]; then mkdir -p $INSTALL/usr/bin cp -P tools/perf/perf $INSTALL/usr/bin/ diff --git a/packages/tools/u-boot/package.mk b/packages/tools/u-boot/package.mk index bcdebc34b4..221e0d50b7 100644 --- a/packages/tools/u-boot/package.mk +++ b/packages/tools/u-boot/package.mk @@ -83,10 +83,18 @@ makeinstall_target() { mkdir -p $INSTALL/usr/share/u-boot cp ./u-boot.bin $INSTALL/usr/share/u-boot + if [ -f "./u-boot.img" ]; then + cp ./u-boot.img $INSTALL/usr/share/u-boot + fi + if [ -f "./MLO" ]; then cp ./MLO $INSTALL/usr/share/u-boot fi + if [ -f "./SPL" ]; then + cp ./SPL $INSTALL/usr/share/u-boot + fi + if [ -f "./boot.cfg" ]; then cp ./boot.cfg $INSTALL/usr/share/u-boot fi diff --git a/projects/ATV/options b/projects/ATV/options index ab6b677e9e..20b864ea23 100644 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -91,6 +91,15 @@ # Target Configfile for u-boot UBOOT_CONFIGFILE="" +# Kernel target for u-boot (default 'uImage' if BOOTLOADER=u-boot) (uImage / zImage) + KERNEL_UBOOT_TARGET="" + +# Kernel extra targets to build + KERNEL_UBOOT_EXTRA_TARGET="" + +# Additional kernel make parameters (for example to specify the u-boot loadaddress) + KERNEL_MAKE_EXTRACMD="" + # GCC to use. values can be: # default: default mainline gcc GCC_VERSION="default" diff --git a/projects/Cuboxi/options b/projects/Cuboxi/options index 156b182311..2dc75af644 100644 --- a/projects/Cuboxi/options +++ b/projects/Cuboxi/options @@ -91,6 +91,15 @@ # Target Configfile for u-boot UBOOT_CONFIGFILE="" +# Kernel target for u-boot (default 'uImage' if BOOTLOADER=u-boot) (uImage / zImage) + KERNEL_UBOOT_TARGET="zImage" + +# Kernel extra targets to build + KERNEL_UBOOT_EXTRA_TARGET="imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb" + +# Additional kernel make parameters (for example to specify the u-boot loadaddress) + KERNEL_MAKE_EXTRACMD="" + # GCC to use. values can be: # default: default mainline gcc GCC_VERSION="4.7" diff --git a/projects/Generic/options b/projects/Generic/options index 239ad01a2d..4d3a16baa0 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -91,6 +91,15 @@ # Target Configfile for u-boot UBOOT_CONFIGFILE="" +# Kernel target for u-boot (default 'uImage' if BOOTLOADER=u-boot) (uImage / zImage) + KERNEL_UBOOT_TARGET="" + +# Kernel extra targets to build + KERNEL_UBOOT_EXTRA_TARGET="" + +# Additional kernel make parameters (for example to specify the u-boot loadaddress) + KERNEL_MAKE_EXTRACMD="" + # GCC to use. values can be: # default: default mainline gcc GCC_VERSION="default" diff --git a/projects/RPi/options b/projects/RPi/options index b4caa98a38..fe2cd30171 100644 --- a/projects/RPi/options +++ b/projects/RPi/options @@ -91,6 +91,15 @@ # Target Configfile for u-boot UBOOT_CONFIGFILE="" +# Kernel target for u-boot (default 'uImage' if BOOTLOADER=u-boot) (uImage / zImage) + KERNEL_UBOOT_TARGET="" + +# Kernel extra targets to build + KERNEL_UBOOT_EXTRA_TARGET="" + +# Additional kernel make parameters (for example to specify the u-boot loadaddress) + KERNEL_MAKE_EXTRACMD="" + # GCC to use. values can be: # default: default mainline gcc GCC_VERSION="4.7" diff --git a/projects/Virtual/options b/projects/Virtual/options index cc8a5828d4..07f65aa545 100644 --- a/projects/Virtual/options +++ b/projects/Virtual/options @@ -86,6 +86,15 @@ # Target Configfile for u-boot UBOOT_CONFIGFILE="" +# Kernel target for u-boot (default 'uImage' if BOOTLOADER=u-boot) (uImage / zImage) + KERNEL_UBOOT_TARGET="" + +# Kernel extra targets to build + KERNEL_UBOOT_EXTRA_TARGET="" + +# Additional kernel make parameters (for example to specify the u-boot loadaddress) + KERNEL_MAKE_EXTRACMD="" + # GCC to use. values can be: # default: default mainline gcc GCC_VERSION="default" diff --git a/scripts/image b/scripts/image index a013a5236b..14246d5152 100755 --- a/scripts/image +++ b/scripts/image @@ -176,7 +176,7 @@ IMAGE_NAME="$DISTRONAME-$TARGET_VERSION" # copy kernel to target dir if [ "$BOOTLOADER" = "u-boot" ]; then - KERNEL_IMAGE="uImage" + KERNEL_IMAGE="$KERNEL_UBOOT_TARGET" elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then KERNEL_IMAGE="zImage" else