diff mbox series

[v6] u-boot: Add mkenvimage tool

Message ID 20181122082807.39508-1-abrodkin@synopsys.com
State New
Headers show
Series [v6] u-boot: Add mkenvimage tool | expand

Commit Message

Alexey Brodkin Nov. 22, 2018, 8:28 a.m. UTC
This utility is used for creation of images containing
usable in run-time U-Boot environment.

As of today this utility is added per-board like here [1]
for Intel Edison board.

[1] http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb

Given there're quite some U-Boot tools that we may want to add later
this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"
still for compatibility we provide "u-boot-mkimage" with help
of PROVIDES as well as proposed "u-boot-mkenvimage".

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Martin Jansa <martin.jansa@gmail.com>
Cc: Ross Burton <ross.burton@intel.com>
Cc: Marek Vasut <marex@denx.de>
---

Changes v5 -> v6:
 * Really enable separate  pakaging of mkimage and mkenvimage

Changes v4 -> v5:
 * Added backward compatibility with "u-boot-mkimage" recipe
 * Improved handling of nativesdk
 * Update all references from "u-boot-mkimage" to "u-boot-tools"

Changes v3 -> v4:
 * Updated maintainer info to make Yocto autobuilder happy again

Changes v2 -> v3:
 * Recipe renamed to "u-boot-tools" to better match its contents
   (especially in the future as we add more tools there)
 * Existing "u-boot-mkimage" and newly introduced "u-boot-mkenvimage"
   made avaialble via PROVIDES

Changes v1 -> v2:
 * Got rid of a separate recipe and instead added mkenvimage
   to u-boot mkimage recipe


 meta/classes/image_types.bbclass                   |  2 +-
 meta/classes/kernel-fitimage.bbclass               |  2 +-
 meta/classes/kernel-uimage.bbclass                 |  2 +-
 meta/conf/distro/include/distro_alias.inc          |  2 +-
 meta/conf/distro/include/maintainers.inc           |  2 +-
 ...-mkimage_2018.07.bb => u-boot-tools_2018.07.bb} | 26 ++++++++++++++++++++--
 6 files changed, 29 insertions(+), 7 deletions(-)
 rename meta/recipes-bsp/u-boot/{u-boot-mkimage_2018.07.bb => u-boot-tools_2018.07.bb} (56%)

Comments

Otavio Salvador Nov. 22, 2018, 9:30 a.m. UTC | #1
Hello Alexey,

On Thu, Nov 22, 2018 at 6:28 AM Alexey Brodkin
<alexey.brodkin@synopsys.com> wrote:
>
> This utility is used for creation of images containing
> usable in run-time U-Boot environment.
>
> As of today this utility is added per-board like here [1]
> for Intel Edison board.
>
> [1] http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb
>
> Given there're quite some U-Boot tools that we may want to add later
> this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"
> still for compatibility we provide "u-boot-mkimage" with help
> of PROVIDES as well as proposed "u-boot-mkenvimage".
>
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> Cc: Martin Jansa <martin.jansa@gmail.com>
> Cc: Ross Burton <ross.burton@intel.com>
> Cc: Marek Vasut <marex@denx.de>

Acked-by: Otavio Salvador <otavio@ossystems.com.br>

I'd like to thank you to keep the pace until it was ready. I know it
may be challenging to contribute to new projects and OpenEmbedded is
no different.

You were very welcoming to comments and change requests and I believe
it was a great thread of changes which lead to a good patch. I look
forward to the new patches you'll start submitting from now on :-)

Keep the good work.

Best Regards,
Alexey Brodkin Nov. 22, 2018, 9:47 a.m. UTC | #2
Hi Otavio,

