eSDK & multiconfig

Mark Hatle

We're starting to hit a maturity level with our internal development using
multiconfigs that we need a way to export this into an eSDK.

Currently we're working on the ability to build a system, it's configured
similarly to:

(local.conf) - (MACHINE=zynqmp DEFAULTTUNE=cortexa72-cortexa53)
--- microblaze-pmu
- MACHINE=zynqmp
- DEFAULTTUNE=microblaze
- DISTRO=baremetal
--- cortexr5
- MACHINE=zynqmp
- DEFAULTTUNE=cortexr5f
- DISTRO=baremetal

This will allow someone to build a zynqmp system, as well as associated
microcontroller-like baremetal software. This software is then collected by the
main Linux configuration, able to be packaged for field upgrades, as well as
placement in /boot for pre-linux boot needs.

We have all of this working using a pure Yocto Project workflow today. (For
instance, standard 'bitbake core-image-minimal' should produce the resulting
image we want.) The eSDK though can't deal with this type of configuration at

To start with the eSDK simply won't build. It fails in copy_buildsystem when
running devtool.

So if this is going to work, I'm seeing a couple of work items that need to be
done (but I'm not sure how exactly to do them!)

1) get the eSDK itself to generate, which will likely require some minor devtool
changes to support this kind of setup.

Does any one have any ideas what might be required here?

2) Once we have a working eSDK, we need to figure out how to work on things that
are not in the primary (local.conf) configuration. Format wise, we could
attempt to teach devtool about the 'mc:multiconfig:recipe' syntax.

Is this really the right behavior to consider, and does anyone have any idea as
to the complications on doing this?

Any other thoughts on how this could be done? My goal is to try to get at least
the eSDK (primary config) working for the fall release, so I know this isn't a
huge amount of time for the implementation.