[meta-freescale] [3rdparty] imx7s-warp reference support: How to add additional firmware blobs?

Daiane Angolini daiane.list at gmail.com
Fri Nov 24 03:42:29 PST 2017


On Thu, Nov 23, 2017 at 11:36 AM, Simon Hughes <Simon.Hughes at arm.com> wrote:
> Summary
>
>
>
> What’s the **right way** to add additional firmware blobs to
> MACHINE=imx7s-warp DISTRO=xxx images, so we follow a sensible pattern? There
> are at least 2 alternatives:
>
> -          The imx6sl-warp.conf way which leverages openembedded-core
> linux-firmware_git.bb.
>
> -          The imx7s-warp.conf way which is standalone (doesn’t leverage
> openembedded-core linux-firmware_git.bb).
>
>
>
> We’re working on imx7s-warp support in our own tree but want to be able to
> upstream the changes to the community as a reference implementation rather
> than bodging the job.
>

Would it be a new different machine?

>
>
> Details
>
>
>
> To help work through the issues, let’s assume we have:
>
> -          a layer meta-foo for storing .bbappend recipes etc.
>
> -          a machine feature “bar” which we want people to be able to turn
> on/off in the their images using MACHINE_FEATURES += “ bar”
>
> -          distros include packagegroup-core and packagegroup-base (so that
> processing can be hooked).
>
>
>
> Aim: To install the following firmware files into the image :
>
> - chip vendor license agreement e.g. LICENCE.broadcom_bcm43xx
>
> - chip vendor firmware binary file e.g. brcmfmac43340-sdio.bin
>
> - chip vendor support file e.g. brcmfmac43430-sdio.txt
>
> - their supporting files e.g. BCM43430A1.hcd, GPL
>
>
>
>
>
> The dependency graph from
> meta-freescale-3rdparty/conf/machine/imx7s-warp.conf looks like this:
>
>
>
> imx7s-warp.conf
>
> ---- firmware-imx.bb
>
> -------- firmware-imx.inc (provides FILES_${PN}-brcm i.e. firmware-imx-brmm
> )
>
> ------------ firmware-imx.bbappend
>
>
>
> Note:
>
> -          firmware-imx.bb can be customised with
> meta-foo/recipe-bsp/firmware-imx/firmware-imx.bbappend.
>
> -          firmware-imx.bb installs to /lib/firmware/bcm
>
>
>
> However, the dependency graph for
> meta-freescale-3rdparty/conf/machine/imx6sl-warp.conf looks like this:
>
>
>
> imx6sl-warp.conf
>
> ---- bcm4330-nvram-config.bb
>
> -------- broadcom-nvram-config.inc
>
> ------------ linux-firmware_git.bb
>
> ---------------- linux-firmware_git.bbappend
>
>

The boards imx6s-warp and imx7s-warp use different WiFi device, so
they need different firmware. At time of adding the board support it
was decided to use different firmware source. Maybe today it can be
changed (need to verify)

>
> linux-firmware_git.bb can be customised with
> meta-foo/recipe-bsp/linux-firmware/ linux-firmware_git.bbappend. This seems
> a better approach because linux-firmware_git.bb already has (partial)
> support for our goal:

In case the change in bbappend is relevant for more projects, I would
upstream the change to openembedded-core instead.

>
>
>
> FILES_${PN}-bcm43340 = " \
>
>   ${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.bin \
>
> "
>
>
>
> LICENSE_${PN}-bcm43340 = "Firmware-broadcom_bcm43xx"
>
>
>
> LIC_FILES_CHKSUM = "\
>
> ...
>
>     file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
>
> ...
>
>
>
> Notes:
>
> - one of the files we specifically want to install (brcmfmac43340-sdio.bin)
> is managed in linux-firmware_git.bin
>
> - linux-firmware_git.bb installs to /lib/firmware/brcm, which is different
> to firmware-imx.inc.
>
>
>
> It seems like our best short term option is as follows:
>
> - define imx7s-warp-foo.conf,
>
> - in imx7s-warp-foo.conf add “require imx7s-warp.conf”, add MACHINE_FEATURES
> += “ bar”, and remove anything from imx7s-warp.conf referenced symbols (e.g.
> MACHINE_EXTRA_RRECOMMENDS) that inhibits the next step.
>
> - follow the imx6sl-warp.conf pattern to leverage linux-firmware_git.bb.
>
>
>
> Then we’d upstream in the following way:
>
> - upstream imx7s-warp-foo.conf into
> meta-freescale-3rdparty/conf/machine/imx7s-warp.conf
>
> - upstream linux-firmware_%.bbappend to linux-firmware_git.bb.
>
>
>
> Please could you share your opinions on the best way to proceed?

What is difference between imx7s-warp and imx7s-warp-foo? Without
really knowing the difference, I would say I prefer a complete new
machine with no requirement on another machine.

In case the set of similarities is big, I would create an
imx7s-warp.inc and require this file in both machines.

Daiane
>
>
>
> Thanks
>
>
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
>
> --
> _______________________________________________
> meta-freescale mailing list
> meta-freescale at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale
>


More information about the meta-freescale mailing list