On Thu, 2018-11-22 at 07:30 -0200, Otavio Salvador wrote:
> Hello Alexey,
> 
> On Thu, Nov 22, 2018 at 6:28 AM Alexey Brodkin
> <alexey.brodkin@synopsys.com> wrote:
> > This utility is used for creation of images containing
> > usable in run-time U-Boot environment.
> > 
> > As of today this utility is added per-board like here [1]
> > for Intel Edison board.
> > 
> > [1] 
> > https://urldefense.proofpoint.com/v2/url?u=http-3A__git.yoctoproject.org_cgit_cgit.cgi_meta-2Dintel-2Dedison_tree_meta-2Dintel-2Dedison-2Dbsp_recipes-2Dbsp_u-2Dboot_u-2Dboot-2Dtools-5F2014.04.bb&d=DwICAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=lqdeeSSEes0GFDDl656eViXO7breS55ytWkhpk5R81I&m=0oSj04biS8fsfFjYHNTIfKozS-TUjseTTeyuKHHcljA&s=hpwGEnrX5gArYJHLxYhMZ4x6s3irTZyCMjjnFipip7k&e=
> > 
> > Given there're quite some U-Boot tools that we may want to add later
> > this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"
> > still for compatibility we provide "u-boot-mkimage" with help
> > of PROVIDES as well as proposed "u-boot-mkenvimage".
> > 
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
> > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > Cc: Martin Jansa <martin.jansa@gmail.com>
> > Cc: Ross Burton <ross.burton@intel.com>
> > Cc: Marek Vasut <marex@denx.de>
> 
> Acked-by: Otavio Salvador <otavio@ossystems.com.br>
> 
> I'd like to thank you to keep the pace until it was ready. I know it
> may be challenging to contribute to new projects and OpenEmbedded is
> no different.
> 
> You were very welcoming to comments and change requests and I believe
> it was a great thread of changes which lead to a good patch. I look
> forward to the new patches you'll start submitting from now on :-)

I'd like to thank you guys as well for being patient and providing
meaningful comments for my naive and sometime silly changes.

And sure there will be more patches as now we start using OE
for quite some projects basically trying to get ARC up to speed
in OE as good as possible and given our architecture differs a bit
from others (as any other arch) we're not only adding features but
more fix issues that were not seen before due to pure luck...
like we typically have 8k MMU page a bit exotic int64_t alignment
by 32 bits etc so there'll be more stuff from us in the foreseeable
future :)

-Alexey
Alexey Brodkin Nov. 22, 2018, 1:18 p.m. UTC | #3
Hi, Richard, Otavio,

On Thu, 2018-11-22 at 11:28 +0300, Alexey Brodkin wrote:
> This utility is used for creation of images containing
> usable in run-time U-Boot environment.
> 
> As of today this utility is added per-board like here [1]
> for Intel Edison board.
> 
> [1] http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb
> 
> Given there're quite some U-Boot tools that we may want to add later
> this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"
> still for compatibility we provide "u-boot-mkimage" with help
> of PROVIDES as well as proposed "u-boot-mkenvimage".
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> Cc: Martin Jansa <martin.jansa@gmail.com>
> Cc: Ross Burton <ross.burton@intel.com>
> Cc: Marek Vasut <marex@denx.de>
> ---
> 
> Changes v5 -> v6:
>  * Really enable separate  pakaging of mkimage and mkenvimage
> 
> Changes v4 -> v5:
>  * Added backward compatibility with "u-boot-mkimage" recipe
>  * Improved handling of nativesdk
>  * Update all references from "u-boot-mkimage" to "u-boot-tools"
> 
> Changes v3 -> v4:
>  * Updated maintainer info to make Yocto autobuilder happy again
> 
> Changes v2 -> v3:
>  * Recipe renamed to "u-boot-tools" to better match its contents
>    (especially in the future as we add more tools there)
>  * Existing "u-boot-mkimage" and newly introduced "u-boot-mkenvimage"
>    made avaialble via PROVIDES
> 
> Changes v1 -> v2:
>  * Got rid of a separate recipe and instead added mkenvimage
>    to u-boot mkimage recipe

