From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre-Louis Bossart Subject: Re: [Sound-open-firmware] Signed firmware availability for kbl/cnl Date: Wed, 31 Jul 2019 13:14:48 -0500 Message-ID: <1e7adedf-e12a-d409-12cf-9087cf6dbf30@linux.intel.com> References: <9e8b667f1aa2333dbcc34b5253372d1a8667551e.camel@linux.intel.com> <6493f195-eb5a-1a6d-2c31-e3a4123b2ad1@linux.intel.com> <7c940d90-297e-19c0-2f74-1843439d5ccf@perex.cz> <8dceb60b-35a5-93e9-ce01-1eb852e93f44@perex.cz> <0059ed8e8f2fbd7ffbc258ca53ce5efbf1885c5b.camel@linux.intel.com> <1718d316-4c65-a39d-53dd-7f40f0e49e28@perex.cz> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1718d316-4c65-a39d-53dd-7f40f0e49e28@perex.cz> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" To: Jaroslav Kysela , Liam Girdwood , Daniel Drake , "Lin, Mengdong" Cc: Jian-Hong Pan , ALSA development , sound-open-firmware@alsa-project.org List-Id: alsa-devel@alsa-project.org On 7/31/19 12:29 PM, Jaroslav Kysela wrote: > Dne 31. 07. 19 v 15:23 Liam Girdwood napsal(a): >> + 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. > > My strong point is that the driver with the different firmware and the > topology file behaves differently from the user space perspective. It seems > that there is no way to propagate the firmware (and topology?) version to the > user space at the moment. The topology may not be enough, e.g. for all Baytrail devices we use the same simple topology. To pick the right UCM file you really need the card information which may include the DMI info or some quirks (mono-speaker, analog mics). The topology is quite static and doesn't expose anything that is board-specific or may vary between skews. > >> 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). > > This is fine, but I think that we should have a check (compatibility > verification) in the user space level, too. More precisely, each level should > do a verification if it's compatible with the tied level (driver -> firmware > -> topology -> ucm). The SOF driver checks if its supported ABI level is compatible with firmware and topology levels (both files embed the information, which doesn't have to be identical). I don't see how UCM would be checked since there's no direct interaction with the driver, e.g. it's used by PulseAudio or CRAS and the only interaction is through the control and PCM APIs. Likewise UCM has no knowledge about topology or firmware.