On 7/31/19 8:23 AM, Liam Girdwood wrote:
- Mengdong
On Wed, 2019-07-24 at 18:23 +0200, Jaroslav Kysela wrote:
Yeah, been thinking about this atm. It may be better to package the binaries (firmware and topologies) as part of Linux firmware repo (since the driver expects to load them all from lib/firmware) and package the sources (firmware and topology) via sof tarball ?
It looks good in my eyes, because topology files are another pieces of the driver from the user space perspective. The unanswered question is the UCM configuration which is linked to the topology configuration (if I understand this correctly). I proposed to place an unique identifier/version to the topology file and propagate this identifier to the user space, so the alsa-lib can pick the right UCM configuration when topology changes. The component string (snd_component_add function / struct snd_ctl_card_info -> components) can be used for this identification.
Apologizes for the delay, Pierre and I have been discussing this internally as we have to synchronise the deployment of the topologies and UCMs alongside the FW.
Current thinking has changed from shipping FW + tplg via linux-firmware repo to only shipping FW binaries in the FW repo and using alsa-ucm- conf.git for UCMs + topologies (since the coupling between UCM and topology is tighter than the FW coupling).
more precisely, the topology file exposes stream numbers and control names, and if the UCM file is not aligned with topology changes then users will get errors thrown at them. It really makes sense to release topology and UCM files concurrently. We'll also need to work with distributions to make sure the files are updated in the right places. Currently topology files are in /lib/firmware/intel/sof-tplg and UCM in /usr/share/alsa/ucm.
Any objections to using this repo for topologies too ? I know we haven't yet used it for UCMs but now is probably a good point to move (including moving the older UCMs over too).
We'll need to figure out the license for all this, the topologies and UCM files created for SOF are all BSD 3-clause but I am not clear on older UCM files stored in alsa-lib, I don't think there was any agreement that the LGPL license applied to them.
The "make" rule would compile topologies, whilst the "make install" rule would install the UCM's and binary topologies in the correct places ?