So apparently something is still broken :(
------------------------->8-------------------------------
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing RPROVIDES 'u-boot-tools-native-mkimage-native' (but virtual:native:.../openembedded-core/meta/recipes-bsp/u-boot/u-boot-
tools_2018.07.bb RDEPENDS on or otherwise requires it)

NOTE: Runtime target 'u-boot-tools-native-mkimage-native' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['u-boot-tools-native-mkimage-native']

ERROR: Required build target 'core-image-base' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-base', 'virtual/kernel', 'u-boot-tools-native', 'u-boot-tools-native-mkimage-native']
------------------------->8-------------------------------

Indeed "u-boot-tools-native-mkimage-native" looks quite odd.

Any hints on how that could be addressed?

-Alexey
Richard Purdie Nov. 22, 2018, 1:42 p.m. UTC | #4
On Thu, 2018-11-22 at 13:18 +0000, Alexey Brodkin wrote:
> Hi, Richard, Otavio,
> 
> On Thu, 2018-11-22 at 11:28 +0300, Alexey Brodkin wrote:
> > This utility is used for creation of images containing
> > usable in run-time U-Boot environment.
> > 
> > As of today this utility is added per-board like here [1]
> > for Intel Edison board.
> > 
> > [1] 
> > http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb
> > 
> > Given there're quite some U-Boot tools that we may want to add
> > later
> > this recipe name switch from "u-boot-mkimage" to generic "u-boot-
> > tools"
> > still for compatibility we provide "u-boot-mkimage" with help
> > of PROVIDES as well as proposed "u-boot-mkenvimage".
> > 
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
> > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > Cc: Martin Jansa <martin.jansa@gmail.com>
> > Cc: Ross Burton <ross.burton@intel.com>
> > Cc: Marek Vasut <marex@denx.de>
> > ---
> > 
> > Changes v5 -> v6:
> >  * Really enable separate  pakaging of mkimage and mkenvimage
> > 
> > Changes v4 -> v5:
> >  * Added backward compatibility with "u-boot-mkimage" recipe
> >  * Improved handling of nativesdk
> >  * Update all references from "u-boot-mkimage" to "u-boot-tools"
> > 
> > Changes v3 -> v4:
> >  * Updated maintainer info to make Yocto autobuilder happy again
> > 
> > Changes v2 -> v3:
> >  * Recipe renamed to "u-boot-tools" to better match its contents
> >    (especially in the future as we add more tools there)
> >  * Existing "u-boot-mkimage" and newly introduced "u-boot-
> > mkenvimage"
> >    made avaialble via PROVIDES
> > 
> > Changes v1 -> v2:
> >  * Got rid of a separate recipe and instead added mkenvimage
> >    to u-boot mkimage recipe
> 
> So apparently something is still broken :(
> ------------------------->8-------------------------------
> NOTE: Resolving any missing task queue dependencies
> ERROR: Nothing RPROVIDES 'u-boot-tools-native-mkimage-native' (but
> virtual:native:.../openembedded-core/meta/recipes-bsp/u-boot/u-boot-
> tools_2018.07.bb RDEPENDS on or otherwise requires it)
> 
> NOTE: Runtime target 'u-boot-tools-native-mkimage-native' is
> unbuildable, removing...
> Missing or unbuildable dependency chain was: ['u-boot-tools-native-
> mkimage-native']
> 
> ERROR: Required build target 'core-image-base' has no buildable
> providers.
> Missing or unbuildable dependency chain was: ['core-image-base',
> 'virtual/kernel', 'u-boot-tools-native', 'u-boot-tools-native-
> mkimage-native']
> ------------------------->8-------------------------------
> 
> Indeed "u-boot-tools-native-mkimage-native" looks quite odd.
> 
> Any hints on how that could be addressed?

Just guessing but maybe

RDEPENDS_${PN}_class-native = ""

?

Cheers,

Richard
Andrea Galbusera Nov. 25, 2018, 3:28 p.m. UTC | #5
On Thu, Nov 22, 2018 at 10:47 AM Alexey Brodkin
<alexey.brodkin@synopsys.com> wrote:
>
> Hi Otavio,
>
> On Thu, 2018-11-22 at 07:30 -0200, Otavio Salvador wrote:
> > Hello Alexey,
> >
> > On Thu, Nov 22, 2018 at 6:28 AM Alexey Brodkin
> > <alexey.brodkin@synopsys.com> wrote:
> > > This utility is used for creation of images containing
> > > usable in run-time U-Boot environment.
> > >
> > > As of today this utility is added per-board like here [1]
> > > for Intel Edison board.
> > >
> > > [1]
> > > https://urldefense.proofpoint.com/v2/url?u=http-3A__git.yoctoproject.org_cgit_cgit.cgi_meta-2Dintel-2Dedison_tree_meta-2Dintel-2Dedison-2Dbsp_recipes-2Dbsp_u-2Dboot_u-2Dboot-2Dtools-5F2014.04.bb&d=DwICAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=lqdeeSSEes0GFDDl656eViXO7breS55ytWkhpk5R81I&m=0oSj04biS8fsfFjYHNTIfKozS-TUjseTTeyuKHHcljA&s=hpwGEnrX5gArYJHLxYhMZ4x6s3irTZyCMjjnFipip7k&e=
> > >
> > > Given there're quite some U-Boot tools that we may want to add later
> > > this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"
> > > still for compatibility we provide "u-boot-mkimage" with help
> > > of PROVIDES as well as proposed "u-boot-mkenvimage".
> > >
> > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > > Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
> > > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > > Cc: Martin Jansa <martin.jansa@gmail.com>
> > > Cc: Ross Burton <ross.burton@intel.com>
> > > Cc: Marek Vasut <marex@denx.de>
> >
> > Acked-by: Otavio Salvador <otavio@ossystems.com.br>
> >
> > I'd like to thank you to keep the pace until it was ready. I know it
> > may be challenging to contribute to new projects and OpenEmbedded is
> > no different.
> >
> > You were very welcoming to comments and change requests and I believe
> > it was a great thread of changes which lead to a good patch. I look
> > forward to the new patches you'll start submitting from now on :-)
>
> I'd like to thank you guys as well for being patient and providing
> meaningful comments for my naive and sometime silly changes.
>
> And sure there will be more patches as now we start using OE
> for quite some projects basically trying to get ARC up to speed
> in OE as good as possible and given our architecture differs a bit
> from others (as any other arch) we're not only adding features but
> more fix issues that were not seen before due to pure luck...
> like we typically have 8k MMU page a bit exotic int64_t alignment
> by 32 bits etc so there'll be more stuff from us in the foreseeable
> future :)

Looking forward to show the iterations behind this series to
contribution newbies. It's a good example of when things work well
both sides! I had this little piece of u-boot-tools flying around in
several projects, but never found the time to figure out a reasonable
approach to reconcile it cleanly with the other u-boot components. Of
course, I'm first of all showing myself that I'd have better
contributed it at first to leverage all suggestions that came out of
this discussion. Thanks Alexey for taking care of this all!
diff mbox series

Patch

diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 05e5b0a2e0..5c406481ef 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -308,7 +308,7 @@  CONVERSION_DEPENDS_lzo = "lzop-native"
 CONVERSION_DEPENDS_zip = "zip-native"
 CONVERSION_DEPENDS_sum = "mtd-utils-native"
 CONVERSION_DEPENDS_bmap = "bmap-tools-native"
-CONVERSION_DEPENDS_u-boot = "u-boot-mkimage-native"
+CONVERSION_DEPENDS_u-boot = "u-boot-tools-native"
 CONVERSION_DEPENDS_vmdk = "qemu-native"
 CONVERSION_DEPENDS_vdi = "qemu-native"
 CONVERSION_DEPENDS_qcow2 = "qemu-native"
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index 4c4fd99ff4..328bef4069 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -4,7 +4,7 @@  python __anonymous () {
     kerneltypes = d.getVar('KERNEL_IMAGETYPES') or ""
     if 'fitImage' in kerneltypes.split():
         depends = d.getVar("DEPENDS")
-        depends = "%s u-boot-mkimage-native dtc-native" % depends
+        depends = "%s u-boot-tools-native dtc-native" % depends
         d.setVar("DEPENDS", depends)
 
         uarch = d.getVar("UBOOT_ARCH")
diff --git a/meta/classes/kernel-uimage.bbclass b/meta/classes/kernel-uimage.bbclass
index c2de6bb40d..cedb4fa070 100644
--- a/meta/classes/kernel-uimage.bbclass
+++ b/meta/classes/kernel-uimage.bbclass
@@ -3,7 +3,7 @@  inherit kernel-uboot
 python __anonymous () {
     if "uImage" in d.getVar('KERNEL_IMAGETYPES'):
         depends = d.getVar("DEPENDS")
-        depends = "%s u-boot-mkimage-native" % depends
+        depends = "%s u-boot-tools-native" % depends
         d.setVar("DEPENDS", depends)
 
         # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
diff --git a/meta/conf/distro/include/distro_alias.inc b/meta/conf/distro/include/distro_alias.inc
index 7502542e89..f23db1e8a4 100644
--- a/meta/conf/distro/include/distro_alias.inc
+++ b/meta/conf/distro/include/distro_alias.inc
@@ -354,7 +354,7 @@  DISTRO_PN_ALIAS_pn-tremor = "OSPDT upstream=http://www.xiph.org/vorbis/"
 DISTRO_PN_ALIAS_pn-ttf-bitstream-vera = "Debian=ttf-bitstream-vera Ubuntu=ttf-bitstream-vera"
 DISTRO_PN_ALIAS_pn-tzcode = "OSPDT"
 DISTRO_PN_ALIAS_pn-u-boot-fw-utils = "Ubuntu=u-boot-tools Debian=u-boot-tools"
-DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"
+DISTRO_PN_ALIAS_pn-u-boot-tools = "Ubuntu=u-boot-tools Debian=uboot-tools"
 DISTRO_PN_ALIAS_pn-udev = "Mandriva=udev Fedora=udev"
 DISTRO_PN_ALIAS_pn-udev-extraconf = "OE-Core"
 DISTRO_PN_ALIAS_pn-unfs3 = "Debian=unfs3 Fedora=unfs3"
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 0889c1c429..825c24a3f8 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -654,7 +654,7 @@  RECIPE_MAINTAINER_pn-tzcode-native = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-tzdata = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-u-boot = "Marek Vasut <marek.vasut@gmail.com>"
 RECIPE_MAINTAINER_pn-u-boot-fw-utils = "Marek Vasut <marek.vasut@gmail.com>"
-RECIPE_MAINTAINER_pn-u-boot-mkimage = "Marek Vasut <marek.vasut@gmail.com>"
+RECIPE_MAINTAINER_pn-u-boot-tools = "Marek Vasut <marek.vasut@gmail.com>"
 RECIPE_MAINTAINER_pn-udev-extraconf = "Ross Burton <ross.burton@intel.com>"
 RECIPE_MAINTAINER_pn-unfs3 = "Ross Burton <ross.burton@intel.com>"
 RECIPE_MAINTAINER_pn-unifdef = "Ross Burton <ross.burton@intel.com>"
diff --git a/meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb b/meta/recipes-bsp/u-boot/u-boot-tools_2018.07.bb
similarity index 56%
rename from meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb
rename to meta/recipes-bsp/u-boot/u-boot-tools_2018.07.bb
index 08bff1d161..b53a727244 100644
--- a/meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb
+++ b/meta/recipes-bsp/u-boot/u-boot-tools_2018.07.bb
@@ -1,8 +1,18 @@ 
 require u-boot-common_${PV}.inc
 
-SUMMARY = "U-Boot bootloader image creation tool"
+SUMMARY = "U-Boot bootloader tools"
 DEPENDS += "openssl"
 
+PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage"
+PROVIDES_class-native = "u-boot-mkimage-native u-boot-mkenvimage-native"
+
+PACKAGES += "${PN}-mkimage ${PN}-mkenvimage"
+
+# Required for backward compatibility with "u-boot-mkimage-xxx.bb"
+RPROVIDES_${PN}-mkimage = "u-boot-mkimage"
+RREPLACES_${PN}-mkimage = "u-boot-mkimage"
+RCONFLICTS_${PN}-mkimage = "u-boot-mkimage"
+
 EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
 EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
 EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
@@ -20,10 +30,22 @@  do_compile () {
 
 do_install () {
 	install -d ${D}${bindir}
+
+	# mkimage
 	install -m 0755 tools/mkimage ${D}${bindir}/uboot-mkimage
 	ln -sf uboot-mkimage ${D}${bindir}/mkimage
+
+	# mkenvimage
+	install -m 0755 tools/mkenvimage ${D}${bindir}/uboot-mkenvimage
+	ln -sf uboot-mkenvimage ${D}${bindir}/mkenvimage
 }
 
-RDEPENDS_${PN} += "dtc"
+ALLOW_EMPTY_${PN} = "1"
+FILES_${PN} = ""
+FILES_${PN}-mkimage = "${bindir}/uboot-mkimage ${bindir}/mkimage"
+FILES_${PN}-mkenvimage = "${bindir}/uboot-mkenvimage ${bindir}/mkenvimage"
+
+RDEPENDS_${PN}-mkimage += "dtc"
+RDEPENDS_${PN} += "${PN}-mkimage ${PN}-mkenvimage"
 
 BBCLASSEXTEND = "native nativesdk"