diff --git a/classes/qbsp-image.bbclass b/classes/qbsp-image.bbclass
new file mode 100644
index 0000000000000000000000000000000000000000..c80aa233990087a3fe083bcb8dfc16a309c08f6c
--- /dev/null
+++ b/classes/qbsp-image.bbclass
@@ -0,0 +1,53 @@
+############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the Boot to Qt meta layer.
+##
+## $QT_BEGIN_LICENSE:GPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 or (at your option) any later version
+## approved by the KDE Free Qt Foundation. The licenses are as published by
+## the Free Software Foundation and appearing in the file LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+############################################################################
+
+QBSP_IMAGE_CONTENT ??= ""
+
+fakeroot do_qbsp_image () {
+    if [ -z "${QBSP_IMAGE_CONTENT}" ]; then
+        exit 0
+    fi
+
+    mkdir -p ${S}/qbsp
+
+    for item in ${QBSP_IMAGE_CONTENT}; do
+        src=`echo $item | awk -F':' '{ print $1 }'`
+        dst=`echo $item | awk -F':' '{ print $2 }'`
+
+        install -D -m 0755 ${DEPLOY_DIR_IMAGE}/$src ${S}/qbsp/$dst
+    done
+
+    cd ${S}/qbsp
+    7z a ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.7z .
+
+    rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.7z
+    ln -s ${IMAGE_NAME}.7z ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.7z
+}
+
+IMAGE_POSTPROCESS_COMMAND += "do_qbsp_image;"
diff --git a/classes/qbsp.bbclass b/classes/qbsp.bbclass
new file mode 100644
index 0000000000000000000000000000000000000000..6707ce374621a0eb69e5ef3595e256e52adadef2
--- /dev/null
+++ b/classes/qbsp.bbclass
@@ -0,0 +1,151 @@
+############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the Boot to Qt meta layer.
+##
+## $QT_BEGIN_LICENSE:GPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 or (at your option) any later version
+## approved by the KDE Free Qt Foundation. The licenses are as published by
+## the Free Software Foundation and appearing in the file LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+############################################################################
+
+inherit meta nopackages abi-arch
+
+FILESEXTRAPATHS_prepend := "${B2QTBASE}/files/qbsp:"
+
+SRC_URI = "\
+    file://base_package.xml \
+    file://image_package.xml \
+    file://toolchain_package.xml \
+    file://toolchain_installscript.qs \
+    "
+
+INHIBIT_DEFAULT_DEPS = "1"
+do_qbsp[depends] += "\
+    installer-framework:do_populate_sysroot \
+    ${QBSP_SDK_TASK}:do_populate_sdk \
+    ${QBSP_IMAGE_TASK}:do_image_complete \
+    "
+
+QBSP_VERSION ?= "${PV}${VERSION_AUTO_INCREMENT}"
+QBSP_INSTALLER_COMPONENT ?= "${MACHINE}"
+QBSP_INSTALL_PATH ?= "/Extras/${MACHINE}"
+
+QBSP_LICENSE_DEPENDENCY ?= ""
+QBSP_LICENSE_DEPENDENCY_imx = "qt.embedded.b2qt.freescalelicense"
+
+VERSION_AUTO_INCREMENT = "-0-${DATETIME}"
+VERSION_AUTO_INCREMENT[vardepsexclude] = "DATETIME"
+
+DEPLOY_CONF_NAME ?= "${MACHINE}"
+RELEASEDATE = "${@time.strftime('%Y-%m-%d',time.gmtime())}"
+
+IMAGE_PACKAGE = "${QBSP_IMAGE_TASK}-${MACHINE}.7z"
+SDK_NAME = "${DISTRO}-${SDK_MACHINE}-${QBSP_SDK_TASK}-${MACHINE}.${SDK_POSTFIX}"
+SDK_POSTFIX = "sh"
+SDK_POSTFIX_sdkmingw32 = "7z"
+REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
+SDK_MACHINE = "${@d.getVar('SDKMACHINE', True) or '${SDK_ARCH}'}"
+
+B = "${WORKDIR}/build"
+
+patch_installer_files() {
+    sed -e 's#@NAME@#${DEPLOY_CONF_NAME}#' \
+        -e 's#@VERSION@#${QBSP_VERSION}#' \
+        -e 's#@RELEASEDATE@#${RELEASEDATE}#' \
+        -e 's#@MACHINE@#${MACHINE}#' \
+        -e 's#@SYSROOT@#${REAL_MULTIMACH_TARGET_SYS}#' \
+        -e 's#@TARGET@#${TARGET_SYS}#' \
+        -e 's#@ABI@#${ABI}#' \
+        -e 's#@INSTALLPATH@#${QBSP_INSTALL_PATH}#' \
+        -e 's#@SDKPATH@#${SDKPATH}#' \
+        -e 's#@SDKFILE@#${SDK_NAME}#' \
+        -e 's#@LICENSEDEPENDENCY@#${QBSP_LICENSE_DEPENDENCY}#' \
+        -i ${1}/*
+}
+
+prepare_qbsp() {
+    # Toolchain component
+    TOOLCHAIN_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}.toolchain"
+    mkdir -p ${TOOLCHAIN_PATH}/meta
+    mkdir -p ${TOOLCHAIN_PATH}/data
+
+    cp ${WORKDIR}/toolchain_package.xml ${TOOLCHAIN_PATH}/meta/package.xml
+    cp ${WORKDIR}/toolchain_installscript.qs ${TOOLCHAIN_PATH}/meta/installscript.qs
+    patch_installer_files ${TOOLCHAIN_PATH}/meta
+
+    mkdir -p ${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain
+    if [ "${SDK_POSTFIX}" == "7z" ]; then
+        7z x ${DEPLOY_DIR}/sdk/${SDK_NAME} -o${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain/
+    else
+        cp ${DEPLOY_DIR}/sdk/${SDK_NAME} ${B}/toolchain/${QBSP_INSTALL_PATH}/toolchain/
+    fi
+
+    cd ${B}/toolchain
+    archivegen ${TOOLCHAIN_PATH}/data/toolchain.7z *
+
+    # Image component
+    IMAGE_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}.system"
+    mkdir -p ${IMAGE_PATH}/meta
+    mkdir -p ${IMAGE_PATH}/data
+
+    cp ${WORKDIR}/image_package.xml ${IMAGE_PATH}/meta/package.xml
+    patch_installer_files ${IMAGE_PATH}/meta
+
+    mkdir -p ${B}/images/${QBSP_INSTALL_PATH}/images
+    7z x ${DEPLOY_DIR_IMAGE}/${IMAGE_PACKAGE} -o${B}/images/${QBSP_INSTALL_PATH}/images/
+
+    cd ${B}/images
+    archivegen ${IMAGE_PATH}/data/image.7z *
+
+    # Base component
+    BASE_PATH="${B}/pkg/${QBSP_INSTALLER_COMPONENT}"
+    mkdir -p ${BASE_PATH}/meta
+
+    cp ${WORKDIR}/base_package.xml ${BASE_PATH}/meta/package.xml
+    patch_installer_files ${BASE_PATH}/meta
+}
+
+create_qbsp() {
+    prepare_qbsp
+
+    # Repository creation
+    repogen -p ${B}/pkg ${B}/repository
+
+    mkdir -p ${DEPLOY_DIR}/qbsp
+    rm -f ${DEPLOY_DIR}/qbsp/${PN}-${MACHINE}.qbsp
+
+    cd ${B}/repository
+    archivegen ${DEPLOY_DIR}/qbsp/${PN}-${SDK_MACHINE}-${MACHINE}.qbsp *
+}
+
+python do_qbsp() {
+    bb.build.exec_func('create_qbsp', d)
+}
+
+addtask qbsp after do_unpack before do_build
+
+do_qbsp[cleandirs] += "${B}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_populate_sysroot[noexec] = "1"
+do_populate_lic[noexec] = "1"
diff --git a/conf/distro/b2qt.conf b/conf/distro/b2qt.conf
index de7381e38b66d0d945b8c51a3fdeff43014ac38a..4a8f73b3ab872cacc12a22c90ee101b7df5e3fe5 100644
--- a/conf/distro/b2qt.conf
+++ b/conf/distro/b2qt.conf
@@ -80,6 +80,11 @@ PACKAGE_EXCLUDE_COMPLEMENTARY ?= "qtquickcompiler"
 IMAGE_FSTYPES = "conf"
 IMAGE_CLASSES += "image_types_sdcard deploy-conf"
 
+QBSP_IMAGE_CONTENT ?= "\
+    ${IMAGE_LINK_NAME}.img \
+    ${IMAGE_LINK_NAME}.conf \
+    "
+
 LICENSE_CREATE_PACKAGE = "1"
 COPY_LIC_MANIFEST = "1"
 
diff --git a/conf/distro/include/emulator.conf b/conf/distro/include/emulator.conf
index d7cb2c3d0576622d2ad4b4648cf5c8b807e200d5..a5b95b55763ac3d39e45ea2ef987151011e7e03b 100644
--- a/conf/distro/include/emulator.conf
+++ b/conf/distro/include/emulator.conf
@@ -32,6 +32,8 @@ IMAGE_ROOTFS_ALIGNMENT = "1048576"
 ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3"
 IMAGE_FSTYPES = "ext3"
 
+QBSP_IMAGE_CONTENT = "${IMAGE_LINK_NAME}.hdd"
+
 MACHINE_EXTRA_RRECOMMENDS += "\
         kernel-module-snd-intel8x0 \
         "
diff --git a/conf/distro/include/tegra-t18x.conf b/conf/distro/include/tegra-t18x.conf
index ebdb63bb34529606e7c02e97c638ab02169adcdc..80f4d5779df31dafb7566ae1ea8e27d49cffb5ff 100644
--- a/conf/distro/include/tegra-t18x.conf
+++ b/conf/distro/include/tegra-t18x.conf
@@ -33,6 +33,11 @@ TARGET_CFLAGS += " -DWIN_INTERFACE_CUSTOM"
 DISTRO_FEATURES_DEFAULT += "wayland"
 IMAGE_FSTYPES += "tar.gz"
 
+QBSP_IMAGE_CONTENT = "\
+    ${IMAGE_LINK_NAME}.tar.gz \
+    Image \
+    "
+
 KERN_DIR ?= '${@os.path.normpath("${TOPDIR}/../sources/vibrante-t186/kernel")}'
 PLATFORM_TOPDIR ?= '${@os.path.normpath("${TOPDIR}/../sources/vibrante-t186")}'
 NVLAYER_DIR ?= "${TOPDIR}/../sources/nvidia-layer"
diff --git a/files/qbsp/base_package.xml b/files/qbsp/base_package.xml
new file mode 100644
index 0000000000000000000000000000000000000000..28261d5d0ec713571157136d3372cb499fb009fe
--- /dev/null
+++ b/files/qbsp/base_package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+  <Version>@VERSION@</Version>
+  <ReleaseDate>@RELEASEDATE@</ReleaseDate>
+  <DisplayName>@NAME@</DisplayName>
+  <Description>Boot to Qt for @NAME@ with Embedded Linux baselayer</Description>
+  <Dependencies>@LICENSEDEPENDENCY@</Dependencies>
+</Package>
diff --git a/files/qbsp/image_package.xml b/files/qbsp/image_package.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1eaf69ca2e4f1ac937643dcbccf7e2ad37987312
--- /dev/null
+++ b/files/qbsp/image_package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Package>
+  <Version>@VERSION@</Version>
+  <ReleaseDate>@RELEASEDATE@</ReleaseDate>
+  <DisplayName>@NAME@ Linux System</DisplayName>
+  <Description>SD-Card image for @NAME@ hardware with Embedded Linux baselayer</Description>
+  <DownloadableArchives>image.7z</DownloadableArchives>
+</Package>
diff --git a/files/qbsp/toolchain_installscript.qs b/files/qbsp/toolchain_installscript.qs
new file mode 100644
index 0000000000000000000000000000000000000000..bcf9cd1791891a763b1fd79c7e52913efc602ce6
--- /dev/null
+++ b/files/qbsp/toolchain_installscript.qs
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Boot to Qt meta layer.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+function Component()
+{
+}
+
+Component.prototype.createOperations = function()
+{
+    component.createOperations();
+
+    var device = "@MACHINE@"
+    var platform = "@NAME@"
+    var sysroot = "@SYSROOT@"
+    var target = "@TARGET@"
+    var abi = "@ABI@"
+    var installPath = "@INSTALLPATH@/toolchain"
+    var sdkPath = "@SDKPATH@"
+    var sdkFile = "@SDKFILE@"
+
+    var path = installer.value("TargetDir") + installPath;
+    if (systemInfo.kernelType !== "winnt") {
+        var script = path + "/" + sdkFile;
+        component.addOperation("Execute", "{0}", "chmod", "+x", script);
+        component.addOperation("Execute", "{0}", script, "-y", "-d", path, "UNDOEXECUTE", "rm", "-rf", path);
+        component.addOperation("Execute", "{0}", "/bin/rm", script);
+    } else {
+        var search = sdkPath;
+        path = path.replace(/\\/g,"/");
+        component.addOperation("Replace",
+                                path + "/sysroots/i686-pokysdk-mingw32/usr/bin/qt.conf",
+                                search, path);
+    }
+    // qt.embedded.b2qt.xx
+    var baseid = component.name.substring(17,19);
+    var basecomponent = component.name.substring(0, component.name.lastIndexOf("."));
+    var toolchainId = "ProjectExplorer.ToolChain.Gcc:" + component.name;
+    var qtId = basecomponent + ".qt";
+    var icon = installer.value("B2QtDeviceIcon");
+    var executableExt = "";
+    var hostSysroot = "x86_64-pokysdk-linux";
+    if (systemInfo.kernelType === "winnt") {
+        executableExt = ".exe";
+        hostSysroot = "i686-pokysdk-mingw32";
+    }
+    var deviceType = "Boot2Qt.HwDevice"
+
+    component.addOperation("Execute",
+        ["@SDKToolBinary@", "addTC",
+        "--id", toolchainId,
+        "--name", "GCC (Boot2Qt " + platform + ")",
+        "--path", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target + "/" + target + "-g++" + executableExt,
+        "--abi", abi,
+        "UNDOEXECUTE",
+        "@SDKToolBinary@", "rmTC", "--id", toolchainId]);
+
+    component.addOperation("Execute",
+        ["@SDKToolBinary@", "addQt",
+         "--id", qtId,
+         "--name", "Boot2Qt %{Qt:Version} " + platform,
+         "--type", "Boot2Qt.QtVersionType",
+         "--qmake", path + "/sysroots/" + hostSysroot + "/usr/bin/qmake" + executableExt,
+         "UNDOEXECUTE",
+         "@SDKToolBinary@", "rmQt", "--id", qtId]);
+
+    var addKitOperations = ["@SDKToolBinary@", "addKit",
+         "--id", basecomponent,
+         "--name", "Boot2Qt %{Qt:Version} " + platform,
+         "--mkspec", "devices/linux-oe-generic-g++",
+         "--qt", qtId,
+         "--debuggerengine", "1",
+         "--debugger", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target + "/" + target + "-gdb" + executableExt,
+         "--sysroot", path + "/sysroots/" + sysroot,
+         "--devicetype", deviceType,
+         "--toolchain", toolchainId,
+         "--icon", icon];
+
+    addKitOperations.push("UNDOEXECUTE", "@SDKToolBinary@", "rmKit", "--id", basecomponent);
+
+    component.addOperation("Execute", addKitOperations);
+}
diff --git a/files/qbsp/toolchain_package.xml b/files/qbsp/toolchain_package.xml
new file mode 100644
index 0000000000000000000000000000000000000000..85a2c67362b84b502b67429895b4524d8fda4ed1
--- /dev/null
+++ b/files/qbsp/toolchain_package.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<Package>
+  <Version>@VERSION@</Version>
+  <ReleaseDate>@RELEASEDATE@</ReleaseDate>
+  <DisplayName>@NAME@ Linux Toolchain</DisplayName>
+  <Description>Toolchain and system root for @NAME@ with Embedded Linux baselayer</Description>
+  <DownloadableArchives>toolchain.7z</DownloadableArchives>
+  <Dependencies>qt.tools.qtcreator</Dependencies>
+  <Script>installscript.qs</Script>
+</Package>
diff --git a/recipes-qt/images/b2qt-automotive-qt5-image.bb b/recipes-qt/images/b2qt-automotive-qt5-image.bb
index d0e13d5acc59a0c4128f4db30ab19d74636a5d60..179831a93293dabd471ad369424e5e8994ee9f25 100644
--- a/recipes-qt/images/b2qt-automotive-qt5-image.bb
+++ b/recipes-qt/images/b2qt-automotive-qt5-image.bb
@@ -42,7 +42,7 @@ IMAGE_FEATURES += "\
         hwcodecs \
         "
 
-inherit core-image
+inherit core-image qbsp-image
 inherit consistent_timestamps
 
 IMAGE_INSTALL += "\
diff --git a/recipes-qt/images/b2qt-embedded-qt5-image.bb b/recipes-qt/images/b2qt-embedded-qt5-image.bb
index 970d30f58530073054344df98abf70a5135581b1..4d0bfa475f3c7e2b34bbaaafec36ed5df62a4a4c 100644
--- a/recipes-qt/images/b2qt-embedded-qt5-image.bb
+++ b/recipes-qt/images/b2qt-embedded-qt5-image.bb
@@ -42,7 +42,7 @@ IMAGE_FEATURES += "\
         hwcodecs \
         "
 
-inherit core-image
+inherit core-image qbsp-image
 inherit consistent_timestamps
 
 IMAGE_INSTALL += "\
diff --git a/recipes-qt/meta/meta-b2qt-automotive-qbsp.bb b/recipes-qt/meta/meta-b2qt-automotive-qbsp.bb
new file mode 100644
index 0000000000000000000000000000000000000000..ebd12c5c4583c076f1f426f284ecaa2836befc26
--- /dev/null
+++ b/recipes-qt/meta/meta-b2qt-automotive-qbsp.bb
@@ -0,0 +1,47 @@
+############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the Boot to Qt meta layer.
+##
+## $QT_BEGIN_LICENSE:GPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 or (at your option) any later version
+## approved by the KDE Free Qt Foundation. The licenses are as published by
+## the Free Software Foundation and appearing in the file LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+############################################################################
+
+DESCRIPTION = "Meta task for QBSP creation"
+
+LICENSE = "The-Qt-Company-DCLA-2.1"
+LIC_FILES_CHKSUM = "file://${QT_LICENSE};md5=80e06902b5f0e94ad0a78ee4f7fcb74b"
+
+# get Qt version number
+require recipes-qt/qt5/qt5-git.inc
+S = "${WORKDIR}"
+
+inherit qbsp
+
+PV = "1.1"
+
+QBSP_INSTALLER_COMPONENT = "qt.automotive.10.yocto.${MACHINE}"
+QBSP_INSTALL_PATH = "/${QT_MODULE_BRANCH}/Automotive/${MACHINE}"
+
+QBSP_SDK_TASK = "meta-toolchain-b2qt-automotive-qt5-sdk"
+QBSP_IMAGE_TASK = "b2qt-automotive-qt5-image"
diff --git a/recipes-qt/meta/meta-b2qt-embedded-qbsp.bb b/recipes-qt/meta/meta-b2qt-embedded-qbsp.bb
new file mode 100644
index 0000000000000000000000000000000000000000..56da5061c7a6fb0597bc0aa0f0e3cdf9d7a70fdb
--- /dev/null
+++ b/recipes-qt/meta/meta-b2qt-embedded-qbsp.bb
@@ -0,0 +1,48 @@
+############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the Boot to Qt meta layer.
+##
+## $QT_BEGIN_LICENSE:GPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 or (at your option) any later version
+## approved by the KDE Free Qt Foundation. The licenses are as published by
+## the Free Software Foundation and appearing in the file LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+############################################################################
+
+DESCRIPTION = "Meta task for QBSP creation"
+
+LICENSE = "The-Qt-Company-DCLA-2.1"
+LIC_FILES_CHKSUM = "file://${QT_LICENSE};md5=80e06902b5f0e94ad0a78ee4f7fcb74b"
+
+# get Qt version number
+require recipes-qt/qt5/qt5-git.inc
+S = "${WORKDIR}"
+
+inherit qbsp
+
+PV := "${@d.getVar('PV', True)[0:5]}"
+
+VERSION_SHORT = "${@d.getVar('QT_MODULE_BRANCH', True).replace('.','')}"
+QBSP_INSTALLER_COMPONENT = "qt.embedded.b2qt.${VERSION_SHORT}.yocto.${MACHINE}"
+QBSP_INSTALL_PATH = "/${QT_MODULE_BRANCH}/Boot2Qt/${MACHINE}"
+
+QBSP_SDK_TASK = "meta-toolchain-b2qt-embedded-qt5-sdk"
+QBSP_IMAGE_TASK = "b2qt-embedded-qt5-image"
diff --git a/recipes-qt/qt5-addons/installer-framework_2.0.3.bb b/recipes-qt/qt5-addons/installer-framework_2.0.3.bb
new file mode 100644
index 0000000000000000000000000000000000000000..03cba46eec466c2d630772844e3b049e292688e0
--- /dev/null
+++ b/recipes-qt/qt5-addons/installer-framework_2.0.3.bb
@@ -0,0 +1,48 @@
+############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the Boot to Qt meta layer.
+##
+## $QT_BEGIN_LICENSE:GPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 or (at your option) any later version
+## approved by the KDE Free Qt Foundation. The licenses are as published by
+## the Free Software Foundation and appearing in the file LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+############################################################################
+
+DESCRIPTION = "Qt Installer Framework"
+LICENSE = "The-Qt-Company-DCLA-2.1"
+LIC_FILES_CHKSUM = "file://${QT_LICENSE};md5=80e06902b5f0e94ad0a78ee4f7fcb74b"
+
+inherit bin_package native
+
+SRC_URI = "http://ci-files02-hki.ci.local/packages/jenkins/opensource/ifw/installer-framework/installer-framework-build-stripped-linux-x64.7z"
+
+SRC_URI[md5sum] = "08beb5450c3938fcfd1b380f6aaec75d"
+SRC_URI[sha256sum] = "91bfef896db58f28e4c2c6db437b958101a59e87aa880c38b6ddc40ebe6c38e6"
+
+S = "${WORKDIR}/ifw-pkg"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 -t ${D}${bindir} ${S}/bin/*
+}
+
+INSANE_SKIP_${PN} += "already-stripped"
diff --git a/scripts/upload.sh b/scripts/upload.sh
index 5048797eef5bdf9fb4a1e3c7501a7064d7bd305c..14d45c88fee36b1ec3ced9deeb2bfcdd06300118 100755
--- a/scripts/upload.sh
+++ b/scripts/upload.sh
@@ -33,28 +33,14 @@ set -e
 
 RELEASE=5.8
 UPLOADPATH=QT@ci-files02-hki.ci.local:/srv/jenkins_data/enterprise/b2qt/yocto/${RELEASE}/
+UPLOADS="\
+    tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \
+    tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.sh \
+    tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.7z \
+    "
 
-if [ -e tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.hdd ]; then
-  7z a -l b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \
-    $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.hdd
-elif [ -e tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.img ]; then
-  7z a -l b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \
-    $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.img \
-    $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.conf
-elif ([ ${MACHINE} = "tegra-x1" ] || [ ${MACHINE} = "tegra-t18x" ]) \
-    && [ -e tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.tar.gz ]; then
-  7z a -l b2qt-${PROJECT}-qt5-image-${MACHINE}.7z \
-    $PWD/tmp/deploy/images/${MACHINE}/b2qt-${PROJECT}-qt5-image-${MACHINE}.tar.gz \
-    $PWD/tmp/deploy/images/${MACHINE}/*Image
-fi
-
-if [ -e b2qt-${PROJECT}-qt5-image-${MACHINE}.7z ]; then
-  rsync b2qt-${PROJECT}-qt5-image-${MACHINE}.7z ${UPLOADPATH}/
-fi
-
-if [ -e tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.sh ]; then
-  rsync tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.sh ${UPLOADPATH}/
-fi
-if [ -e tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.7z ]; then
-  rsync tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-${PROJECT}-qt5-sdk-${MACHINE}.7z ${UPLOADPATH}/
-fi
+for f in ${UPLOADS}; do
+    if [ -e ${f} ]; then
+        rsync -L ${f} ${UPLOADPATH}/
+    fi
+done