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.

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

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:

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<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?

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
[email protected]
https://lists.yoctoproject.org/listinfo/meta-freescale

Reply via email to