Hi Alex, We have Yocto running on FPGA boards; the Linux images and package feeds include bitstream files to download into the FPGA. These bitstreams cannot be built within the Yocto/BitBake system, because they require special (closed source) build tools, take ages to build, etc.
So they are built somewhere outside BitBake (either on the local machine or on a build server) and provided as binaries via file:// or http://. But there are a bunch of complications: - The version information (version string, git hash) has to be extracted from the filename. The files are named like "foobar_1.2.3-g12345678.xsa" and from that we derive the version 1.2.3 and SRCREV 12345678. The recipe doesn't know the filename in advance; in case of the local filesystem it is globbed and in case of the build server it is retrieved via Jenkins REST API. - For some systems we need to bundle multiple bitstreams (variants), then at runtime an application specific script chooses one of them based on CPU ID, EEPROM contents, config files, etc. Hence the sub-packages. - Some metadata (file basenames, versions, etc.) has to be passed to dependent recipes that extract further stuff from the original files. See our bbappend and the original bb (from Xilinx) below. This has already grown into quite a monstrosity, so I wouldn't be averse to rewrite/refactor it, especially if you happen to have a better idea how to implement it. Thanks! Patrick https://github.com/MicroTCA-Tech-Lab/meta-techlab-utils/blob/rel-v2021.2/recipes-bsp/device-tree-from-bd/external-hdf.bbappend https://github.com/Xilinx/meta-xilinx-tools/blob/rel-v2021.2/recipes-bsp/hdf/external-hdf.bb
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#62639): https://lists.yoctoproject.org/g/yocto/message/62639 Mute This Topic: https://lists.yoctoproject.org/mt/104621339/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-